@oop_ru

Страница 57 из 785
James Tiberius Kirk ?
11.01.2017
18:20:17
Как вы относитесь к такой болезни ООП как AbstractFactoryBuilderBean?

Sergey
11.01.2017
18:20:37
Как вы относитесь к такой болезни ООП как AbstractFactoryBuilderBean?
развивающие игры, ну те что на воорбажение ориентированы

da horsie
11.01.2017
18:21:16
это билдер абстрактных фабрик или абстрактный билдер фабрики?

Sergey
11.01.2017
18:22:16
билдер абстрактный фабрик + бесполезный суфикс

Google
Sergey
11.01.2017
18:22:56
в целом же названия типов объектов должны передавать что делают объекты

тут этого нет

James Tiberius Kirk ?
11.01.2017
18:23:22
с помощью этого объекта можно создать любую фабрику

Sergey
11.01.2017
18:24:08
с помощью этого объекта можно создать любую фабрику
ну то есть работает оно как new AnyFabric?

что значит "любую"?

так не бывает

James Tiberius Kirk ?
11.01.2017
18:24:38
ну то есть работает оно как new AnyFabric?
это абстрактный объект, ты не можешь его создать

сперва надо заэкстендиться

Sergey
11.01.2017
18:25:52
мы тут знаете ли плохо к наследованию относимся)

da horsie
11.01.2017
18:26:25
абстрактная фабрика это вообще нечто странное

какой у нее публичный интерфейс?

Sergey
11.01.2017
18:26:39
абстрактная фабрика это на самом деле прекрасный пример компромисов

это тот случай когда избавиться от if-в не выходит)

Google
da horsie
11.01.2017
18:27:24
public НепонятноЧто createObject() ?

Sergey
11.01.2017
18:27:44
ну у тебя у всех "непонятно что" есть общий базовый тип

а за счет принципа подстановки Барбары Лискоу тебе этого должно хватать

da horsie
11.01.2017
18:28:12
CreatableByAbstractFactoryInterface?

Sergey
11.01.2017
18:28:19
ээм... нет

ну например

da horsie
11.01.2017
18:28:54
AbstractButton, да?

ButtonInterface

Sergey
11.01.2017
18:29:05
ну тип того

только давай без суффиксов/постфиксов бесполезных

просто Button

da horsie
11.01.2017
18:29:19
почему тогда фабрика абстрактная

Sergey
11.01.2017
18:29:54
фабрика строит инстансы нужных типов исходя из входящих данных

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

da horsie
11.01.2017
18:30:23
то есть фабрика вполне конкретная?

у нее есть инстанс?

Sergey
11.01.2017
18:30:38
конкретная фабрика которая делает абстракции

da horsie
11.01.2017
18:30:59
почему тогда не назвать ее просто ButtonFactory?

Sergey
11.01.2017
18:31:01
> у нее есть инстанс? хз, я обычно это делаю в статическом методе в базовом классе

почему тогда не назвать ее просто ButtonFactory?
норм название для абстрактной фабрики че

Google
Sergey
11.01.2017
18:31:25
у меня к тебе встречный вопрос

почему ты не назовешь ProductRepository не как Catalog

?

"прудукты хранятся в каталоге" звучит как-то логичнее с точки зрения бизнеса нежели "продукты лежат в репозитории продуктов"

da horsie
11.01.2017
18:33:02
а почему я не назову? может и назову. просто Repository имеет некую дополнительную смысловую нагрузку

ассоциации в голове всплывают

Sergey
11.01.2017
18:33:22
точно так же Abstract имеет некую смысловую нагрузку)

которая несет ровно ту же 0-вую ценность

da horsie
11.01.2017
18:33:39
ну не

Sergey
11.01.2017
18:33:44
ну да)

da horsie
11.01.2017
18:34:03
Catalog может быть каталогом кнопок, а может быть каталогом лягушек

Sergey
11.01.2017
18:34:06
ты сразу будешь думать "о репозиторий... доктрина... дата мэппер... запихну туда findProductsWithComments

da horsie
11.01.2017
18:34:22
а ProductRepository понятно что хранит продукты

Sergey
11.01.2017
18:34:42
Catalog может быть каталогом кнопок, а может быть каталогом лягушек
каталог в контексте e-comm солюшена не может быть "каталогом кнопок"

хотя может и может но тогда "кнопка" это продукт в каталоге)

da horsie
11.01.2017
18:35:02
ну да

James Tiberius Kirk ?
11.01.2017
18:35:27
фронтендом запахло

Sergey
11.01.2017
18:35:33
я это к тому что разработчики думают не в терминах бизнеса

как правило

и это заставляет их обзывать вещи как им удобно

Google
da horsie
11.01.2017
18:35:45
фронтендом запахло
просто классический пример с кнопками

Sergey
11.01.2017
18:36:01
Ну, не соглашусь
я не про всех

я про подавляющее большинство

и еще большее количество людей обзывая что-то SomethingInterface делают это на автомате

ну то есть их лет 10 назад так научили и они с тех пор так делают

привычка

знаете же эксперемент с обезъянками и бананом?

Sergei
11.01.2017
18:37:11
Admin
ERROR: S client not available

Sergey
11.01.2017
18:37:42
https://dezinfo.net/images3/image/02.2012/obezyan/1003.jpg

Sergey
11.01.2017
18:37:47
Я стараюсь определить оптимальный уровень абстракции для требований бизнеса и на основании этого проектирую уже. Конечно до ddd лично мне далековато, но пока не жалуюсь

Sergey
11.01.2017
18:38:53
а бизнесу нужны твои абстракции?)
Не, я ж лично для себя и для команды. Чтоб архитектуру строить

И чтобы не получилось 800 уровней наследования

Фаьрик тыщщи, паттерн на паттерне и все такое

Sergey
11.01.2017
18:40:15
Не, я ж лично для себя и для команды. Чтоб архитектуру строить
я понимаю, я к тому что.... а ты уверен что с точки зрения эффективности это правильно? (хотя я не видел код потому ничего не могу судить)

finkel
11.01.2017
18:40:45
я делаю один огромный метод, а потом думаю как из этого ооп сделать. У всех же так было?)

Google
Sergey
11.01.2017
18:41:10
почитай про функциональную абстракцию

декомпозицию и т.д.

говорят помогает

большая часть проблем у разработчиков от того что они не хотят разбираться с тем что они делают

они сначала делают и потом уже задают вопросы когда "не работает"

потому такие практики как TDD и выдумывают

они заставляют разработчика вникать и разбираться что им нужно сделать...

(воприки мнению что это про тесты)

тесты в этом случае - лишь инструмент заставляющий смотреть на разрабатываемй код с позиции пользователя этого кода (другой программист)

и формировать какие-то критерии приемки и т.д. выстраивать более четкую декомпозицию (потому что с херовой декомпозицией неудобно тесты писать)

finkel
11.01.2017
18:44:21
и правильного мышления это не добавит, просто загонит тебя в рамки, где будет сложно сделать не правильно

Sergey
11.01.2017
18:45:08
но если ты сделаешь это ДО у тебя не будет тратиться время на этот огромный метод

хотя прототипы делать иногда полезно

> и правильного мышления это не добавит, просто загонит тебя в рамки, где будет сложно сделать не правильно цель этого всего заставить тебя думать ДО того как ты напишешь этот жирый метод)

так с точки зрения времени и трудозатрат эффективнее выходит

1 час на жирный метод, 0.25 часа подумать, 0.5 час тест, 0.5 час реализация

0.25 часа подумать, 0.5 час тест, 0.75 час реализация

что быстрее?

Sergey
11.01.2017
18:47:26
я понимаю, я к тому что.... а ты уверен что с точки зрения эффективности это правильно? (хотя я не видел код потому ничего не могу судить)
Иногда эффективен иногда - нет. Бывает что бизнкс требования свои сам не понял, бывает я накосячил.

Sergey
11.01.2017
18:47:38
0.25 часа подумать, 1 час реализация, 0.5 часа тест, 0.25 часа рефакторинг кода что бы тесты норм писались, 0.25 часа дописать тесты

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