
Sergey
07.05.2017
11:57:42

Evgeniy
07.05.2017
11:57:42
и общая терминология

F01134H
07.05.2017
11:58:03

Sergey
07.05.2017
11:58:20

Google

Evgeniy
07.05.2017
11:58:21

F01134H
07.05.2017
11:58:34

f4rt~
07.05.2017
11:59:08

Артур Евгеньевич
07.05.2017
11:59:10

Sergey
07.05.2017
11:59:25
использовать
если у тебя есть класс который что-то делают. и его должны использовать 2 разных контекста которым нужны разные вещи, то это явно должено быть два класса а общие вещи можно вынести в общую зависимость.
а статегии нужны что бы в этом большом и жирном классе убрать switch
это цель

F01134H
07.05.2017
11:59:52

Sergey
07.05.2017
11:59:55
короч

F01134H
07.05.2017
12:00:10
стратегия же позволяет вынести функционал в эту самую зависимость, я про это и говорю)

Sergey
07.05.2017
12:00:17
цель - убрать свитчи. возможность частичного реюзар разных стратегий в разных контекстах - это скорее приятный побочный эффект
убрать дублирование кода можно намного проще

F01134H
07.05.2017
12:01:27
речь то про то, что стратегии тоже на это могут навести

Google

F01134H
07.05.2017
12:01:44
ой
паттерны

Aleserche
07.05.2017
12:01:56

F01134H
07.05.2017
12:02:11
трейты эт такое себе
не серебряная пуля)

Sergey
07.05.2017
12:02:31
а не "дублирования кода"
у тебя вполне может быть ситуация при которой есть 2 полностью идентичных куска кода

F01134H
07.05.2017
12:02:59
Я ничего не говорю, конечно они роль другую выполняют

Sergey
07.05.2017
12:03:02
которые потребляют разные клиенты
и вот такое дублирование лучше не трогать

F01134H
07.05.2017
12:03:08
но ведь при этом они вполне могут и дублирование уменьшить

Like
07.05.2017
12:03:27

Sergey
07.05.2017
12:03:28

F01134H
07.05.2017
12:03:40
странно

Sergey
07.05.2017
12:03:45
дублирование кода - это там где-то в конце причинно следственных связей которые лежат в основе паттернов

Like
07.05.2017
12:04:07

Sergey
07.05.2017
12:04:56
странно
что странно. Дублирование логики - это симптом плохой декомпозиции. Иногда дублирование логики нормально поскольку эта логика нужна для разных ролей. И что особенного в том что логика используется разными ролями - это то что потом она может по разному поменяться.

Aleserche
07.05.2017
12:05:10
а много времени нужно, чтобы осмыслить вот это все?

Google

Like
07.05.2017
12:05:12
Вопрос про понимание паттернов в книге актуален скорее всего

F01134H
07.05.2017
12:05:33
главное - найти пример, который для тебя понятен

Sergey
07.05.2017
12:06:00

F01134H
07.05.2017
12:06:01
их полно и все разные

Sergey
07.05.2017
12:06:13

F01134H
07.05.2017
12:06:23
хз как это определить

Like
07.05.2017
12:06:31

F01134H
07.05.2017
12:06:33
не, ну я имею ввиду, наследование там, сущности, классы, объекты
интерфейсы
для чего это все

Sergey
07.05.2017
12:06:41
представь что я фанат процедурщины и попробуй мне объяснить

F01134H
07.05.2017
12:06:52

Like
07.05.2017
12:07:16

F01134H
07.05.2017
12:07:24
Сергей, отстань, я знаю, что ты монстрюга в программировании :D Я даж не поблизости

Sergey
07.05.2017
12:07:35
для чего это все
я год назад уже разделил графу "ооп" при оценке сотрудников на "процедурщина с классами" и "ооп".

Aleserche
07.05.2017
12:07:41

Evgeniy
07.05.2017
12:07:46

Google

Sergey
07.05.2017
12:08:01

F01134H
07.05.2017
12:08:10

Sergey
07.05.2017
12:08:13
создаешь класс который хранит данные, и другой класс с процедурами

Like
07.05.2017
12:08:19

Evgeniy
07.05.2017
12:08:39

Sergey
07.05.2017
12:08:40

Evgeniy
07.05.2017
12:08:43
нарушил инкапсулирование

f4rt~
07.05.2017
12:08:44
ну если у тебя класс - контейнер для твоего продцедурного кода :D

Like
07.05.2017
12:08:47

Evgeniy
07.05.2017
12:09:00
иногда это прикольно но не оопшно))

Admin
ERROR: S client not available

Sergey
07.05.2017
12:09:13
Ничем )
любое ОО = процедурщина но не всякая процедурщина = ОО

Evgeniy
07.05.2017
12:09:14
тот же ddd

Sergey
07.05.2017
12:09:28

Evgeniy
07.05.2017
12:09:32
есть сервисы, есть домены которые над entity :D

Sergey
07.05.2017
12:09:50

Evgeniy
07.05.2017
12:09:53
состояние в домене

Aleserche
07.05.2017
12:09:54
так чем ооп от процедурщины отличается?

Sergey
07.05.2017
12:10:08
когда у тебя entity это анемичные модели данных - у тебя врядли выйдет хорошо выразить в коде бизнес логику

Evgeniy
07.05.2017
12:10:10

Google

Sergey
07.05.2017
12:10:28
ну то есть в теории конечно можно, но будет больно

Evgeniy
07.05.2017
12:10:32
о онемичные модели или не онемичные срач
да любое решение несет в себе боль

Alexander
07.05.2017
12:10:55

Evgeniy
07.05.2017
12:10:56
и чтобы программистом надо быть мазохистом и терпеть боль

Sergey
07.05.2017
12:11:00
в целом "сервисы, сущности" и т.д. это лишь названия. Это как паттерны. Суть же DDD немного в другом.

Like
07.05.2017
12:11:05

Evgeniy
07.05.2017
12:11:25
но когда логику выносят в сервисы то она становится размазанной
по домену и сервисам
и вытекает от туда та процедурщина о который ты говорил 1 объект для данных другой для действий
ну так может быть но не обязательно

Sergey
07.05.2017
12:12:44
там очень тонкая грань

Evgeniy
07.05.2017
12:13:09
god object это ооп ?)
данные в нем
код работающий с ними тоже
OOP

Sergey
07.05.2017
12:13:26
объект не может быть богом если он один)

Like
07.05.2017
12:13:48

Evgeniy
07.05.2017
12:13:49
ооп это отражение реального мира через объекты?

Sergey
07.05.2017
12:14:03

Evgeniy
07.05.2017
12:14:26
а что отражает ооп тогда?)