@oop_ru

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

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

Sergei
19.01.2018
21:36:33
как это сеттеры не нужны? в конструктор передавать 20 параметров, чтобы инициализировать свойства?
Из хорошего - параметры конструктора (обычно) невозможно забыть - компилятор напомнит. А сеттер забыть вызыать - это запросто.

Google
Sergey
19.01.2018
21:37:05
ну, я толстые имею в плане rich
ну так рич они не толстые)

они рич

а точнее 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
Ну такое да... согласен, не в тему

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
как это сеттеры не нужны? в конструктор передавать 20 параметров, чтобы инициализировать свойства?
ответь лучше на такой вопрос. Этому объекту для всех его операций нужны все 20 полей?

или хотя бы каждый метод юзает 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
бизнесу тоже надо думать, что бы все были счастливы) но если программисты порой хотя бы вид делают, что думают, то думающий бизнесс === единорог

и вот как раз у последних в львиной части случаев "хуяк-хуяк и в продакшен, потом поправим". Думать тупо некогда.

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
да, с геттерами и сеттреами хороший пример... В последний раз вспоминал о декомпозиции, когда читал Гради Буча :) А отсутствие сеттеров будет способствовать и декомпозиции и агрегации. Если я всё правильно понял.

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
https://www.youtube.com/channel/UCbF-4yQQAWw-UnuCd2Azfzg
Он там 1 час 40 минут объясняет паттерн итератор. Не проще ли за 10 минут про это прочитать в GOF?

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
сайт мозилы, def credits это контроллер, который внутри делает то, что делать явно не должен
единственный кусок кода который я бы там переделал - это построение гистограммы - вынес бы это в свой объект

все остальное, тот факт что там идет построение запроса - это нормально

ответь просто на вопрос - зачем выносить это дело?

Max
19.01.2018
22:38:40
единственный кусок кода который я бы там переделал - это построение гистограммы - вынес бы это в свой объект
ок, но ответственность контроллера - взять контекст и вызвать render('template.html', context), разве нет?

Sergey
19.01.2018
22:38:54
с точки зрения клиентского кода область ответственности четко выделена

давай по другому, допустим мы вынесли построение запроса в отдельную хрень - что мы этим добились? в чем преимущества?

даже если ты захочешь на sqlalchemy переходить - не думаю что у тебя этот запрос будет там отличаться сильно. Будет тот же квери билдер

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