
Sergey
12.02.2017
17:06:35

first
12.02.2017
17:06:54

Sergey
12.02.2017
17:07:23
мне тоже нравится эта идея)
не помню у кого это подсмотрел

Google

Invirtus
12.02.2017
17:07:45
там оч хороший ответ на твой вопрос
ок, посмотрю. Спасибо.
Хотя мне так больше нравится:
{
if (isAlcoholic()) {return "Напиток алкогольный";}
else {return "Напиток безалкогольный";}
}
аккуратнее как-то

Sergey
12.02.2017
17:08:28
в целом же... хз есть ли в java что-то для удобного pattern matching

Viktor
12.02.2017
17:09:32

Aliaksandr
12.02.2017
17:09:44

Sergey
12.02.2017
17:09:46
да, так тож норм
Scala. (:
return when (isAlcoholic()) {
True -> 'Алкоголь'
False -> 'Не алкоголь'
}
если я правильно помню как оно там в котлинах

Aliaksandr
12.02.2017
17:12:41
В котлинах так.
Только ещё else могут потребовать.

Invirtus
12.02.2017
17:38:59
без фигурных скобок только если
в целом у меня даже больше вопрос про такой стиль :
if (you.hasAnswer()) {
you.postAnswer();
} else {
you.doSomething();
}
для меня он очень сложно читаем, в отличие от скажем
if (you.hasAnswer())
{
you.postAnswer();
}
else
{
you.doSomething();
}
в общем то в этом и был вопрос - насколько чаще пишут как в варианте 1 чем как в варианте 2

Sergey
12.02.2017
17:40:28
лучше подумай как избавиться от ифов
например doSomething - что это?

Google

Invirtus
12.02.2017
17:40:55
это учебная задача, я только учусь. но я понял

Sergey
12.02.2017
17:41:10
меньше веток условий - меньше логики - меньше возможностей допустить ошибку
полностью от них ты не избавишься (в java во всяком случае) но в целом код будет проще.

Юра В
12.02.2017
19:19:59
котаны, а кто SWEBOK осиливал? что думаете о предмете?

Agaponiz
12.02.2017
21:10:45
это конфа об аниме?

Sergei
12.02.2017
21:11:43

Agaponiz
12.02.2017
21:12:32

Sergey
12.02.2017
21:12:52
меня недавно заставили посмотреть школу-тюрьму - норм

Agaponiz
12.02.2017
21:13:07

Влад
12.02.2017
21:21:16

da horsie
12.02.2017
21:29:37

Sergey
12.02.2017
21:30:17
вот чисто теоритический вопрос
положим у нас микросервисная архитектура (что бы больше ограничений)
и есть например микросервис каталога товаров, есть микросервис с заказами, есть микросервис с чатами (что-то типа консультации с продавцами или споры по каким-то проблемам с оными)
во всех трех надо дать возможность искать по имени продукта в каталоге
в заказах и чатах по имени покупателя
вот... есть два варианта:
1. вынести поиск в отдельный микросервис
2. поиск есть у каждого микросервиса, и для денормализации мы пишем что-то типа pub/sub который ивнты о том что например пользователь себе имя поменял прокидывает всюду
у первого варианта есть плюс - можно заюзать какую-нибудь эластику для поиска. Ну и в целом можно много прикольных вещей потом делать.
минус тоже есть - он начинает многова-то знать о вещах которые у нас есть... хотя может это мне как-то кажется.

Google

da horsie
12.02.2017
21:34:33
зачем чату искать заказы?

Sergey
12.02.2017
21:35:07
зачем чату искать заказы?
ну тип бизнес идея в том что ты можешь попробовать оспорить заказ с продавцом посредствам чата (там еще можно voip будет потом)
есть прикольная фича - наорать)
а потому что бы найти нужный тебе "диспут" проще тебе надо имя продукта ввести

da horsie
12.02.2017
21:36:06
ну замечаельно, а зачем чату искать заказы? чат должен получать и передавать текстовые сообщения участникам чата

Sergey
12.02.2017
21:36:17
нет, ты ищешь чаты по названию продукта

da horsie
12.02.2017
21:36:18
ну или картинки на крайняк

Sergey
12.02.2017
21:36:29
чаты ищешь
а не заказы. В модуле заказа ты идешь заказы по названию продукта
ну то есть это разные модули и ищешь ты то за что отвечают модули

da horsie
12.02.2017
21:37:44
значит это должен быть поиск внутри сервиса чатов

Sergey
12.02.2017
21:38:13
окей. Это микросервисы. У каждого - своя база данных

da horsie
12.02.2017
21:38:17
да

Sergey
12.02.2017
21:38:24
ну и потом, я хочу юзать эластику для нормального поиска
например
каждому по эластике?

da horsie
12.02.2017
21:38:45
ну и юзай
да
если надо

Sergey
12.02.2017
21:39:01
ок, понял тебя

Google

da horsie
12.02.2017
21:39:12
правда я не представляю, сколько чатов там должно наплодиться, чтобы эластика была оправдана

Sergey
12.02.2017
21:39:14
а чем объективно плоха идея одного микросервиса который занимается поиском?

da horsie
12.02.2017
21:39:37
тем, что от него начинают все зависеть
сложнее деплоить раздельно

Sergey
12.02.2017
21:40:05

da horsie
12.02.2017
21:40:07
сложнее отдать его отдельной команде разрабов

Admin
ERROR: S client not available

Sergey
12.02.2017
21:40:29
деплойся себе отдельно, проблемы нет пока микросервисы между собой контракты соблюдают

da horsie
12.02.2017
21:41:13
т.е. поисковый сервис будет дергать сервис чата и вытаскивать из него материал для индексации?

Sergey
12.02.2017
21:41:47
ну... почти. Он будет подписываться на изменения (аля вэбхуки) и таким образом получать инфу о том что надо что-то у себя добавить/обновить

da horsie
12.02.2017
21:42:42

Sergey
12.02.2017
21:43:10
и скорее всего это будут очереди сообщений
или zeromq
словом пока забудь о расходах на коммуникацию между сервисами, потом расскажу почему)

da horsie
12.02.2017
21:44:03
очереди это просто способ организации, трафик все равно будет

Sergey
12.02.2017
21:44:27

Google

Sergey
12.02.2017
21:44:40
ну и в целом возможностей для улучшений/изменений

da horsie
12.02.2017
21:45:23
ну тогда надо исходить из того, что у тебя меняется вместе, а что независимо
с точки зрения бизнеса, поиск в чатах у тебя будет зависеть от требований к самим чатам?

Sergey
12.02.2017
21:46:09
чем лично мне нравится идея одного микросервиса ответственного за поиск:
- легко масштабировать логику. Кохисив.
- Проблемы с денормализацией данных так и так будут. Тебе ж надо как-то получать доступ к имени продукта из сервиса заказов например. А так хоть в одном месте обновлять, меньше операций и трафика.
- Можно сделать общий поиск. Ты вбиваешь поисковой запрос а он тебе выдает разные штуки.

da horsie
12.02.2017
21:46:55
ну как часто бизнес просит поменять что-то в чатах, и как часто это влияет на поиск?

Sergey
12.02.2017
21:47:25
изменения логики чатов крайне редко аффектит поиск

da horsie
12.02.2017
21:47:33
тогда норм
пусть живет отдельно

Sergey
12.02.2017
21:47:52
ну а почему говорил что не стоит париться о траффике
так это потому что по сути никаких микросервисов у меня пока нет
и не планируется
но есть желание разделить и изолировать систему
что бы с компонентами могли работать разные люди независимо друг от друга
до отдельных команд и полноценных микросервисов мы не доросли еще, но монолит нормально сделать хочется

Влад
12.02.2017
21:49:15
Просто делаешь микросервис поиска

Sergey
12.02.2017
21:49:31
ну то есть микросервисы это такая штука... которую лучше не делать пока не прижмет. Но никто не мешает делать изоляцию по тем же принципам и получать тот же профит.

Влад
12.02.2017
21:49:33
Остальные микроскрвисы сливают туда данные при изменениях