@oop_ru

Страница 181 из 785
guga
17.04.2017
14:55:58
хотел спросить play или wicket?
Ох и выбор, прямо только эти два доступны?

Sergey
17.04.2017
14:56:05
guga
17.04.2017
14:57:05
по типу, там есть try/catch
и это ты считаешь без сайд-эффекта?

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

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
никто не хочет похоливарить на тему иммутабельность vs инкапсуляция?
Мне нравится тема холивара. Тоже интересно. Иммутабильщики многие объекты состояния просто хранят в структурах и отдают в чистую функцию, которая вернет им новую структуру

https://habrahabr.ru/post/326620/

Мне нравится тема холивара. Тоже интересно. Иммутабильщики многие объекты состояния просто хранят в структурах и отдают в чистую функцию, которая вернет им новую структуру
Меня как ООП фаната это прямо таки коррежет и мешает мне писать истинно функциональный код с хранением состояния в типе структуры

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
о, даже @Ai_boy
А я вообще не знал про группу :)

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

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

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

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

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
наследование в классах, не в интерфейсах)

Кирилл
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
interface Stack<T> { push(element: T): void pop(): T }
а вы с Коняшей не надумали насчет парного погромирования?)

Aleh
19.04.2017
12:20:37
interface Stack<T> { push(element: T): void pop(): T }
пример интерфейса без сеттеров, реализации которого подразумеваются мутабельными

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

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

Aleh
19.04.2017
12:31:43
Хороший пример, но подразумевал дто
зачем для dto интерфейсы О.О

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
там просто public/readonly поля ж обычно, не?
Так то да. Согласен мутабельность с интерфесом не связан, это я погорячился)

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
> В командах? кто такие команды?
Класс с handle, который диспатчится ларой

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

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

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

Sergey
19.04.2017
13:21:43
Почему?
Request -> controller -(input data)-> command handler -(Entity)-> repositry::add

хэндлер есть юзкейс

ну мол, "что надо сделать"

внутри "как надо сделать"

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