Лямбда исчисления это основа, на которой строятся функциональные языки.
Однако при работе с популярными библиотеками в JavaScript или, решая повседневные для этого языка задачи, как правило, мы не сталкиваемся с понятиям из теории λ-исчислений.
Откуда тогда берется ФП?
λ-исчисления основа для ФП.
Но это не значит, что без Лямбд ФП не бывает
Полная версия доклада:
Получается, что и в JavaScript можно использовать концепции из мира ФП, элементы ФП, как следствие писать в ФП-стиле, если конечно ЯП их поддерживает.
Концепций в мире ФП очень много, упомянутые вне треда map/reduce это лишь крупица всей этой ФП пирамиды
1/3 Помимо упомянутых элементов ФП в JS, в JS можно реализовать то, что называется иммутабельностью,
Это такое поведение, когда при попытке модифицировать объект или данные в какой-то структуре, вместо модификации объекта/структуры создается новый модифицированный
2/3 Как это сделать в JS?
Клонировать объект и модифицировать у него поле.
Для массивов существуют методы которые возвращают новый массив/значение (map, filter, reduce и тд) developer.mozilla.org/en-US/docs/Web…
За 30 лет с момента появления 1ого браузера многое изменилось. Браузеры сегодня это очень сложное прикладное ПО. Об этом можно даже судить в 1ом приближении по кол-ву строк кода
Ни для кого не станет открытием, если я напишу, что на текущий момент браузер Google Chrome, является самым популярным, более того, он занимает около 2/3 рынка.
Если предпосылки слабой типизации в JavaScript были туманны, то решение сделать JavaScript динамическим языком было изначально. Это решение вдохновлено Self, Scheme и испытало на себе влияние Java, C.
Тяжело дать однозначное трактование динамической типизации, но можно через сравнение со статической. Переменные связываются с типов в момент объявления переменной - статическая типизация, при присваивании значения - динамическая типизация.
Давайте попробуем старую практику как мир: лайк этому посту от вас, факт про эффектор, его историю и концепции от меня. Посмотрим насколько меня хватит!
Изначально effector был миддлварой для ридакса и разрабатывался для высоконагруженного клиента реалтайм чата, вроде Телеграм.
Пока флоу не умер, имелась его первоклассная поддержка. Сейчас типы затачиваются под TypeScript.
Каким боком @effectorjs помогает выстроить архитектуру приложений? Очень просто: он является языком описания бизнес-логики. А еще и помогает связать логику с представлением.
К чему мы привыкли? Встраиваем управление состоянием внутрь React. И после этого продолжаем называть REACT библиотекой, хотя он уже давно ФРЕЙМВОРК.
Мне не нравится такое положение. Из-за возраста React нам приходится очень долго ждать ConcurrentMode, терпеть издевательства StrictMode и наглости memo.
Давайте начнем с вопроса. Что такое архитектура фронтенда? Это как директории называются? Правила взаимного импорта? Какой стек используется?
Почему меня вообще беспокоит архитектура и структура проекта? Начну с того, что "хорошая" структура вносит ясность. Где искать конкретный код. Куда положить новый. Как писать код командой не внося изменения одновременно в один файл.
С архитектурой сложнее, ведь она про отношение сущностей вашего проекта. Как выстроить зависимости между сущностями и модулями так, чтобы добавление нового кода не требовало внесения изменений в существующий код.
Байка: когда-то я считал, что эти психологии - лишь выдумки соплежевателей, которые придумали себе что-то там. И проблемы бывают только объективные - ногу сломал, или отравился. Кстати, тогда я был бекендером, и считал фронтендеров соплежуями. Видимо это связано с типизацией 🤔
Это отлично укладывается в характеристику ригидной психики. Люди ригидного склада ума чётко знают, что и как происходит вокруг и с ними самими. Чаще всего это военные, немцы, бекендеры. И быть ригидным неплохо - меньше переживаешь, есть план и ты его придерживаешься
Но вот в случае непредвиденных обстоятельств, когда ваша картина мира рушится - трагедия, пандемия, или оказалось, что С++ не лучший в мире язык, а за JS платят больше - ригидным людям крайне тяжело подстроиться, они продолжают держаться за свои убеждения и планы. А мир в труху.