
First
13.10.2018
10:01:20
Так ты ж просто начал гадать о чем собеседник @fes0r говорил

Sergey
13.10.2018
10:02:01
я повторюсь - я хер знает как это у него работало...

Aleh
13.10.2018
10:02:04
я ж вообще с тобой говорил -_-
А почему не вернутся?

Google

Aleh
13.10.2018
10:02:04
а как?
Именно в выполнение без .catch?
да

First
13.10.2018
10:02:15
Ой все

Aleh
13.10.2018
10:02:24

First
13.10.2018
10:03:15
Возможно, он начудил с замыканием
Мне ваще сейчас не до вашего джса
Даже на дарте не пишу!
Меня на руби заставляют писать ?

Aleh
13.10.2018
10:27:34
Руби +- норм

First
13.10.2018
10:27:44
А рубокоп нет.

Aleh
13.10.2018
10:28:35
Чего?)
Не хватает типов?

First
13.10.2018
10:28:47

Google

First
13.10.2018
10:28:55
Чего?)
Потому что пиздит на все подряд, падла

Aleh
13.10.2018
10:30:25
Один раз попробуешь и потом сложно слезть

First
13.10.2018
10:30:36
Меня еще и на рельсах заставляют писать...

Aleh
13.10.2018
10:31:20
Это я про типы

First
13.10.2018
10:31:36
Тогда пиздежь
На джсе живу без flow и все равно больна

Aleh
13.10.2018
10:36:42
Але, я про то, что попробуешь типы в компайлтайме и все, обратной дороги нет
Отказаться от них нереально
Ну естественно если есть вывод типов

First
13.10.2018
10:41:41

Konstantin
13.10.2018
10:45:29


Артур Евгеньевич
13.10.2018
10:50:06
не, там в других областях тоже были проблемы вроде как

Konstantin
13.10.2018
10:50:09
Он же не расширять собирается

Артур Евгеньевич
13.10.2018
10:50:27
))

Konstantin
13.10.2018
10:50:43
Это же паха?

Артур Евгеньевич
13.10.2018
10:51:02
php

Google

Konstantin
13.10.2018
10:52:34
php
Ну да, т9. Если в других областях проблемы можно же направить по ходу работы
Никто не знает всё

First
13.10.2018
10:53:44
Челы хотят девопса + разраба баз данных, + еще некоторые фичи
И совсем чучуть пхп
Пхп мир не изменился

Konstantin
13.10.2018
10:55:52
Маленькая то есть

First
13.10.2018
10:56:21
Неа

Konstantin
13.10.2018
10:56:21
И жнец и кузнец

First
13.10.2018
10:56:57
А в добавок угадай че у них)

Konstantin
13.10.2018
10:57:35

Yury
13.10.2018
10:57:39
Как вы относитесь к г̶е̶я̶м̶ такой валидации в домене?
https://pastebin.com/sB09UAfE
Раньше я в таких случая исключения бросал, а сейчас нужно собрать все ошибки. Может быть вообще стоит тогда разделить валидацию и изменение в домене?

First
13.10.2018
10:57:39
Scrum :)

Konstantin
13.10.2018
10:58:51
))

Aleh
13.10.2018
10:59:31
А так получается почти нормальный Either
Только в success еще обычно можно какие-то данные добавить, но это по желанию)

Yury
13.10.2018
11:02:57

Google

knopkod4v
13.10.2018
11:03:35

Aleh
13.10.2018
11:04:51

Konstantin
13.10.2018
11:04:56

Aleh
13.10.2018
11:05:27
Но да

Yury
13.10.2018
11:06:19

Konstantin
13.10.2018
11:06:41
Я как то работал с программистом 1c, ну чел просто Рядом сидел и сайтики свои делал в свободное время. Все бы ничего, только вот название стилей в css у него были по русски типо «нижний_бардюр» и так далее. Все работало до момента пока он не поменял кодировку

Dmitriy
13.10.2018
11:23:10

Konstantin
13.10.2018
11:32:56
Баян

Павел
13.10.2018
13:00:34
Вот такая штука. Клиент делает запрос передавая пару значений. На стороне сервера по этим значениям находиться запись в бд. Теперь нужно из этой записи сформировать ответ. Но ответ составной. Есть общаяя шапка, и изменяющиееся тело. В зависимости от того какого типа строка была найдена в базе формируется разного вида кусок ответа. Потом добавляется в общуюю часть и отдается клиенту. Например выглядит так: на сервер приходит запрос id = 123 guid = 999. Сервер ищет в базе строку. Находит. Смотоит что у нее тип TYPE1. формирует общий ответ а потом по типу формирует конкретную часть ответа. Я заюзал паттерн стратегия. И назвал его билдер. Builder builder = builderContext.getBuilder(rowFormBd.getType);
Element internalRequest = builder.build(rowFormBd);
Смущают названия. И интересует может есть еще способы сделать такое красиво


Yury
14.10.2018
09:04:44
У меня по сути остался все тот же вопрос:
Как вы делаете валидацию в домене на инварианты, если нужно потом получить список ошибок, а не первую, например просто бросая эксепшн? Делите ли вы валидацию и изменение раздельными, с клиента например сначала вызывая isValidToPublishOrder(), а потом уже publishOrder().

Sergey
14.10.2018
10:38:50

Дмитрий
14.10.2018
10:38:50
Если надо только проверить валидность данных без выполнения доменной операции, то надо делать отдельный метод, возвращающий результат валидации, этот же метод будет использоваться и в publishOrder

Sergey
14.10.2018
10:39:48
но я бы хотел услышать юзкейс конкретный который хочет решить @user83595863018 . Ибо как по мне тут речь и смешении валидации данных и бизнес логики.

Дмитрий
14.10.2018
10:43:31
А если надо проверить валидацию доменного уровня, и если их несколько?

Sergey
14.10.2018
10:45:20

Дмитрий
14.10.2018
10:45:39

Google

Sergey
14.10.2018
10:45:47
по хорошему мы на уровне UI не должны позволять пользователю сделать что-то что нарушит инварианты. Ну а если так уж приключилось - он будет довольствоваться одной ошибкой
повторюсь - основной момент (который меня сильно смущает) - желание получить список ошибок.

Дмитрий
14.10.2018
10:47:06
Если интерфейс например устарел, пока юзер думал
И позволяет сделать запросы нарушающие бизнес логику

knopkod4v
14.10.2018
10:47:49

Дмитрий
14.10.2018
10:47:54
Не

Sergey
14.10.2018
10:47:57

Дмитрий
14.10.2018
10:48:17
Есть предметные области в которых вполне вероятно
Особенно в вебе

Sergey
14.10.2018
10:49:09
давай рассмотрим два варианта:
вероятность подобного высока - много людей одновременно работают над одними и теми же данными - в этой ситуации тебе надо больше внимания уделитть синхронизации стэйта что бы уменьшить вероятность подобного.
вероятность подобного низкая - очень редко разные люди трогают одни и те же данные - можно забить болт на подобные ситуации
все же есть разница когда ты блог пост редактируешь, или же когда у тебя какая-нибудь система для диспетчеров где много людей работают одновременно с одним пулом данных (сокеты и т.д. тут могут помочь, или какой eventual consistency). Или вообще гугл докс где совсем по другому будет происходить работа со стэйтом

Дмитрий
14.10.2018
10:53:54
Ок, а если нет возможности синхронизировать стейты, например если это браузер без js
Но ошибки хочется показать все

Sergey
14.10.2018
10:54:54
не могу себе придумать ситуации когда у меня будет браузер без js
если вдруг это будет более 0.1% пользователей (10%) и бизнесу эти безумцы будут важны - скорее всего я просто напишу нативную апу

Bohdan
14.10.2018
10:57:58
они ее юзать не будут, т.к. гугл/эппл - корпорация зла

Sergey
14.10.2018
10:58:28
другой пример
ты хочешь сделать "хорошо" тем немногим паранойикам которые выключают js в браузере - окей. То есть оптимизировать интерфейс для слабовидящих - это для тебя уже пройденный этап.
короч. Мое мнение такое - все это стоит денег (девелоперских часов). И тебе нужно хорошо понимать зачем ты это будешь делать и кому от этого будет хорошо.
Системы где конфликты по данным частое явление + выключен JS - для меня это очень маловероятный сценарий. Настолько маловероятный что делать "удобной" работу этих немногих мне не выгодно
потому давай перестанем обсуждать абстрактных коней и приведи мне реальный кейс из реального проекта где бизнес был бы озабочен подобным. МОжешь даже просто начать с того, что у тебя в рамках одного сценария могут быть нарушены несколько инвариантов и тебе надо вывести все нарушения списком...