@oop_ru

Страница 236 из 785
Sergey
06.06.2017
17:46:22
Что "в связях"?
данные одного микросервиса не должны влиять на данные другого косвенным образом (за счет одной базы)

F01134H
06.06.2017
17:46:23
тогда они перестанут быть независимыми, не? )
а если эти три компонента просто чекают это состояние, а не меняют?

da horsie
06.06.2017
17:46:49
Sergey
06.06.2017
17:46:54
Google
da horsie
06.06.2017
17:47:15
прочекал, получил true, сработал if, получил false - сработал else

это ли не зависимость?

F01134H
06.06.2017
17:47:45
а что плохого может случиться от одной бд?

централизованной?

da horsie
06.06.2017
17:47:58
bottleneck

Paul
06.06.2017
17:48:01
данные одного микросервиса не должны влиять на данные другого косвенным образом (за счет одной базы)
Ну это дичь. Если у тебя чекаутер владеет сущностью "пользователь::баланс", то изменяя его данные, так или иначе во всех срезах пользователей, где тоже должен быть баланс будут изменения. Через shared или через события это второй вопрос

da horsie
06.06.2017
17:48:04
single point of failure

Sergey
06.06.2017
17:48:22
а что плохого может случиться от одной бд?
пролема не в БД а в зависимостях. Когда у тебя одна база данных легко случайно завязать один микросервис на данные другого и это будет неявно

da horsie
06.06.2017
17:48:44
и это тоже

Sergey
06.06.2017
17:48:47
ну и тогда вопрос насколько это влияет при таких вещах как деплоймент

Paul
06.06.2017
17:48:55
Sergey
06.06.2017
17:49:06
ну то есть, идея то микросервисов в том что бы ты деплоил не все приложение а по чуть чуть и с минимальным риском для остальных частей приложения

Paul
06.06.2017
17:49:21
Это твои выдумки

Google
Sergey
06.06.2017
17:49:30
Это твои выдумки
ну просвяти че

Кто же мешает микросервису начать слушать события с топика, которым он не пользуется?
если он слушает значит пользуется. То что он данные никак не юзает - так и ладно. Значит если ивентов не будет то ничего не сломается

Paul
06.06.2017
17:50:42
Микросервисы это решение не технических проблем, а менеджерских: дешевле иметь n групп пишущих на разных ЯП и вообще технологиях, чем одну группу с одним стеком.

Paul
06.06.2017
17:51:18
Я не за shared db, если что. Просто ты аргументирует ну совсем странно

Sergey
06.06.2017
17:51:18
То же самое можно сказать и о БД
вот только с БД всегда есть возможность делать нехорошие вещи, с брокерами проще

Paul
06.06.2017
17:51:37
управление рисков при деплое тоже менеджерская проблема
С чего ты решил, что одно приложение не может содержать n процессов?

Пофигу что в контейнер херачить

Sergey
06.06.2017
17:51:58
С чего ты решил, что одно приложение не может содержать n процессов?
может, и n процессов не делает приложение "микросервисами"

Paul
06.06.2017
17:52:06
От того, что там несколько процессов, система не становится микросервисной

ну да, верно

Sergey
06.06.2017
17:53:28
ну то есть идея в том что бы эти "несколько команд" с разными языками и все что ты перечислил не сильно влияли друг на друга. Что бы если у одной команды что-то пошло не так, то это заафектило бы небольшую часть приложения а не все приложение

что в свою очередь позволяет чаще релизиться

а чаще релизиться = меньше изменений за раз

а это тоже уменьшает риски

вот только я на своей практике работал только с 2 проектами где микросервисы были оправданы

и делать их на старте можно только если ты на 100% уверен что оно тебе надо (а это 0.001% проектов)

потому мне больше нравится делать монолиты с изоляцией... там проще

da horsie
06.06.2017
17:58:28
потому мне больше нравится делать монолиты с изоляцией... там проще
это клево пока команда не сильно большая и сидит в одном или соседних часовых поясах)

Google
da horsie
06.06.2017
17:59:19
и ты можешь каждому физически в бубен настучать если что

Sergey
06.06.2017
17:59:27
это клево пока команда не сильно большая и сидит в одном или соседних часовых поясах)
ну вот на моем проекте мы уже потиху упираемся в то что разрастаться начинаем

но тут скорее искуственно команду раздули

с ребятами составляем начальству письма что мол "мы все делаем не так, давайте по другому"

Like
06.06.2017
18:00:32
Если у меня спа приложение, то api gateway будет на джсе, так ?

F01134H
06.06.2017
18:00:48
what

Like
06.06.2017
18:00:52
или фронт не должен знать ничего

Sergey
06.06.2017
18:01:00
Если у меня спа приложение, то api gateway будет на джсе, так ?
если я пеку блины, то гардины надо голубые покупать?

F01134H
06.06.2017
18:01:01
конечно не должен, кек)

Paul
06.06.2017
18:01:04
Фронт это api gateway + клиент

F01134H
06.06.2017
18:01:06
его переписать можно

Paul
06.06.2017
18:01:07
а не только клиент

Like
06.06.2017
18:01:08
лан

харе

Paul
06.06.2017
18:01:18
Клиент должен сам готовить себе данные

Paul
06.06.2017
18:01:39
С фильтрацией секретных данных и прочее

Sergey
06.06.2017
18:01:49
ну может я не так тебя понял

Google
Paul
06.06.2017
18:01:51
Потому api gateway должны пилить клиентские разрабы

А для них очевиден выбор js (ts/etc)

Потому, да, api gateway будет на жс в 99% случаях

Sergey
06.06.2017
18:02:36
хз, я своих фронтендеров на бэк не пускаю

Paul
06.06.2017
18:02:45
Это не бэк

F01134H
06.06.2017
18:02:48
какой еще апи гейтвей на жсе

вы о чем

Like
06.06.2017
18:02:56
дык чо мне делать то, решите уже :D

Admin
ERROR: S client not available

F01134H
06.06.2017
18:02:59
с каких пор гейтвей вообще на клиенте

Sergey
06.06.2017
18:03:07
Это не бэк
а ты уверен что ему гейтвей нужен?)

Paul
06.06.2017
18:03:11
с каких пор гейтвей вообще на клиенте
С каких пор жс только на клиенте?

Sergey
06.06.2017
18:03:23
с каких пор гейтвей вообще на клиенте
видимо имеется ввиду мидлвэр который оптимизирует все под клиент

Paul
06.06.2017
18:03:26
а ты уверен что ему гейтвей нужен?)
Я не решаю его проблему

Был конкретный вопрос про ЯП api gateway

F01134H
06.06.2017
18:03:43
С каких пор жс только на клиенте?
ты вверху сказал, что его должны пилить клиентские разрабы

Paul
06.06.2017
18:03:53
Так как писать должны его клиентские разрабы, то там будет клиентский яп, всё просто

Sergey
06.06.2017
18:03:57
ты вверху сказал, что его должны пилить клиентские разрабы
но не бэк, прослойку между бэком и клиентом

Paul
06.06.2017
18:04:01
Google
F01134H
06.06.2017
18:04:22
но не бэк, прослойку между бэком и клиентом
но все ж относится это к бэку по факту то?

Paul
06.06.2017
18:04:37
Ну смотря какую терминологию брать

F01134H
06.06.2017
18:04:37
к серверу т.е.

Paul
06.06.2017
18:04:50
Как минимум в яндексе и мейле фронт это именно api gateway и клиент

А не только клиент

Sergey
06.06.2017
18:21:11
к серверу т.е.
с точки зрения "сервера" гейтвей это клиент)

гейтвей же у кого-то запрашивает данные, значит он клиент

а сервер тот кто обрабатывает

da horsie
06.06.2017
19:42:18
http://seregazhuk.github.io/2017/05/04/di-smells/

Sergey
06.06.2017
21:47:35
ну про циклические зависимости есть у боба принцип

про "слишком много зависимостей" - это намек на нарушение open/close и/или SRP

ну короч... не сказал бы что тут именно di smell, просто хреновая работа с зависимостями

da horsie
06.06.2017
21:49:07
ну терминология может быть не совсем точная, но в целом мысли верные

Sergey
06.06.2017
21:51:49
https://www.youtube.com/watch?v=GAFZcYlO5S0

на вот лучше

da horsie
06.06.2017
21:52:16
спасибо, послушаю вечером

Sergey
06.06.2017
23:04:46
https://8thlight.com/blog/uncle-bob/2013/03/08/AnOpenAndClosedCase.html

da horsie
06.06.2017
23:10:49
...был молод и впечатлителен в свои 43 :)

мне есть к чему стремиться )

Aleh
08.06.2017
11:04:25
интерфейсы и ооп: еще один взгляд https://github.com/michaelficarra/ecmascript-interfaces-proposal

Страница 236 из 785