
Maksim
19.01.2018
21:36:14
все успели закапитанить, а ты нет)

Sergey
19.01.2018
21:36:25
....толстые модели....
толстыми они будут если ты не будешь делать декомпозицию. Мы тут не так давно микросервисы обсуждали, где это очень важный момент

Sergei
19.01.2018
21:36:33

Bohdan
19.01.2018
21:36:54

Google

Sergey
19.01.2018
21:37:05
они рич
а точнее whole

Anton
19.01.2018
21:37:18
God

Maksim
19.01.2018
21:37:24
sucks)

Bohdan
19.01.2018
21:37:27
упитанные :D
но да, сорри

Sergey
19.01.2018
21:37:35
God
не, боги это жирная шляпа с низким кохиженом
ни разу не whole value

Anton
19.01.2018
21:38:10
Ну такое да... согласен, не в тему

da horsie
19.01.2018
21:38:52

andretshurotshka?❄️кде
19.01.2018
21:40:16

Sergey
19.01.2018
21:40:16
лечение насморка переломом
на самом деле слишком много параметров конструктора может быть симптомом.... а может и не быть) это просто хороший признак для того что бы начать думать

andretshurotshka?❄️кде
19.01.2018
21:40:34
ааа

Google

andretshurotshka?❄️кде
19.01.2018
21:40:36
или у вас не жс

Sergey
19.01.2018
21:40:50
или хотя бы каждый метод юзает 15 из 20 полей
ну так, что бы подумать
или у тебя там только геттеры?)
возможно этот 1 объект надо разделить на несколько, каждый из которых будет уже юзать данные на всю катушку

Ihor
19.01.2018
21:43:10
я вот как раз писал о декомпозиции, чтобы уменьшить количество параметров )

Sergey
19.01.2018
21:43:15
как по мне проблемы в целом начинаются потому, что люди приучены классы проектировать, и делают они по принципу "сначала раскидаем данные а потом придумаем что с ними делать"
и бизнес аналитики все эти которые модели данных рисуют.... ух

Maksim
19.01.2018
21:47:21
когда люди начинают делать "правильно", получается ещё хуже) так что делать надо, как умеешь, с небольшой (!) оглядкой на всё прочее. В процессе исправится.
а причина проста: сколько людей знает, как оно должно быть на самом деле?)

Sergey
19.01.2018
21:48:39
ну или я могу трактовать ее как "ииии тааак сойдет!"

Maksim
19.01.2018
21:48:57
+/- так и есть

Sergey
19.01.2018
21:49:00
а потому мы должны принять это как данность и просто делать все так, что бы "передумывать" было дешевле
при том что это... не сложнее
просто по другому
просто надо чуть больше думать - с точки зрения затрат для бизнеса это примерно одно и то же
и да я знаю что думать больно

Google

Sergey
19.01.2018
21:50:03
но не думать - бывает больнее

Maksim
19.01.2018
21:50:37
бизнесу тоже надо думать, что бы все были счастливы)
но если программисты порой хотя бы вид делают, что думают, то думающий бизнесс === единорог
и вот как раз у последних в львиной части случаев "хуяк-хуяк и в продакшен, потом поправим". Думать тупо некогда.

Sergey
19.01.2018
21:55:31
это не столь важно

Maksim
19.01.2018
21:55:48
да все рано или поздно умрут)

Sergey
19.01.2018
21:56:04
и уж тем более на тебя как на разработчика никак не должно влиять. Более того - ты можешь помогать им думать задавая правильные вопросы)
предлагая варианты
они тебе цели должны ставить, а не что делать говорить
другое дело что целей нет часто - это абсолютно другая проблема
не думаю что стоит ее обсуждать)
можно провести аналогию - "заюзать микросервисы без цели" - это то же самое как "у меня есть новая идея офигенная - соц сеть!"

Sergey
19.01.2018
21:57:47
ну или че там в 2018-ом... "как слак только мой"

Ihor
19.01.2018
21:58:24
да, с геттерами и сеттреами хороший пример... В последний раз вспоминал о декомпозиции, когда читал Гради Буча :) А отсутствие сеттеров будет способствовать и декомпозиции и агрегации. Если я всё правильно понял.

Sergey
19.01.2018
21:58:55

Ihor
19.01.2018
22:00:39
если бы так ещё каждый паттерн вкурить )))
а то проект на работе хороший, но не способствует :(

Anton
19.01.2018
22:01:07
Это не паттерн, это здравый смысл

Ihor
19.01.2018
22:01:27
я о паттернах говорил )
уже задолбался перечитывать, а практики, как таковой, нет

Google

Sergey
19.01.2018
22:01:57

Anton
19.01.2018
22:02:12
Ну так их не надо вкуривать, а надо понимать зачем оно

Sergey
19.01.2018
22:02:29
а нужны они больше - как быстрый способ описать что ты хочешь сделать/сделал. Ты не должен ими мыслить
"шаблнное мышление" - звучит не очень, правда?
так между прочим рождаются всякие AbstractVehicleFactoryFactory

Maksim
19.01.2018
22:03:14
главное только без фанатизма) в памяти свеж пример со стратегиями)

Sergey
19.01.2018
22:03:32

Maksim
19.01.2018
22:04:05
ну нейминг меня так себе волнует, у самого Google Translate Development...)

Adel
19.01.2018
22:04:13
про 20 параметров конструктора... обычно это говорит о том, что разработчик не умеет VO.

Admin
ERROR: S client not available

Sergey
19.01.2018
22:04:35
https://www.youtube.com/channel/UCbF-4yQQAWw-UnuCd2Azfzg
мне вот этот чел нравится - это неплохое место с которого можно начать "думать дальше"

Adel
19.01.2018
22:05:10
ну я очень хотел вставить свои 13 капитанских копеек

Ihor
19.01.2018
22:07:10
VO - это что?

Maksim
19.01.2018
22:07:24
value object

Ihor
19.01.2018
22:18:13
когда читал статью, там был пример о том, как в собаку засетить мячик, вот вспомнилось:
не обессудьте )

Google

Max
19.01.2018
22:24:08

Sergey
19.01.2018
22:24:29
он покрывает чуть больше и разжевывает намного подробнее
паттерны типа фасада например так разжевывать не надо)

Max
19.01.2018
22:29:11
Было бы горазно интереснее, если бы кто-нибудь брал более менее средний проект и на его примере объяснял, что хорошо, что плохо, а то все пишут про "выделяйте бизнес логику в сервисе", а на деле - или всё впихнуто в контроллер, или 100500 классов-оберток и непонятно, с чего начинать разбираться.


Sergey
19.01.2018
22:29:53
но нет, я не про контроллеры сейчас
что до "средних проектов"
тут есть 3 нюанса:
- NDA.
- Средний проект уже достаточно большой что бы проявлялись эффекты от "хороших практик" но он уже слишком большой что бы хотя бы за цикл видео недельный покрыть все эти нюансы.
- Преимущества по настоящему раскрываются только с течением времени. Ты не можешь сказать "делайте так", потому что в определенных обстоятельствах это будет не столь эффективно
а пилить проекто просто так - я пытался... это отнимает много сил и сложно пилить продукт который никому не нужен и никем не юзается)
если он никем не юзается - примеры изменений получаются весьма искусственными что смазывает картину


Max
19.01.2018
22:33:02
ну вот пример - https://github.com/mozilla/addons-server/blob/master/src/olympia/pages/views.py
сайт мозилы, def credits это контроллер, который внутри делает то, что делать явно не должен
явное обращение к модели (у них там в django orm, что если они захотят внезапно поменять это на sqlalchemy.. хотя кого я обманываю, не захотят)
с точки зрения разработчика - да, я понимаю, это очень быстро написать, не надо думать, особенно если сроки горят, а свои 50-100к$ получить хочется.

Sergey
19.01.2018
22:37:47
все остальное, тот факт что там идет построение запроса - это нормально
ответь просто на вопрос - зачем выносить это дело?

Max
19.01.2018
22:38:40

Sergey
19.01.2018
22:38:54
с точки зрения клиентского кода область ответственности четко выделена
давай по другому, допустим мы вынесли построение запроса в отдельную хрень - что мы этим добились? в чем преимущества?
даже если ты захочешь на sqlalchemy переходить - не думаю что у тебя этот запрос будет там отличаться сильно. Будет тот же квери билдер