Разбираемся в новой волне критики ООП
1. Статья с критикой ООП
https://tproger.ru/translations/oop-the-trillion-dollar-disaster/Основная идея: при создании парадигмы (и фреймворка) ООП в шестидесятых, ключевой идеей был именно обмен сообщениями, а не дерево объектов. И при сохранении этой идеи код легче в поддержке, понимании, и более отказоустойчив.
Вначале была инкапсуляция - и именно она отражала ключевую идею оригинального ООП (объекты закрыты, сигналы в приоритете). Но в дальнейшем фокус внимания сообщества разработчиков сместился от сообщений к объектам.
В результате сформировались полиморфизм и наследование. Последовал эффект бойлерплейт, крупные программы стали характеризоваться сотнями объектов с тысячями возможных состояний. Открытость состояний объектов повышала связность и уменьшала коэффициент сигнал/шум в программе. В результате - избыточность кодовой базы, избыточность тестов, перегруженный процесс поддержки ПО.
Объекты связывают функции и структуры данных вместе в неделимых единицах. Я думаю, что это фундаментальная ошибка, поскольку функции и структуры данных принадлежат совершенно разным мирам.
- Джо Армстронг, создатель Erlang
Вообще, по ходу статьи аргументированно разбираются проблемы ООП в промышленном масштабе. Прилагается ссылка на статью "Goodbye, Object Oriented Programming" (medium.com, EN).
Рекомендуемые функциональные языки:
Elixir (построен поверх Erlang)
Elm
Scala
Clojure (современный диалект Лиспа)
F#
+ Функциональный подход к JS (google).
+ Функциональный подход к Python (google).
+ Упоминается Haskell
Также в статье есть ссылки на Flux и Redux в следующем контексте:
"Пусть основные части вашего приложения не будут содержать состояния и будут чистыми. Это является главной причиной успеха для Flux-паттерна в фронтенде (он же Redux)."
2. Статья про Flux
https://habr.com/ru/company/hexlet/blog/268249/Надо разбирать подход Flux/Redux на практике.
Но пока - себе на память размещу несколько картинок из поста и комментариев.
1. Картинка с критикой MVC:
2. Картинка с восхвалением Flux
3. Картинка с критикой Flux
Пока на этом у меня всё.
Комментарии
Отправить комментарий