
f4rt~
31.03.2017
16:12:09
понятно, что можно любое говно сделать как с ними так и без них

Sergey
31.03.2017
16:12:21
размазывая логику ?
вот ты создаешь юзера, допустим. И тебе надо ему ФИО установить. Как ты предлагаешь это делать?

v
31.03.2017
16:12:21

Sergey
31.03.2017
16:12:34

Google

Dmitriy
31.03.2017
16:12:39
надо
странные у тебя посты. где время создания нужно изменять

v
31.03.2017
16:12:57

Dmitriy
31.03.2017
16:13:11

v
31.03.2017
16:13:13

Sergey
31.03.2017
16:13:26
мне вот ненра в конструктор пихать столько параметров
уж лучше я сеттерами воспользуюсь

Dmitriy
31.03.2017
16:13:59

v
31.03.2017
16:14:36

Sergey
31.03.2017
16:14:44

Dmitriy
31.03.2017
16:15:03
Все понятно. оскорбления пошли. Я пить

F01134H
31.03.2017
16:15:14
?
Да нет, просто есть ситуации, где реально удобно юзать гет и сет

Google

f4rt~
31.03.2017
16:15:36
ну понятно, что это все атавизм, никто не пишет идеальный код
но стремиться к этому надо

v
31.03.2017
16:15:53

f4rt~
31.03.2017
16:15:56

v
31.03.2017
16:16:02
вот пример с конструктором

f4rt~
31.03.2017
16:16:12
билдеры
например

F01134H
31.03.2017
16:16:30
есть, конечно же
Ну и тем-более, не всегда это приводит к плохим последствиям. Все от реализации зависит

v
31.03.2017
16:16:41
надо, чтобы несколько параметров в зависимости от определенных условий принимали определенное значение
варианты действий без сеттеров?

f4rt~
31.03.2017
16:19:10
GRASP принципы

v
31.03.2017
16:19:21
правильно, запихнуть условия в конструктор
или в фабрику

f4rt~
31.03.2017
16:19:49
так как дискасс сводится к найти узкое место на примере, вместо изначального вектора, я больше на эту тему ничего не напишу)

v
31.03.2017
16:20:11
и в результате ради того, чтобы призрак фаулера погладил нас по головке, мы превращаем php в Жаву

Dmitriy
31.03.2017
16:20:29

f4rt~
31.03.2017
16:20:30
при чем тут вообще языки?

v
31.03.2017
16:20:53

f4rt~
31.03.2017
16:21:25
речь идет о сферическом восприятии объекта как единственное целое с логикой внутри себя, который не размазывает свое состояние/логику по всему проекту за счет геттеров/сеттеров

v
31.03.2017
16:21:44
при чем тут вообще языки?
при том что использовать в динамическом слаботипизированном языке приемы из статического сильнотипизированного - отдает хуйней

Google

v
31.03.2017
16:22:10

f4rt~
31.03.2017
16:22:11

v
31.03.2017
16:22:33

f4rt~
31.03.2017
16:23:05
ооп

Dmitriy
31.03.2017
16:23:14

f4rt~
31.03.2017
16:23:45

v
31.03.2017
16:23:55
это не абстракция над языком
ну никак

f4rt~
31.03.2017
16:24:37
да ладно а то ли не ооп переносят на реальную жизнь

v
31.03.2017
16:24:50

Евгений
31.03.2017
16:25:45
а мне пожалуй импонирует идея $user = new User( $userInfo ) вместо миллиона сеттеров

Константин
31.03.2017
16:26:13
Подскажите плиз какой нибудь RBAC модуль для Lumen. Главное требование: динамическое создание ролей

Евгений
31.03.2017
16:26:17
потому что завтра я добавлю 10 полей и что? будет ещё 20 методов?

f4rt~
31.03.2017
16:26:34
можно и пихать куда угодно

Евгений
31.03.2017
16:26:47
ну так класс распухнет )
делить?

Dmitriy
31.03.2017
16:27:10

Google

Dmitriy
31.03.2017
16:27:18

v
31.03.2017
16:28:26

Евгений
31.03.2017
16:28:29
ну это фактически будет класс который будет состоять из геттеров и сеттеров, N полей, 2N геттеров и сеттеров

v
31.03.2017
16:28:34
я обычно так не упарывался

Dmitriy
31.03.2017
16:29:38

v
31.03.2017
16:29:59
зачем?
вот ежедневный пример - получил объект из ORM
надо изменить некоторые его поля

Admin
ERROR: S client not available

v
31.03.2017
16:32:29
без сеттеров - его пересоздавать?
что, все задумались про фабрику фабрик для создания фабрик?

f4rt~
31.03.2017
16:37:40
послушай, чего ты уперся так
почитай тред ты упускаешь самую главную мысль
я не сказал что в 100% случаев и все начали доказывать мне, что его случай особенный
или выдумывать какие-то примеры из головы по редактирование даты и тому подобное
речь шла в вакууме
тот же Фолля
ни разу не использовал его в проекте

Google

F01134H
31.03.2017
16:39:42
Не понимаю, как геттеры и сеттеры отличаются от других методов класса
так же и размазывается...

v
31.03.2017
16:40:35
это примеры, приближенные к боевым

F01134H
31.03.2017
16:40:55
Так или иначе ты размазываешь логику уже тем, что пихаешь в объект какие-то данные извне. Так что это так себе аргумент
И я не вижу разницы между заданием свойств в конструкторе и заданием их же через сеттер
на деле одно и то же
Так что это скорее вкусовщина, чем какой-то антипаттерн

f4rt~
31.03.2017
16:42:45
когда данные в одном места, а логика для них в другом - это нарушение information expert (с)

v
31.03.2017
16:43:06
в объекте
на то и инкапсуляция

Евгений
31.03.2017
16:43:35
$user->update( $userInfo )

v
31.03.2017
16:44:02
это мне еще структуру userinfo создавать надо
ЗА-Е-БИ-СЬ
все по гайдлайнам жава-разработчиков

Евгений
31.03.2017
16:44:47
ну ок, юзай $user->lastname

v
31.03.2017
16:44:55
дак и юзаю

Евгений
31.03.2017
16:45:09
и геттеры не нужны )