@react_js

Страница 2276 из 5115
Дмитрий
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
Нормализованные данные const main: Map<ID, Something> — основной массив key value И производные от него const names: Map<string, ID> const friends: Map<ID, string[]>
Да. Писал свою обертку, реализующую Map-интерфейс и инкапсулирующую всю эту логику.

Точнее, там не Map, а Set был. Т.е. коллекция.

Google
Дмитрий
10.10.2017
00:56:41
Не, в этом цимес

То что у тебя при каждом get нужна проверка на undefined

Да. Писал свою обертку, реализующую Map-интерфейс и инкапсулирующую всю эту логику.
Хорошо, теперь: у тебя таких таблиц естественно не одна, а штук пять (а лучше десять)

Юра
10.10.2017
00:57:33
Хорошо, теперь: у тебя таких таблиц естественно не одна, а штук пять (а лучше десять)
Ну, подумаю, как можно абстрагироваться от количества таблиц -)

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

Юра
10.10.2017
00:58:02
А потом сделаем какие-нибудь операции между ними всеми, тоже неоднозначные, чтобы веселее было
Делал проекцию одной коллекции на другую по filter-у. Т.е. другая коллекция — это операция filter над первой, причем, связывание динамическое.

Дмитрий
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
Но, с другой стороны, лучше уж получить undefined, чем вообще свалить обработчик.
Ну вот представь себе, что этих проблем вообще может не существовать, как класса

Юра
10.10.2017
01:02:53
Дмитрий
10.10.2017
01:03:03
Болтология

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

Дмитрий
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
Для этого Maybe должен быть т.н. first-class-citizen.
const canUse = table1.get(id) const canUseToo = table2.get(id) const thatsRequired = importantTable.get(id) return thatsRequired .and( canUse.or( canUseToo ) )

Юра
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
В 2017 все стрим-библиотеки давно работают друг с другом через symbol observable
Кроме стрим-библиотек есть еще довольно много всяких библиотек.

Дмитрий
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
Ты про Maybe сейчас из разговора узнаёшь, ничего?)
Ну, я про Maybe давно знал. Даже писал свою реализацию.

Даниил
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
Ты сейчас настойчиво изобретаешь причины почему тебе не нужна вещь, которая пишется в 15 строк
Ну, смотри. Я раньше был вообще в восторге от Maybe. Мне казалось, что это одна из самых волшебных вещей, я даже сделал собственную реализацию ее. Потом немого пописал, поприкидывал как с этим работать будет и отказался. Потому что здоровье важнее. Ну, хз. Тут, наверное, действительно сложно какой-то пример придумать, просто личный опыт.

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

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

Юра
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:18
В смысле, я не писал на дотнете. Взаимодействовал.

Ну и то же самое можно сказкть про 1С.

Плотно кушают. Норм.

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

Дмитрий
10.10.2017
01:31:31
Ну, я хз почему у меня с вами так сильно опыт отличается.
Разный опыт это вообще блин залог нормального развития) Я бы например был бы рад услышать от тебя клёвый контрпример к моим словам, тем самым вынеся для себя из диалога что-то новое, но увы

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

1С — это вообще трэш.

Котяй Негодяй
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
Базы данных, которые работают через пизду и тормозят с коэффициентом 10-100.
Ну а это не то, чтобы кого-то сильно сейчас интересует.

Страница 2276 из 5115