Nikolay
Кошмар. Два — уже много. но один, лесенкой — идеально
Угу, я тоже так делал, но только с R.ifElse :)
Dmitry
@nickchursin чего завидовать то? чаты соу-соу помогают. А вот интернеты..
Vlad
@jdc внезапно
теперь это @Jsr2416
Дима
Угу, я тоже так делал, но только с R.ifElse :)
Я с R как то потерял контроль и начал целые эскалаторы возводить 😄 Теперь этим кодом детей пугаю 😂
Nikolay
@nickchursin чего завидовать то? чаты соу-соу помогают. А вот интернеты..
Да щас без проблем любую инфу найти. Надо только научиться правильно гуглить.
Dmitry
@nickchursin к тому же в любой непонятной ситауации есть git
Nikolay
Я с R как то потерял контроль и начал целые эскалаторы возводить 😄 Теперь этим кодом детей пугаю 😂
Ахах, я когда собеседовался, прикреплял ссылку на это: https://github.com/potrata/ptz-drivers-beward75/blob/master/src/create-auth-data.js
Nikolay
А потом вместе с интервьюирущим сидели и разбирали этот ад :))
Nikolay
Вот это вообще моя гордость: 'changePositionZoomed': R.pipe( R.converge( R.merge, [ R.pipe(joinXY, R.objOf('center'), R.merge(R.__, { 'imagewidth': '720', 'imageheight': '576', 'stream': 'h264', })), R.pipe(R.prop('z'), R.objOf('rzoom')), ] ),
Дима
const splitsPipe = [ R.of, R.ap(opersFuncs), R.concat(R.__,constFuncs), P, splitCond, R.map, unnester, log('splitPipe')] 😊 Не очень понимаю, как это в принципе работает, помню что тут на лету составляются pipe, которые собирают другие pipe 😄
Nikolay
https://github.com/zerobias/speak-r/blob/develop/app/core/splitter.js
Не, ну у тя по отступам видно, что вменяемо еще :)
Дима
Это после рефакторинга вроде
Nikolay
Я когда начал изучать функциональщину, у меня была идея-фикс все вокруг делать point-free :D
Nikolay
Сейчас уже стараюсь сохранять баланс, чтоб у коллег глаза не вытекали.
Дима
Ну да))
Anton
Anton
я один вижу бонг?
Дима
Так это он и есть
Anton
самое интересное то, что у меня точно такой есть
Anton
я думал меня или мой телеграмм глючит
Дима
Ноорм 😄
Дима
Вообще я думаю это хороший показатель, если старый код кажется плохим))
Nikolay
Hell yeah!
Nikolay
Вообще, если ты открываешь свой код спустя поглгода после написания, и он тебе кажется ниче так, — у тебя проблемы :)
Дима
Отнюдь
Дима
ramda оптимизирована норм
Nikolay
Плюс все функции создаются до выполнения.
Дима
Более того, в некоторых определенных режимах она может оказаться быстрее типичного plain кода для той же задачи
Vladimir
Это маловероятно
Nikolay
я и сам пугаюсь от старого кода https://twitter.com/iamstarkov/status/659699066171994112
Кстати, а почему import {...} from 'ramda', а не import R from 'ramda'?
Дима
Надо в перф тесты смотреть, я не готов так рассуждать абстрактно)
Дима
Кстати, а почему import {...} from 'ramda', а не import R from 'ramda'?
А смотри как потом функции используются, короче запись
Nikolay
А смотри как потом функции используются, короче запись
Ну, с одной стороны да. Сам в свое время думал, как лучше.
Дима
Надо время программиста считать
Дима
Ну, с одной стороны да. Сам в свое время думал, как лучше.
Но меня напрягает километровый импорт, поэтому я только рамду импортирую в единый объект
Nikolay
А с другой, этот жирнющий импорт сверху как-то ломает всю красоту :)
Vladimir
Ну код абсолютно нечитабелен
Дима
Началоось
Vladimir
Можно постараться, если хочется
Vladimir
Но тут этого нет
Nikolay
Не знаю, мне нравится :) В принципе можно разобраться, вполне выразительно.
Дима
Странно, да?))
Vladimir
Да можно в любом говне разобраться, при желании
Vladimir
Просто чтобы читать спокойно такой код, нужно знать всю рамду наизусть
Дима
Логично
Sergey
lisp)))
Дима
Просто чтобы читать спокойно код на %tech name%, нужно знать %tech name% наизусть
Дима
breaking news
Vladimir
Все тоже самое можно было бы написать на голом js
Sergey
😅👍👍👍
Vladimir
Оно было бы не менне читабельно, но не нужно было бы знать какую то стремную либу наизусть
Дима
Все тоже самое можно было бы написать на голом асм
Дима
Оно было бы не менне читабельно, но не нужно было бы знать какой то стремный js наизусть
Nikolay
Оно было бы не менне читабельно, но не нужно было бы знать какую то стремную либу наизусть
Так ну рамда использует вполне известные концепции, ничего нового.
Vladimir
Одно дело концепции, другое дело - конретные апи
Vladimir
От либы должен быть профит
Дима
От либы должен быть профит
Шурщащий купюрами
Дима
Блин
Nikolay
От либы должен быть профит
Профит есть: либа позволяет элегантно выражать свои намерения в коде.
Дима
Why ramda на главной странице
Vlad
ramda оптимизирована норм
недостаточно, но я начал работу над этим
Дима
Никто не будет её пересказывать
Vladimir
Хм, может и позволяет, но тогда это плохой пример
Nikolay
Остальное на совести разработчика, само собой. Так что либа норм.
Vladimir
Другой вопрос - элегантность вообще нужна?
Дима
Хм, может и позволяет, но тогда это плохой пример
наверное поэтому он был в диалоге о плохих примерах?) Ну в контекст то надо уметь
Nikolay
Другой вопрос - элегантность вообще нужна?
Нужна. Но только при условии, что все в команде понимают фп.
Nikolay
А так, соглашения превыше всего.
Vladimir
Здесь проблема не в ФП, а в огромном количестве мелких функций, которые нужно просто знать
Дима
недостаточно, но я начал работу над этим
А в чём? У меня просто ещё идея есть по радикальному облегчению api, но там нужна оптимизация некоторых частей рамды
Дима
Печальна участь js-разработчика)
Vladimir
Ну условно, приходишь проект - там рамда с такими порятнками
Дима
Вообще странный диалог конечно