@oop_ru

Страница 203 из 785
Sergey
07.05.2017
11:57:42
и завичит от обучения если преподователь использовал один термин то и ты его будешь скорей всего юзать
это не отменяет факта того, что "споры" от безграмотности. Вместо того что бы спорить стоит разобраться в истории

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

F01134H
07.05.2017
11:58:03
статегии выполняют простую роль. Позволяют тебе масштабировать логику с соблюдением O/C принципа. То есть вместо жирного ифа который надо править на каждый чих можно добавлять еще одну стратегию как отдельный класс.
Представим, что у нас вместо стратегии обычный класс с нагромождением функционала. Что бы использовать этот функционал вне контекста этого класса, придется его дублировать. А со стратегией, ты можешь функционал вынести в отдельную сущность и юзать только её

Google
Evgeniy
07.05.2017
11:58:21
это не отменяет факта того, что "споры" от безграмотности. Вместо того что бы спорить стоит разобраться в истории
как в приколе как вам удалось дожить до 100лет, я просто нискем не спорил, но это не возможно, ну не возможно так не возможно

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

а статегии нужны что бы в этом большом и жирном классе убрать switch

это цель

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
ой

паттерны

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

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
Вопрос про понимание паттернов в книге актуален скорее всего

Sergey
07.05.2017
12:06:00
а много времени нужно, чтобы осмыслить вот это все?
там @mkusher скидывал песенку про чувака у которого 20 лет опыта но это 1 год повторенный 20 раз. Так что все сильно относительно.

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
представь что я фанат процедурщины и попробуй мне объяснить

Like
07.05.2017
12:07:16
представь что я фанат процедурщины и попробуй мне объяснить
Сядь на Jav'y и попиши на своей процедурщине !

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

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

Aleserche
07.05.2017
12:07:41
Google
Sergey
07.05.2017
12:08:01
Сядь на Jav'y и попиши на своей процедурщине !
запросто. Так большинство и делает собственно

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

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
тот же ddd
оно тут причем?

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

Sergey
07.05.2017
12:09:50
есть сервисы, есть домены которые над entity :D
предлагаю перечитать Эванса)

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
Сядь на Jav'y и попиши на своей процедурщине !
Jav'y - это что-то на исландском?

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

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

Like
07.05.2017
12:11:05
Jav'y - это что-то на исландском?
Практически в точку

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
ооп это отражение реального мира через объекты?

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

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