
Ihor
19.01.2018
20:41:26
а что ещё делать с микросервисами, кроме того, как нагрузку с монолита снимать?

da horsie
19.01.2018
20:41:49

Артур Евгеньевич
19.01.2018
20:41:58

da horsie
19.01.2018
20:42:06
пока это самое эффективное, что можно сделать

Google

Артур Евгеньевич
19.01.2018
20:42:08
Помогает же распараллелить разработку

Anton
19.01.2018
20:42:12

Sergey
19.01.2018
20:42:22

da horsie
19.01.2018
20:42:34

Sergey
19.01.2018
20:42:43
что бы каждая команда в рамках большого проекта могла практиковать и CI и CD и все эти лин штуки
если у тебя этого нет и релизы раз в месяц - тебе точно микросервисы не нужны)
ну а все остальное - приятный побочный эффект)

Ihor
19.01.2018
20:44:03

Артур Евгеньевич
19.01.2018
20:44:37
Когда Я работал в одном крупнейшем Форекс брокере восточной европы) то я не представляю что там был бы за пиздец если бы монолитом все хуярили. Были части бизнеса которые использовались в очень многих местах и их выносили отдельными приложухами

Sergey
19.01.2018
20:45:09

Артур Евгеньевич
19.01.2018
20:47:04
При условии соблюдения семвер можно было спокойно пилить свой проект , не мучаясь с конфликтами и не вникая в логику другого. Например я пилил онлайн школу и взаимодействовал с сервисами финансов, и личного кабинета пользователя(На бирже) просто дергая апи.

Anton
19.01.2018
20:47:55

Google

Aleh
19.01.2018
20:48:14

Артур Евгеньевич
19.01.2018
20:48:30

Anton
19.01.2018
20:50:46
Не буду истиной в последней инстанции, но имхо сути: минимальной связности. То что вы описали вполне себе типичная SOA.

Sergey
19.01.2018
20:51:46

Артур Евгеньевич
19.01.2018
20:52:12

Sergey
19.01.2018
20:52:49
и монолит, где каждому дано право только свой модуль менять

Артур Евгеньевич
19.01.2018
20:53:03

Anton
19.01.2018
20:53:30

Aleh
19.01.2018
20:53:31

Sergey
19.01.2018
20:53:33
причина не в том что там "синхронный запрос"

Anton
19.01.2018
20:54:15
я лишь описал почему это плохо
и да причина не потомучто синхронный

Sergey
19.01.2018
20:54:27
это плохо потому что это высокий каплинг)

Anton
19.01.2018
20:54:31
да

Артур Евгеньевич
19.01.2018
20:54:36

Anton
19.01.2018
20:54:36
в книге про это именно и говорится

Sergey
19.01.2018
20:54:45
ну то есть твой микросервис зависит от данных, которые хранит другой микросервис

Google

Anton
19.01.2018
20:54:46
что синхронный запрос тянет коуплинг за собой
да. все верно
не буду расскрывать публике, какой совет даётся в книге
ибо его тут знают
ответ всмысле :)

Sergey
19.01.2018
20:55:26
наверное он под синхронным запросом подразумевает факт того что мы должны дождаться ответа

Артур Евгеньевич
19.01.2018
20:55:29

Ihor
19.01.2018
20:55:36

Sergey
19.01.2018
20:55:55

Anton
19.01.2018
20:56:18

Артур Евгеньевич
19.01.2018
20:56:37
По сравнению с чем эти плюсы?
По сравнению с одним здоровым приложением которое развертывается целиком и в которое все пишут. Ну и инфраструктура общая для всех частей

Sergey
19.01.2018
20:56:38

Артур Евгеньевич
19.01.2018
20:57:04

Sergey
19.01.2018
20:57:10
"легкий" каплинг, это когда ты отправляешь сообщение и не дожидаешься ответа (то что "асинхронным" видимо в книжке этой зовется)
"тяжелый" каплинг - это когда ты из другого модуля достаешь хрень и начинаешь в ней копашиться
есть еще средние каплинги типа "эти два компонента должны быть вызваны примерно в одно и то же время"
он там конечно ничего не объясняет а религию гонит, но задуматься ты можешь

Google

Sergey
19.01.2018
20:59:15
ну или Алана Холуба если посолиднее персонажи тебе больше нравятся
http://www.yegor256.com/2014/09/16/getters-and-setters-are-evil.html
https://www.javaworld.com/article/2073723/core-java/why-getter-and-setter-methods-are-evil.html

Ihor
19.01.2018
21:00:26
где бы времени набрать, всё прочитать? у меня уже в списке книг 5 :(

Anton
19.01.2018
21:00:28
и да в той книге, про геттеры и сеттеры тоже сказано.
что мол это простой подход. когда у ты работаешь как CRUD
это я продолжаю рекламить (сорри)

Sergey
19.01.2018
21:01:00
настолько что местами хорошая идея превращается в херню

Admin
ERROR: S client not available

Sergey
19.01.2018
21:01:59
но в целом из твоего описания - книжка в целом не совсем дно

Anton
19.01.2018
21:02:24
мне чем он не нравится - он все слишком упрощает
да. из-за того его книга и названа for everyone. для нубов.
она небольшая я за 3 дня прочел. ничего нового для себя не открыл. но его подача понравилась и куча отсылок на другие (более серьезные работы).

Sergey
19.01.2018
21:03:01
нубам бы как модули делать

Anton
19.01.2018
21:03:05
Кстати, раз такая пьянка, @fes0r, ты смотрел в сторону Workflow мэнеджеров готовых и в частности на BPMN

Sergey
19.01.2018
21:04:01
я BPMN помню по вкладке на draw.io просто)
или ты хочешь BPMN "компилить" в автомат?

Anton
19.01.2018
21:05:14
Ммм нет, мне типо диаграмкой описать сагу и спец. софт это дело рулит и сам бегает по сервисам, ждет, переводит статус, откатывает и т.д.
На хабрике тут пару дней назад накидывали

Google

Sergey
19.01.2018
21:05:32
не видал

Anton
19.01.2018
21:05:50
Вот пытаюсь переварить есть ли от такого подхода какой-то профит

Maksim
19.01.2018
21:06:12
чёт не очень, как по мне)

Sergey
19.01.2018
21:07:33

Anton
19.01.2018
21:07:40
Статейка: https://habrahabr.ru/post/346630/
Ну и пример такого инструмента: https://camunda.org/
Основной наброс, что бизнес-процессы (именно процессы, а не сущности) надо держать в одном месте.
Ну и важное уточнение от автора которого нет в статье:
... now regarding your comment about ESBs. We actually use the term to separate central components containing certain business logic (like e.g. a bit more complex routing rules wiring together a "business process") from a "dumb pipe", which would e.g. be implemented with some messaging queue, which really just publishes e.g. an event via a topic or routes a command via a queue. So in fact we are very much thinking in terms of asynchronous messaging here, but these commands and events could also be exchanged asynchronously via e.g. REST feeds.

Ihor
19.01.2018
21:31:37

Sergey
19.01.2018
21:31:56
сеттеры вообще не нужны, а геттеры все еще полезны когда тебе надо отобразить данные.
но если ты достаешь данные что-бы снаружи объекта логику на этих данных строить - это повод задуматься
возможно, только возможно, что ничего плохого нет и мы имеем дело просто с криво названным методом
но есть вероятность что логика которая тебе нужна должна находиться в самом объекте
и если ты начнешь на эту тему долго думать - это станет логичным)

Ihor
19.01.2018
21:33:57
как это сеттеры не нужны? в конструктор передавать 20 параметров, чтобы инициализировать свойства?

Maksim
19.01.2018
21:34:44
а делать вызовы 20 сеттеров?) кажется, ты не ту проблему решаешь)

Bohdan
19.01.2018
21:35:23

Ihor
19.01.2018
21:35:23
вернёмся к конструктору )

Maksim
19.01.2018
21:35:43
конструктур с 20ю аргументами - явная хрень)

Sergey
19.01.2018
21:35:49

Anton
19.01.2018
21:35:57