@oop_ru

Страница 733 из 785
Aleh
01.09.2018
14:40:11
Ты пользуешься одной из топовых систем типов(flow), не все так могут)

Топовых production ready конечно же

Дмитрий
01.09.2018
14:40:35
Сначала дико бомбило от такого явления, потом понял, что это весьма логично, в обьектах например часть данных может быть только у сервера типа каких-нибудь ключей

Google
Aleh
01.09.2018
14:41:24
Но типа да, к этому стоит стремиться)

Артур Евгеньевич
01.09.2018
14:58:32
Ребята, применяется ли в русском языке слово специализация, в значении сужение типа? Вроде как да(например когда школьники в старших классах выбирают специализацию подразумевается сужение их обучения). Но что то мне кажется звучит неказисто. Geometrically, a square is a specialisation of a rectangle: every square is a rectangle, not every rectangle is a square. Как вот тут заменить слова специализация?

Panda
01.09.2018
15:00:44
подвид?

частный случай?

Дмитрий
01.09.2018
15:01:21
Не использовать термины на русском языке

Серьезно, просто забудьте

Panda
01.09.2018
15:03:05
а если надо бабушке объяснить?

Дмитрий
01.09.2018
15:03:56
Начать с пояснения, что часть слов будут на басурманском

Теория типов настолько неинтуитивна местами, что просто мозг клинит, добавлять в винегрет из inheritance / variance / soundess / subtyping ещё и переводы с одного языка на другой — это довольно отчаяно

Обучать школьников неправильным терминам вообще не круто, например. Неправильным, потому что русские слова несут с собой дополнительные, неверные в данной области, смыслы. Это просто обман, чтобы набрать классы

Хорошие новости — так как все варианты одинаково плохие, то можно выбирать любой)

Артур Евгеньевич
02.09.2018
16:37:14
Наткнулся на картинку. Чувак позиционирует это как луковую архитектуру...я не понял почему аппликешйн снаружи инфраструктуры??



Google
Aleh
02.09.2018
16:40:12
я не очень уверен в большой ценности такого разбиения)

в том числе потому, что слои могут передвигаться в зависимости от рассказа

Артур Евгеньевич
02.09.2018
16:45:30
что значит могут передвигаться?)) Тут же показывается зависимость верних слоев от внутренних

тут получается что у нас аппликейшн слой зависит от базы данных или от того откуда пришел запрос из консоли или из очереди)

Igor
02.09.2018
16:51:29
Кек, доменная модель - через интерфейсы зависит от инфраструктуры - такое то ООП, потом без моков никуда

Артур Евгеньевич
02.09.2018
16:52:21
что значит зависит? Это интерфейсы доменные реализуются в инфраструткурном слое же, домен о них не знает ничего

а с такой логикой можно вывести и зависимость доменной модели от железа на сервере или вообще от электричества

Dmitry
02.09.2018
18:41:10
а сетевое взаимодействие — оффтоп? как я понимаю, есть два подхода к (де-)сериализации объектов. хранить опкод и враппер. вот как правильно называются эти подходы, чтобы про плюсы-минусы почитать

Aleh
02.09.2018
18:42:09
что значит могут передвигаться?)) Тут же показывается зависимость верних слоев от внутренних
да то и значит, эти схемы со слоями очень зависят от задачи к задаче, от автора к автору. У эванса в голубой книге совсем по-другому они связаны

Котяй Негодяй
02.09.2018
19:10:18
Так. А если в интерфейсе свойство ридонли, а в реализующем его классе — мутабельное, это нормально?

Andrey
02.09.2018
19:12:33
Интерфейс же показывает что можно делать, а не то, что нельзя.

Иначе реализация нескольких интерфейсов бы не работала.

Артур Евгеньевич
02.09.2018
19:17:48
Имхо это не нормально так как lsp нарушается в наглую. Какой то клиентский код может считать объект имутабельным, а тут херакс он сначала был 1 а через пару строк уже другой

Sergey
02.09.2018
19:18:07
в пыхе все плохо, в джаве тебе и возможность дефолтной реализации методов в интерфейсах, и final для полей...

Артур Евгеньевич
02.09.2018
19:18:42
Я просто абстрактно рассуждаю

Sergey
02.09.2018
19:19:00
ну вообще да - с точки зрения LSP protected филды это зашквар

Артур Евгеньевич
02.09.2018
19:19:19
Google
Sergey
02.09.2018
19:19:24
Если не надо модифицировать, то передавай интерфейс, проблема в чём?
"передавать интерфейс" нельзя - его можно только принимать

Andrey
02.09.2018
19:19:38
Спасибо за поправку.

Артур Евгеньевич
02.09.2018
19:19:56
Чтобы клиент не парился о реализации, вроде они для этого и нужны же

Sergey
02.09.2018
19:20:03
Да, принимай интерфейс.
принимающей стороне должно быть насрать интерфейс это или конкретная реализация - в этом суть

Sergey
02.09.2018
19:20:29
и еще раз - причем тут "надо модифицировать" - кому надо? что модифицировать?

Andrey
02.09.2018
19:20:31
принимающей стороне должно быть насрать интерфейс это или конкретная реализация - в этом суть
Да. Ты говоришь, что мне нужна вещь, у которой это поле можно читать. И пляши от этого.

Артур Евгеньевич
02.09.2018
19:20:47
Я бы сказал что если у нас есть интерфейс а мы принимаем реализацию то все пошло по пизде

Sergey
02.09.2018
19:20:58
если есть возможность рид онли штуки на уровне интерфейса описать - как например в c# то все ок: interface ISomething { string Test { get; } }

Артур Евгеньевич
02.09.2018
19:22:14
Да. Ты говоришь, что мне нужна вещь, у которой это поле можно читать. И пляши от этого.
Ну тут вопрос уже про, возможности языка конкретно системы типов. Если где-то можно в интерфейсе указать что поле имутабельно, то в наследниках тоже нельзя менять его

Sergey
02.09.2018
19:23:14
ладно не буду на php сегодня накидывать

Артур Евгеньевич
02.09.2018
19:24:08
Вопрос можно так поставить - входит ли иммутабельность в контракт интерфейса или нет

Артур Евгеньевич
02.09.2018
19:24:52
В пыхе нет средств для этого например, но я не знаю может где-то и есть

Если вводит, то это хреново, имхо.
А что плохого? Лишние опцилнальные ограничения никогда не лишние

Во например есть у нас interface Event который должен быть имутабельным, мы помечаем его так. Потом другой разраб начинает его реализовывать и если вдруг решит сделать метод какой то на изменения свойств то ниче не получится у него

Admin
ERROR: S client not available

Google
Andrey
02.09.2018
19:27:43
А что плохого? Лишние опцилнальные ограничения никогда не лишние
Кстати, readonly, что было вначале, и иммутабельность - немного разные вещи) Иммутабельность можно статически проверить?)

Артур Евгеньевич
02.09.2018
19:30:31
Хм точно, но там получается противоречие в вопросе

Если в языке есть специальный флаг указывающий что свойство нельзя менять то можно

Aleh
02.09.2018
19:33:54
ыы

Andrey
02.09.2018
19:59:16
Aleh
03.09.2018
07:30:35
Как?
Если ты можешь описать поле, которое не меняется(не меняется ссылка), то можешь так сделать рекурсивно по всему типу и получишь иммутабельность, не?

Aleh
03.09.2018
07:32:05
Да зачем в конструкторе

Можно ж просто иметь функцию, которая возвращает объект уже нужного типа

Т.е. не совсем конструктор

Aleh
03.09.2018
07:33:07
Конструктор исключительно пережиток классов

Andrey
03.09.2018
07:33:18
Aleh
03.09.2018
07:33:31
Фабрикой ее еще назови:/

illiatshurotshka❄️
03.09.2018
07:33:52
лол

Andrey
03.09.2018
07:33:58
Эм... Ты как объект создавать без функции, которую можно конструктором назвать, собираешься?

Aleh
03.09.2018
07:34:58
Функцией, которую я не буду называть конструктором

Шах и мат

Google
Andrey
03.09.2018
07:35:21
Mykola
03.09.2018
07:50:13
приветы

ооо, моя любимая тема

Артур Евгеньевич
03.09.2018
08:48:30
Что такое мутабельность? Первый раз такое слово слышу
Потенциальная возможность изменения чего либо

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