Имеет ли смысл применять принципы Redux к ОО-языкам?


9

Redux - это по сути функциональное программирование, и оно имеет большой смысл. Когда я возвращаюсь к языку ООП, не поддерживающему JavaScript, в другом проекте, я хотел бы применить те же принципы, такие как один объект состояния, редукторы, которые воздействуют на части этого состояния, бизнес-уровень семантических действий для изменения состояния.

Мой проект на C ++, и я хочу знать, имеет ли смысл попытаться применить функциональный, избыточный стиль подхода к разработке приложения. Производительность не является супер критичной для этого приложения, но ремонтопригодность есть.

С какими трудностями я столкнусь при разработке своего приложения?


Я должен добавить, что это не приложение с графическим интерфейсом. И если подумать об этом больше, возможно, избыточность уменьшила преимущество в приложении без графического интерфейса, поскольку нет какого-либо прямого визуального эффекта обновления состояния приложения.


Парень, который занимался редукцией, говорит, что у него есть реализация ES6, которая по сути является объектно-ориентированным Javascript.
Роберт Харви

1
Я пытался сделать это на Java некоторое время назад. Вы можете заставить это работать; Java 8 и C ++ 11 по крайней мере так же «функциональны», как и Javascript. Но система статических типов может сделать вещи вроде уродливыми. Кстати, ни в коем случае не ограничивается GUI; Подход Redux очень похож на то, как Clojure управляет состоянием в параллельном режиме, который вообще не связан с GUI.
Торисуда

Ответы:


5

Функциональные стили программирования, как правило, пригодны для повторного использования практически в любом месте с правильным мышлением. Общая идея применения парадигм кросс-языков - это то, что Стив Макконнелл называет в Code Complete «программирование на язык». В основном я хотел отметить, что желание применять полученные уроки на разных языках и на разных парадигмах действительно является признаком того, кто видит язык как средство выражения. Удивительно, сколько разработчиков никогда не достигают этой точки.

Как вы указали, философия Redux нацелена на разработку пользовательского интерфейса. Трудно представить слишком много сценариев, в которых дельта-отслеживание состояния полезно в средах без пользовательского интерфейса. Это действительно зависит от вашей проблемы. Если этот подход облегчает понимание и поддержку общего решения, то, вероятно, оно является хорошим. Общий подход, который использует Redux, во многом напоминает журнал транзакций в большинстве RDBMS, поэтому вполне может быть верно, что такой подход существовал до JavaScript.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.