
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 филды это зашквар

Andrey
02.09.2018
19:19:01

Артур Евгеньевич
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
Да, принимай интерфейс.
принимающей стороне должно быть насрать интерфейс это или конкретная реализация - в этом суть

Aleh
02.09.2018
19:20:25

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

Andrey
02.09.2018
19:20:31

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

Andrey
02.09.2018
19:20:56

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
Вопрос можно так поставить - входит ли иммутабельность в контракт интерфейса или нет

Andrey
02.09.2018
19:24:30

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

Admin
ERROR: S client not available

Google

Andrey
02.09.2018
19:27:43

Артур Евгеньевич
02.09.2018
19:30:31
Хм точно, но там получается противоречие в вопросе
Если в языке есть специальный флаг указывающий что свойство нельзя менять то можно

Дмитрий
02.09.2018
19:32:45

Aleh
02.09.2018
19:33:54
ыы

Котяй Негодяй
02.09.2018
19:59:02

Andrey
02.09.2018
19:59:16

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

Andrey
03.09.2018
07:31:44

Aleh
03.09.2018
07:32:05
Да зачем в конструкторе
Можно ж просто иметь функцию, которая возвращает объект уже нужного типа
Т.е. не совсем конструктор

Andrey
03.09.2018
07:32:52

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

illiatshurotshka❄️
03.09.2018
07:35:07

Andrey
03.09.2018
07:35:21

Mykola
03.09.2018
07:50:13
приветы
ооо, моя любимая тема

Konstantin
03.09.2018
08:45:23

Артур Евгеньевич
03.09.2018
08:48:30