Ruslan
airbnb-config, например
Nikolay
А то как же.
Cenator 🐈
airbnb-config, например
atomix-base, atomix-react
Anonymous
автор книги пишет, что это functions-only approach
Ruslan
const - это best practices
Anonymous
подскажите - это процедурное или функциональное программирование?
Nikolay
Императивное.
Anonymous
благодарю )
Nikolay
Наличие функций смутило? :)
Ruslan
Вот пример функционального
Jąńek
https://medium.com/devschacht/ftuesday-introduction-c2ed010bb75d
Jąńek
там подробно рассказывают как это и что это и немного хвалят
Jąńek
а тут ругают https://hackernoon.com/functional-programming-in-javascript-is-an-antipattern-58526819f21e
Nikolay
Ну да, те, кто переходил с js на кложуру обратно возвращаться обычно не хотят :)
Alexander
у них там вообще сингулярность
Alexander
все либо хэш, либо функция
Alexander
а ключ хэша тоже функция
Jąńek
не, всё - данные
Jąńek
функция тоже данные
Anonymous
Ну да, те, кто переходил с js на кложуру обратно возвращаться обычно не хотят :)
Потому что задачи становятся дальше от реального мира.
Alexander
те же HealthSamurai далеко не туду-листы пишут
Nikolay
На кложуре нормальные коммерческие решения делают, насколько мне известно.
Alexander
а софт для медицины
Nikolay
Вот на хаскеле — не знаю.
Alexander
делают, просто их еще меньше
Anonymous
Вот пример функционального
да, посложенее моего примера будет
Nikolay
да, посложенее моего примера будет
Да там все проще некуда.
Nikolay
Функция, еще одна, их композиция, что может быть проще?
Anonymous
Да там все проще некуда.
одна функция принимает на вход другую - основной подход?
Anonymous
Все равно, даже если медицина, к примеру, является предметной областью, там область задач меньше. Как минимум за счет того, что программист уж точно не планирует софт такого рода, ведь он программист, а не ученый. Это как с авиацией и космической отраслью. Стандарты разработки кода там гораздо выше, но на выходе получается работа проще, чем делать сайт.
Nikolay
одна функция принимает на вход другую - основной подход?
Одно из необходимых условий функционального языка.
Anonymous
Вместо использования функциональных декларативных подходов, веб вообще ждет webassembly и запуск кода на байт-машине в браузере. Т.е. прикладнуха еще сильно ударит даже по ES, не говоря уже о популярности Closure или чего-то еще более экзотического.
Jąńek
компилировать просто в него будут
Jąńek
а про кложуре и прочей функциональщине
Jąńek
есть вот такая книга
Jąńek
https://www.antilibrari.es/wp-content/uploads/2016/08/033-structure-and-interpretation-of-computer-programs.jpg
Jąńek
она крутая в плане основ CS
Jąńek
ну и до кучи там показаны всякие крутости которые можно извлечь из функционального подхода
Jąńek
вебом он не ограничивается
Jąńek
про приложение функционального подхода - мало "лучших практик" использования этого всего, они обычно сосредоточены внутри отдельных команд бородатых мужчин и женщин которые пишут на кложуре фуллстек
Jąńek
порог вхождения опять-таки выше чем начать верстать и на jquery клепать лендосы
Anonymous
Я понимаю, вообще я достаточно хорошо знаю о функциональном программировании, по крайней мере в теории, даже интересовался глубоко один период. Но в реальной жизни и в своих и в чужих проектах я ни разу не сталкивался со случаем, когда было бы адекватно и по эффективности и по финансовым затратам использовать функциональные языки. Это для ниш, и в целом там ситуация вроде "ну мы делаем на функциональных языках, этим объясняется почему у нас не работает ...", только об этом я хотел сказать, в принципе. Выучил closure, словил высокую стоимость часа в какой-то фирме, и выполняешь треть/четверть работы оправдываясь тем, что "у нас же Closure".
Anonymous
Конечно не захочется возвращаться.
Nikolay
> "ну мы делаем на функциональных языках, этим объясняется почему у нас не работает ..." Примеры в студию.
Nikolay
Выглядит как бред, прости уж :)
Jąńek
Андрей можно также сказать про написание юнит тестов, разработку не ускоряют, а стоимость растёт
Anonymous
Я не знаю как привести в пример что-то конкретное. Как бы я сталкивался с таким в командах стартапов, когда искал работу. Когда язык использовался просто для того, чтобы накрутить "рейтинг" или "серьезность" проекта, показать инвестору красивую презентацию с модными в сфере словами. Но есть и обратные примеры, но только все они будут, скорее всего, крупными фирмами, где на самом деле функциональный подход используется исключительно для какой-то глубокой бизнес-логики, которая в массе является там 10% всей базы кода проекта и пишется на основе четких заданий (от математиков, например), а не разрабатывается программистами.
Anonymous
Андрей можно также сказать про написание юнит тестов, разработку не ускоряют, а стоимость растёт
Мне кажется это разные вещи. Код без автотестирования вообще не считается написанным, это только "предположение программиста" о том, что этот кусок что-то делает. Так что, я думаю, это не из одной категории пример.
Nikolay
> функциональный подход используется исключительно для какой-то глубокой бизнес-логики Хз, что ты подразумеваешь под "глубокой бизнес-логикой", фп вполне себе успешно применим для обработки данных, форматирования, нормализации, фильтрации и т.д.
Anonymous
Ну он гарантирует, что предположение хотя бы работает.
Alexander
что дальше-то
Anonymous
А в чем вопрос?
Alexander
Ну он гарантирует, что предположение хотя бы работает.
то, что код не падает с ошибкой в рантайме, тоже гарантирует, что он работает
Alexander
или что он компилится
Anonymous
Но другой вопрос в том, что если не используется иммутабельность в целом по программе, то чисто функциональная платформа вряд ли даст какое-то ощутимое преимущество. В таком случае достаточно, чтобы функциональный подход применялся в платформе обычных языков программирования, как синтаксический сахар или типа того. Т.е. подход, но не язык или среда.
Vlad
'ontouchstart' in document.documentElement window.TouchEvent и window.Touch (только для эпл-мобил)
Спасибо, так и сделал if('ontouchstart' in window) { document .addEventListener('ontouchstart', calback); } else { document .addEventListener('click', calback); }
Vlad
@chudesnov пытаюсь и не могу найти как реализована эмуляция onclick в reactjs or vuejs
Alexander
шо
Vlad
во вью нет синтетик ивентов вроде
как? ) во vue пишешь on-click и оно работает на всех девайсах.
Vlad
в каком смысле эмуляция?
имею в виду "синтетик ивентов"
Anonymous
Понятно, что пример субъективный очень. Но вот у меня был товарищ, который писал на Erlang. Причем выучил его за месяц, кстати, до уровня устройства на работу. Устроился, платили ему нормально, но когда он мне рассказывал о своих задачах — мне оставалось только чесать голову. За то, что они писали на erlang с смнительными бенефитами от использования этой платформы, мне бы заплатили за всю его 4х-месячную работу вдвое или втрое меньше его месячного оклада, если бы я это реализовал бы на ES, к примеру, на ноде. При этом их проект даже не использовал какую-то сложную микросервисную структуру на общем уровне, чтобы иметь хотя бы какой-то плюс в использовании erlang. Мне кажется, что таких примеров для функциональщины будет 99% и только 1% будет бизнесов, где использование их обосновано, есть профит и так далее. Потому что в конечном счете для бизнеса такие решения (типа использовать функциональные языки) принимают люди, которые не имеют достаточного опыта, или считают, что обычные программисты бездельники, а те, которые знают erlang/closure/haskell/lisp/... какая-то элита.
Alexander
@chudesnov пытаюсь и не могу найти как реализована эмуляция onclick в reactjs or vuejs
обычно для того, чтобы touch-события триггерили click, не нужна какая-то хитрая логика в JS, просто надо нормально размечать кликабельные области (хотя бы добавлять cursor: pointer)
Alexander
если надо, чтобы обрабатывался тап или клик _где угодно_ (что само по себе плохая идея, если вы не heat-map для метрики делаете), придется слушать и mouse*, и touch*
Nikita
Господа, подскажите, могу ли я как-то унаследовать и оверрайднуть поведение экспресс мидлвара?
Nikita
Есть мидлвар с нпм репы, и меня в нем устраивает абсолютно все, но нужно инжектнуть небольшой функционал