Давайте разберём и эту тему. А то многие молятся на ФП, совершенно не понимая что это. Основные свойства чистых функций: изоляция и идемпотентность. Первое позволяет переиспользовать код, а второе - делает его поведение предсказуемым. Возможно ли это без чистых функций? Ещё как!
Изоляция элементарно реализуется на уровне контекста исполнения. Это и Ambient Context, и IoC-Container, и даже, прости господи, Dependency Injection.
Идемпотентность в мутабельной среде реализуется через реактивность. Тут вы декларируете инварианты (как производные состояния зависят от исходных), и реактивная среда гарантирует вам, неизменность этих инвариантов, как бы вы ни меняли источники истины.
То есть мы легко можем получить все преимущества чистых функций без их (довольно жёстких) ограничений. ФП - это только PUSH-семантика. Сначала надо решить что нужно функции и как-то это получить, потом ей это передать, и только тогда вызвать её, чтобы она этим воспользовалась.
Реактивное программирование же позволяет делать ленивую (PULL) семантику, где сначала появляется потребность, потом вызывается функция, которая уже запрашивает то, что ей нужно в конкретно этот раз. Это даёт более простой код и минимальное потребление ресурсов.
https://twitter.com/_jin_nin_/status/1356967512462753793
Изоляция элементарно реализуется на уровне контекста исполнения. Это и Ambient Context, и IoC-Container, и даже, прости господи, Dependency Injection.
Идемпотентность в мутабельной среде реализуется через реактивность. Тут вы декларируете инварианты (как производные состояния зависят от исходных), и реактивная среда гарантирует вам, неизменность этих инвариантов, как бы вы ни меняли источники истины.
То есть мы легко можем получить все преимущества чистых функций без их (довольно жёстких) ограничений. ФП - это только PUSH-семантика. Сначала надо решить что нужно функции и как-то это получить, потом ей это передать, и только тогда вызвать её, чтобы она этим воспользовалась.
Реактивное программирование же позволяет делать ленивую (PULL) семантику, где сначала появляется потребность, потом вызывается функция, которая уже запрашивает то, что ей нужно в конкретно этот раз. Это даёт более простой код и минимальное потребление ресурсов.
https://twitter.com/_jin_nin_/status/1356967512462753793
Twitter
Jin
@_jin_nin_ Давайте разберём и эту тему. А то многие молятся на ФП, совершенно не понимая что это. Основные свойства чистых функций: изоляция и идемпотентность. Первое позволяет переиспользовать код, а второе - делает его поведение предсказуемым. Возможно…
Forwarded from Aidar Fattakhov 🇳🇱🚜
принцип подстановки барбары лисков умер гдето в 90-х короче
Forwarded from Alexey Gevondyan
сложную предметную область на пустом месте сделать изи. например есть у тебя интернет магазин. вот пилишь ты его, пилишь, и в один прекрасный день у тебя сотня микросервисов и команда из 150 человек.
Forwarded from λ ⊗ λ → d ⊗ g
Если Олег сделать вакцину так просто, чтож мы до сих пор не бессмертные
Forwarded from Bohdan Panchenko
Скоро до ФП доберется тырпрайз, который зожрет с потрохами ФП, и превратит его в Г
Forwarded from Bohdan Panchenko
Ничего кроме иммутабельность и чистых функций нет
Forwarded from Bohdan Panchenko
А для меня тру ФП это дрочения 6а иммутабельность, даже там где она не нужна.
Я вполне пишу как в ФП, так и в ооп стиле. Писать в одном стиле - упускать что-то важное
Я вполне пишу как в ФП, так и в ооп стиле. Писать в одном стиле - упускать что-то важное
Forwarded from Nikita Vilunov
Twitter
Гришка
@andrey_sitnik @nickensoul
Forwarded from Vasily Shapenko
В моем жизненном опыте я всеми силами стараюсь избегать взаимодействия с людьми по имени Никита. Практика показывает, что большая часть из них создают кучу проблем на ровном месте
Forwarded from dd if=/dev/stuff of=/dev/tg
Открыточка для @ebanatics: композиция по понятиям, ёпта. Ну и отделение продолжений/continuations от монад это тоже хорошо, да.
Forwarded from Rick 魄 🐳
Каррирование вида f(a, _) и отсутствие топ-левел, черт побери, функций - это достаточно, чтобы забыть о скале для любых применений (кроме ООП с монадами, коим на скале 2.13 и промышляют)
Forwarded from Rust M
чувак иди мимо, такую хуйню пишешь, типичный раб
Forwarded from Rust M
все живёте на помойке просто и цели ваши настолько внизу, что мешает вам увидеть что то большее 🙂
очень типичное поведение ничего нового
очень типичное поведение ничего нового