
Юра
10.10.2017
00:51:39

Дмитрий
10.10.2017
00:54:31
Нормализованные данные
const main: Map<ID, Something> — основной массив key value
И производные от него
const names: Map<string, ID>
const friends: Map<ID, string[]>

Юра
10.10.2017
00:56:01
Точнее, там не Map, а Set был. Т.е. коллекция.

Google

Дмитрий
10.10.2017
00:56:41
Не, в этом цимес
То что у тебя при каждом get нужна проверка на undefined

Юра
10.10.2017
00:57:33

Дмитрий
10.10.2017
00:57:38
А потом сделаем какие-нибудь операции между ними всеми, тоже неоднозначные, чтобы веселее было

Юра
10.10.2017
00:58:02

Дмитрий
10.10.2017
00:58:36
Все реквесты по фильтру?))
У тебя уже оверхед ппц выходит
И вот у тебя уже весь код в одних проверках на undefined (и застарелых костылях от случаев которые естественно не поймали)

Юра
10.10.2017
01:00:12
undefined — это тоже значение.

Дмитрий
10.10.2017
01:00:21
Болтология
Тебе данные нужны, а не их отсутствие

Юра
10.10.2017
01:00:39
Ну, если так уж вышло, что где-то появился undefined, его можно сохранить и получить по нему доступ.

Google

Котяй Негодяй
10.10.2017
01:00:57
о.0
ОЧЕНЬ надёжно.

Юра
10.10.2017
01:01:29
Ну, не очень красиво, конечно -)

Дмитрий
10.10.2017
01:02:00
У меня щас Undefined behavior случился от попытки представить себе это +_-

Юра
10.10.2017
01:02:01
Но, с другой стороны, лучше уж получить undefined, чем вообще свалить обработчик.

Котяй Негодяй
10.10.2017
01:02:21
Ну, вопрос красоты в таком случае вообще в последнюю очередь рассматривать стоит, ибо это ваще фейл.

Юра
10.10.2017
01:02:30
В ноде, например, с этим вообще все печально было — один отваленный коллбэк валит всю цепочку коллбэков.

Дмитрий
10.10.2017
01:02:36

Юра
10.10.2017
01:02:53

Дмитрий
10.10.2017
01:03:03
Болтология
undefined — следующий шаг валит программу потому что на входе ожидаются данные

Юра
10.10.2017
01:04:01
Ну, типа, да.

Дмитрий
10.10.2017
01:04:20
Я уж не говорю про то, что даже банальный maybe уже позволяет логические выражения составлять

Юра
10.10.2017
01:05:23
Была такая идея уже, но не с Maybe, а с observable-ами в knockout-е.
Т.е. везде у нас вместо значений будут observable-ы.

Даниил
10.10.2017
01:06:26
а, понял о чём ты, но при чём тут "first-class citizen" не понял
да не надо этого

Google

Юра
10.10.2017
01:07:18
Проблема вышла откуда не ждали — другие библиотеки об observeable-ах ничего не знают и их приходится долго и упорно дружить друг с другом, продалбывая сроки сдачи проекта.

Даниил
10.10.2017
01:07:19
всё это через системы типов нормальных языков прекрасно выражается

Юра
10.10.2017
01:08:13
Такая же история и с Maybe.

Дмитрий
10.10.2017
01:08:14

Юра
10.10.2017
01:08:58
А вот этот table1 — это что такое, что за библиотека?

Дмитрий
10.10.2017
01:09:07
Условный Map, возвращающий Maybe<T>
Пример с knockout нерелевантен, потому что тут объектам вообще по барабану, с чем их используют

Юра
10.10.2017
01:11:39
symbol observable — это вот это? https://tc39.github.io/proposal-observable/

Дмитрий
10.10.2017
01:12:04
Это вот это https://www.npmjs.com/package/symbol-observable

Юра
10.10.2017
01:12:16

Дмитрий
10.10.2017
01:12:19
Используется всеми вплоть до redux

Дмитрий
10.10.2017
01:12:27
Пиздец, сворачиваемся
Я не в состоянии отвечать на настолько мощные предъявы

Юра
10.10.2017
01:13:51
И ЧТО
И ВСЕ. Ну, я ХЗ, как с тобой спорить, если у тебя аргумент — что полторы модных библиотеки умеют друг с другом дружить.

Дмитрий
10.10.2017
01:14:06
ТЫ не знаешь не только как спорить, но и о чём
Потому что Maybe — вещь простая блин как мычание
Ты сейчас настойчиво изобретаешь причины почему тебе не нужна вещь, которая пишется в 15 строк
[0, 1,null ,null, 4].map(fromNullable)

Google

Юра
10.10.2017
01:16:22
ТЫ не знаешь не только как спорить, но и о чём
Я вообще спорить не собирался, просто пытаюсь донести одну простую мысль, что такие вещи, как Maybe или Observable-ы на реальных задачах скорее ведут к запутонному и сложно поддерживаемому коду.

Дмитрий
10.10.2017
01:17:19
Ты про Maybe сейчас из разговора узнаёшь, ничего?)
И при этом рассказываешь про какие-то абстрактные реальные задачи
Между прочим, заметь, от меня были примеры, от тебя из контрпримеров — только слова

Юра
10.10.2017
01:17:51

Даниил
10.10.2017
01:18:02
> даже

Юра
10.10.2017
01:18:39

Дмитрий
10.10.2017
01:19:10
Что за оправдания? Мой код выше
Твой код — вышел

Даниил
10.10.2017
01:20:41
> даже
data Maybe a = Just a | Nothing
instance Functor Maybe where
map f (Just x) = Just (f x)
map Nothing = Nothing
instance Monad Maybe where
of = Just
chain f (Just x) = f x
chain f Nothing = Nothing
аж целая реализация

Admin
ERROR: S client not available

Юра
10.10.2017
01:21:17
В общем, не в ту степь разговор куда-то ушел. Я спать.

Дмитрий
10.10.2017
01:22:12
Ясно

Котяй Негодяй
10.10.2017
01:23:44
У дотнетчиков, возможно. =)

Юра
10.10.2017
01:25:42
Ребят, вы вообще, какбы, кем работаете?

Котяй Негодяй
10.10.2017
01:26:09
Обсервейблы везде ведут к запутанному коду, если пихать их куда нужно и куда не очень.

Юра
10.10.2017
01:26:10
Ну, я хз почему у меня с вами так сильно опыт отличается.

Котяй Негодяй
10.10.2017
01:26:41

Google

Юра
10.10.2017
01:26:47

Котяй Негодяй
10.10.2017
01:26:56

Юра
10.10.2017
01:27:22
Почему?
Ну, может быть, я в какой-то параллельной вселенной живу, и мне надо перебраться в вашу вселенную.
У вас там прикольно, мне нравится.

Дмитрий
10.10.2017
01:27:36

Котяй Негодяй
10.10.2017
01:28:39

Юра
10.10.2017
01:29:15

Котяй Негодяй
10.10.2017
01:29:18
В смысле, я не писал на дотнете. Взаимодействовал.
Ну и то же самое можно сказкть про 1С.
Плотно кушают. Норм.

Юра
10.10.2017
01:31:31
Ну да. 1С лидер на российском рынке. У них тоже очень большие зарплаты, и в отличии от фронтендеров, хороший 1с-ник может поднять целую небольшую систему на предприятии.
Фронтендер за это время разве что вебпак настроит. И с новой либой для стилизации компонентов разберется.

Дмитрий
10.10.2017
01:31:31

Котяй Негодяй
10.10.2017
01:32:08

Дмитрий
10.10.2017
01:32:10

Котяй Негодяй
10.10.2017
01:32:18
Это вброс, конечно.
1С — это вообще трэш.

Юра
10.10.2017
01:32:44

Котяй Негодяй
10.10.2017
01:33:08
0 развития. Удивлённые глаза в ответ на мысль об обязательности svc.
Неверсионируемое апи.

Юра
10.10.2017
01:34:02
Это вброс, конечно.
Нет, вполне серьезно. Ну, многие люди, какбэ, идут в программирование только потому, что там зарплаты хорошие. И они выбирают 1С, потому что его все используют.

Котяй Негодяй
10.10.2017
01:34:09
Базы данных, которые работают через пизду и тормозят с коэффициентом 10-100.

Юра
10.10.2017
01:34:32