Size: a a a

JavaScript — русскоговорящее сообщество

2020 March 30

ДБ

Дмитрий Беляев in JavaScript — русскоговорящее сообщество
developer experience
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Дмитрий Беляев
developer experience
можно подробнее об этом чуть?
источник

DP

Dmitry Petrik in JavaScript — русскоговорящее сообщество
Дмитрий Беляев
лодаш просто клонирует объектное дерево, с джсоном же происходит сериализация (а для этого так же как и с просто клонированием нужно обойти дерево целиком), а потом десериализация (разбираем строку, чекаем, что нет ошибки ну и т.д.)
Ну тогда я джунил жестко, для меня это было не очевидно
источник

ДБ

Дмитрий Беляев in JavaScript — русскоговорящее сообщество
Chadwick ☭
можно подробнее об этом чуть?
ну смотри, есть просто лодаш изначальный, ок, когда его писали, о дизайне интерфейсов особо не задумывались, притом делали "более быстрый" конкурент underscore  с таким же интерфейсом
потом выяснилось что он не очень то тришейкается... сначала повыносили функции в отдельные модули, потом еще и lodash-es сделали...
потом поняли, что вот мы себя как набор чистых функций представляем, а с композицией нас использовать не очень то удобно... появился lodash-fp, который абстракция над обычным, опять же не тришейкается... ну и поезд ушел, ramda умеет все то же самое, ничуть не хуже, да еще и дизайн продумали сразу для композиции, да и полезные фишки у хаскеля подглядели, которых у лодаша нет
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Дмитрий Беляев
ну смотри, есть просто лодаш изначальный, ок, когда его писали, о дизайне интерфейсов особо не задумывались, притом делали "более быстрый" конкурент underscore  с таким же интерфейсом
потом выяснилось что он не очень то тришейкается... сначала повыносили функции в отдельные модули, потом еще и lodash-es сделали...
потом поняли, что вот мы себя как набор чистых функций представляем, а с композицией нас использовать не очень то удобно... появился lodash-fp, который абстракция над обычным, опять же не тришейкается... ну и поезд ушел, ramda умеет все то же самое, ничуть не хуже, да еще и дизайн продумали сразу для композиции, да и полезные фишки у хаскеля подглядели, которых у лодаша нет
да... было такое дело... о рамде не слышал... надо глянуть
источник

ДБ

Дмитрий Беляев in JavaScript — русскоговорящее сообщество
Chadwick ☭
да... было такое дело... о рамде не слышал... надо глянуть
она больше на ФП стиль ориентирована, а чтоб понять ФП нужно меняет мышление... тут две крайности как правило, или для тебя непонятно, как функции можно вычислять а не писать, а от слова монады у тебя непонимание, нафига оно надо; ну или ты не понимаешь, как код можно по другому писать, ведь это дольше и менее надежно
источник

ДБ

Дмитрий Беляев in JavaScript — русскоговорящее сообщество
Chadwick ☭
да... было такое дело... о рамде не слышал... надо глянуть
вот в этой книжке ramda очень хорошо расписана, хотя и lodash хватает
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Дмитрий Беляев
она больше на ФП стиль ориентирована, а чтоб понять ФП нужно меняет мышление... тут две крайности как правило, или для тебя непонятно, как функции можно вычислять а не писать, а от слова монады у тебя непонимание, нафига оно надо; ну или ты не понимаешь, как код можно по другому писать, ведь это дольше и менее надежно
функционал внушает,,, но смушает обилие кода который надо писать по сравнению с ло'шэд'кой
источник

ДБ

Дмитрий Беляев in JavaScript — русскоговорящее сообщество
Chadwick ☭
функционал внушает,,, но смушает обилие кода который надо писать по сравнению с ло'шэд'кой
ну это по началу так кажется
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Дмитрий Беляев
вот в этой книжке ramda очень хорошо расписана, хотя и lodash хватает
это изза всыпши такой цвет?
источник

ДБ

Дмитрий Беляев in JavaScript — русскоговорящее сообщество
Chadwick ☭
это изза всыпши такой цвет?
думаю да, телефоном фоткал прямо с телеги
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
> Прочитав эту книгу, читатель научится осмысливать свои проекты функционально, а возможно, дорастет и до понимания монад!
Книга адресована разработчикам, твердо усвоившим основы программирования на JavaScript и обладающим достаточным опытом проектирования веб-приложений.

😂
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
поставил на скачку.. почитаю на карантине ___)))
источник

DP

Dmitry Petrik in JavaScript — русскоговорящее сообщество
Chadwick ☭
> Прочитав эту книгу, читатель научится осмысливать свои проекты функционально, а возможно, дорастет и до понимания монад!
Книга адресована разработчикам, твердо усвоившим основы программирования на JavaScript и обладающим достаточным опытом проектирования веб-приложений.

😂
А потом тебя проклянут все кто будут поддерживать твой код после тебя)
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
да ладно.. у меня уже готовятся копья к войне на работе
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
кое кто решил взбунтоваться )
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Дмитрий Беляев
думаю да, телефоном фоткал прямо с телеги
хотя она 2018... за два года много чего сменилось...
источник

DP

Dmitry Petrik in JavaScript — русскоговорящее сообщество
Chadwick ☭
кое кто решил взбунтоваться )
Самое время для бунтов)
источник

ДБ

Дмитрий Беляев in JavaScript — русскоговорящее сообщество
Chadwick ☭
функционал внушает,,, но смушает обилие кода который надо писать по сравнению с ло'шэд'кой
смотри, банальный пример покажу из своего реального кода
вот вроде бы тривиальная задача: выполнять некий код строго после DOMContentLoaded
но ведь если оно уже было, то подписываться на него бесполезно
императивно был бы мрак из if

сори за ts - но вот мой обычный снипет:
import {curry, pipe, propOr, either, identical} from 'ramda';
import {selfCall} from '@/lib/functions';
export const subscribe = curry((target: EventTarget, eventName: string, handler: EventListenerOrEventListenerObject) => {
   target.addEventListener(eventName, handler);
   return () => target.removeEventListener(eventName, handler);
});

const isDocumentReady = pipe(
   propOr<string>('', 'readyState'),
   either(
       identical('complete'),
       identical('interactive')
   )
);
export function domReady(doc: Document = document): Promise<void> {
   return (isDocumentReady(doc)
       ? Promise.resolve()
       : new Promise((resolve): void => selfCall(solve => [
           subscribe(doc, 'DOMContentLoaded', solve),
           subscribe(doc.defaultView!, 'load', solve),
           resolve
       ]))
   );
}

вставил, и теперь просто пишу
domReady().then(() => ...
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
не понравился прямой пуш в дев ветку в гите ))
источник