
Adel
21.06.2018
13:45:22
почему?
ну если создадут ИП с 12 цифрами, а потом поменяют на 10цифровое ИНН, то чтото будет не так, верно?

Sergey
21.06.2018
13:46:17

Dmitriy
21.06.2018
13:46:21

Sergey
21.06.2018
13:46:58

Google

Sergey
21.06.2018
13:47:27
суть VO в том что оно имутабельное, хочешь новое значение - сделай новое VO

Dmitriy
21.06.2018
13:48:35
В целом чем меньше у тебя мутабельных сущностей - тем бОльшая предсказуемость кода

Denis
21.06.2018
13:48:39

Sergey
21.06.2018
13:48:40
и два VO равны только если стэйт этих VO одинаковый

Dmitriy
21.06.2018
13:49:12
Т.е для VO надо писать свой VO::equals(VO $another): bool

Sergey
21.06.2018
13:50:57
да
тип того
или у тебя язык умеет сравнение по значению)
но лучше конечно методом

Adel
21.06.2018
13:51:06
многого хочу от VO... я ж хотел простую валидацию. VO - Age например наверняка провалидирует цифровое значение возраста. чтобы сильно отрицательным не былг например

Bohdan
21.06.2018
13:51:40
а слегка отрицательным быть может?)

Adel
21.06.2018
13:51:51
ну эт от домена зависит :)

Dmitriy
21.06.2018
13:53:59
может рассматривается время до наступившего события, тогда у события может быть отрицательный возраст

Google

Adel
21.06.2018
13:54:36
в некоторых доменах возраст может считать отрицательным. до рождения плод вполне себе живой
но это мы отвлеклись. ладно

Alexey
21.06.2018
14:03:34
Парни, помогите по полкам разложить:
Есть сущность, хранящаяся не нескольких системах
Есть модель в коде, описывающая эту сущность и несколько сервисов, загружающие сущность из систем.
Далее задача: загрузить одну и ту же сущность из разных систем и "смержить" различающиеся поля по определенной логике.
И тут возникает вопрос: где должна быть логика этого мержа?

Sergey
21.06.2018
14:08:49

F01134H
21.06.2018
14:09:45
сущность в виде гномика, судя по всему

Bohdan
21.06.2018
14:13:21
семь параллельных красных линий...

Alexey
21.06.2018
14:15:26
это юзер
имеет место быть рассинхронизация данных между системами, поэтому именно такая постановка

Sergey
21.06.2018
14:16:07
всеравно непонятно

Bohdan
21.06.2018
14:16:09
отдельный сервис, который будет заниматься стягиванием и мерджем

Sergey
21.06.2018
14:16:21
в отдельный сервис базы данных

Alexey
21.06.2018
14:16:42
ну фактически да. Но на уровне кода это одна модель (DO)
этот слой, если я правильно понял, адаптеры к внешним системам и репозиторий, возвращающий модель.
сейчас так и есть - отдельный сервис, запрашивающий внешние системы и получающий из трёх объектов User четвертый такой же с "корректными" полями. Но что-то мне не нравится.
А смущает меня наверное то, что в сущности помимо сквозного id есть еще system1Id, system2Id, system3Id. Не нужно ли сделать отдельные модели и развести их наследованием?

Bohdan
21.06.2018
14:27:53
и иметь общий стейт в родителе?
зачем наследование, если можно компоновать? более того, при большом желании можешь вообще иметь сущность-агрегат с геттерами, в которых будет инкапсулирована логика мерджа сущностей
но я пока не знаю, хорошо это или нет

Yury
21.06.2018
14:32:07
А вообще KISS

Alexey
21.06.2018
14:33:31
KISS - факт :)

Google

Sergey
21.06.2018
14:33:38
ну то есть бли, что ты хочешь? понять и простить? Сказать тебе что у тебя модель в коде разбита хреново?
шарить данные между подсистемами так себе идея

Alexey
21.06.2018
14:35:25
я пока не понял, что у меня плохо модель разбита. А вот размазанные данные, увы, на текущий момент данность.

Sergey
21.06.2018
14:36:07
и ты связи не видишь?

Admin
ERROR: S client not available

Sergey
21.06.2018
14:36:16
как ты думаешь почему у тебя данные размазаны оказались?
и что можно было бы подругому сделать что бы не пришлось вообще шарить данные и потом их мерджить

Alexey
21.06.2018
14:41:42
данные размазаны оказались не у меня, а у трёх других подразделений (команд), который независимо друг от друга реализовали один и тот же функционал. А я теперь делаю совместимую мастер-систему. Немного в обратную сторону у меня причинно-следственная связь

Евгений
21.06.2018
15:42:54

Aleh
21.06.2018
15:45:38
Если вам надо переносить дублирующиеся данные в одну систему, то переносите, а не дублируйте их в новую систему:)

Alexey
21.06.2018
16:19:58
да я уже понял, что по существу вопроса я получу ответ только когда его сформулирую нормально

Дмитрий
21.06.2018
17:39:34

Sergey
23.06.2018
16:58:27
https://www.youtube.com/watch?v=2iYdKQXGY2E

Bohdan
23.06.2018
18:33:26


Sergey
23.06.2018
20:29:12
tldr есть? насколько понял - чисто на послушать и подумать о высоком
вот же ленивые... это ж Уди.
- размышления на тему того, как софт меняет бизнес
- советы о том, как объяснить бизнесу что софт который вы пишите для них это не проект а продукт (про различия так же)
- мысль о том что переписать проект никогда не проще/дешевле чем отрефакторить существующий. И что "тут проще переписать" никогда не мотивируется здравым смыслом а скорее от безысходности.
- интересная мысль что на поддержку любят садить джунов, хотя все понимают что баги фиксить и фичи пилить проще когда проект разрабатывается. То есть типа почему-то логично на более сложный вариант посадить джуна, который сделает все хуже, а на более простой посадить синьера.
- О том как строить переговоры с бизнесом, типичные проблемы с ролями (например то что аналитик есть но у него нет обычно такого влияния что бы спорить с бизнесом, который на самом деле не требования нам приходит, а воркараунды к своим проблема, не самые эффективные часто), и о том как это все сосуществует с agile/lean/итеративными моделями
- Опять о том что decoupling при помощи слоев это слишком наивная идея, и что резать приложение надо не только по горизонтали но и по вертикали, позволяя выстраивать каждую "вертикаль" функционала хоть со своей архитектурой. Если смотрел microservices, rules engine то там про то же


Дмитрий
23.06.2018
20:29:59
Начиная с "проще переписать" резко не согласен

Bohdan
23.06.2018
20:30:01
уфф, спасибо, я ожидал буквально одно предложение :)

Sergey
23.06.2018
20:30:30

Google

Дмитрий
23.06.2018
20:30:43
А я в корне не согласен
Не в деталях

Bohdan
23.06.2018
20:31:08
аргументируй

Sergey
23.06.2018
20:31:16
А я в корне не согласен
1. у тебя есть опыт работы с приложением которому лет 5?
2. у тебя есть опыт "переписать с нуля" приложение которому лет 5 и которым пользуются, на которое завязан бизнес?
3. объем приложения и степень важности оного. Сроки.

Дмитрий
23.06.2018
20:31:29
Естественно переписать с нуля проще практически всегда, потому что ты учитываешь предыдущие ошибки и в целом опыт первой имплементации и не сдерживаешься лавиной застоявшихся проблем