
guga
17.04.2017
14:55:58

Sergey
17.04.2017
14:56:05

guga
17.04.2017
14:57:05
мне просто сложно понять, как жить без сайд-эффектов, по-сути, всё, что за приделами твоей вм, потециально ломает всю твою систему

Google

Sergey
17.04.2017
14:58:12

guga
17.04.2017
14:58:13
да и сама вм, тоже не подконтрольна тебе

Sergey
17.04.2017
14:58:43
ну то есть если в системе нет сайд эффектов то она не может никак взаимодействовать с внешним миром. Как минимум на границе между внешним миром и системой должны быть штуки которые вызывают сайд эффекты

guga
17.04.2017
14:59:51
оу, прости, немного перекосило меня, сделал равенство оброботки ошибок без сайд эффектов и работы системы в целом

Sergey
17.04.2017
15:15:27
ай все говно

Sergey
17.04.2017
16:57:08
https://habrahabr.ru/post/326620/

Sergey
17.04.2017
16:59:16

Sergey
17.04.2017
17:06:20
@GnuFreedom а ты на пхп случаем не пишешь?

Sergey
17.04.2017
17:08:33

Sergey
17.04.2017
17:09:09
значит ты другой Сергей Журавлев)

Java73
17.04.2017
18:45:20
Пока народу привалило повторю в надежде вопрос: никто на delphi/lazarus tiOPF не использовал?

Google

Aleh
17.04.2017
18:50:06
я бы хотел посоветовать тебе спец. чатик, но сомневаюсь в его существовании...

Sergey
17.04.2017
19:04:02

Aleh
19.04.2017
12:12:23
ой, ну народу привалило)
о, даже @Ai_boy

Алексей
19.04.2017
12:13:19

f4rt~
19.04.2017
12:13:20
Чот давно труъ разговоров за ООП не было, я соскучился

Евгений
19.04.2017
12:13:35
где проспамили?

Кирилл
19.04.2017
12:14:27
Как на счет обсудить такой подход: Все что в интерфейсе то паблик, все остальное либо привей, либо протектед?

Andrey
19.04.2017
12:14:27

Кирилл
19.04.2017
12:16:26
Зачем? Я не вижу смысла в этом.
Почему, будешь передавать в метод интерфейс, а там юзать только то что можно. А не всякие там сетеры и гетеры, не пощищь же их в интерфейс,лол. Получается и объекты будут иммутабельные.

Andrey
19.04.2017
12:16:56

Aleh
19.04.2017
12:17:00
как-то все зауши притянуто

Andrey
19.04.2017
12:17:07
Ну, можно и так. Почему додполнительных не надо.

Aleh
19.04.2017
12:17:07
протектед вообще зло

Andrey
19.04.2017
12:17:15

Evgeniy
19.04.2017
12:17:21
ога потому что наследование нужно редко

Aleh
19.04.2017
12:17:26
^
ломает инкапсуляцию ж

Evgeniy
19.04.2017
12:17:37
Почему?
наследование, в большинстве случаев не правильно юзают )

Google

Evgeniy
19.04.2017
12:17:47
наследование в классах, не в интерфейсах)

Aleh
19.04.2017
12:18:24

Кирилл
19.04.2017
12:19:13

Aleh
19.04.2017
12:19:51
interface Stack<T> {
push(element: T): void
pop(): T
}

f4rt~
19.04.2017
12:20:10

Aleh
19.04.2017
12:20:37

Andrey
19.04.2017
12:20:44
Чот вы хрень какую-то обсуждаете.

Aleh
19.04.2017
12:20:46
я не понимаю как связаны методы в интерфейсе и вопрос мутабельности

Кирилл
19.04.2017
12:31:17

Aleh
19.04.2017
12:31:43

Aleh
19.04.2017
12:32:03
там просто public/readonly поля ж обычно, не?

Sergey
19.04.2017
12:32:53
Кстати да, поясните за иммутабильные GUI. Принцип работы и куда копать?

Igor
19.04.2017
12:36:14

Oleg
19.04.2017
12:41:58
А что тут ивент может быть по программингу ???

Aleh
19.04.2017
12:42:34

Igor
19.04.2017
12:42:51

Andrey
19.04.2017
12:44:07
Тебе нужно знать все сайд-эффекты знать, потому что ты можешь сломать всё. Сейчас пример набросаю.

Google

Sergey
19.04.2017
12:45:42
чем тебе не пример "сломанной инкапсуляции"

Admin
ERROR: S client not available

f4rt~
19.04.2017
12:53:43
Как правильно идти с самим собой на компромисы по архитектуре/коду, что бы потом не была попаболь, как вы принимаете такие судьбоносные решения? и как часто по итогу они приводили, не туда куда хотелось бы изначально?)

Igor
19.04.2017
12:53:47

Кирилл
19.04.2017
12:56:37

Sergey
19.04.2017
13:03:44
то что один является по отношению к другому дочерний - плохое оправдание так как всеравно "дети" могут непредсказуемым образом влиять на поведение родителя
по сути protected штуки становятся частью контракта
и часто - совершенно случайно
ну то есть protected это как goto - по дефолту лучше не юзать но иногда удобно
а люди которые по дефолту лепят protected всего-лишь носители культа карго

Aleh
19.04.2017
13:10:05

Roquie
19.04.2017
13:10:25
А люди которые по дефолту лепят private & final к какому культу относятся?

Aleh
19.04.2017
13:10:29
тут либо не знают разницы с private(бывает и такое), либо в каком-то таком жестком легаси с наследованием это спасало)

Roquie
19.04.2017
13:11:22
Можно лепить и со знанием дела )
Aleh, ты мне как раз и нужен)) если репозитории работают с сущностью (добавление, например) и мы имеем у сущности кучу связей. Весь тот код, который собирает конечный entity и передает в метод add() коллекции, это по праву должно лежать где? В командах? Команда получается принимает на вход массив с fk и прочими полями. Не нашел ответа в сорцах того поляка. Где не посмотри примеры без связей.

Sergey
19.04.2017
13:19:57
> это по праву должно лежать где?
gateway, dao
> В командах?
кто такие команды?

Google

Roquie
19.04.2017
13:20:41

Sergey
19.04.2017
13:20:51
или ты про входящие данные запроса?

Roquie
19.04.2017
13:21:01
Почему?

Sergey
19.04.2017
13:21:01
если так то да

Roquie
19.04.2017
13:21:10

Sergey
19.04.2017
13:21:43
Почему?
Request -> controller -(input data)-> command handler -(Entity)-> repositry::add
хэндлер есть юзкейс
ну мол, "что надо сделать"
внутри "как надо сделать"