将Redux中的原理应用于OO语言是否有意义?


9

Redux本质上是函数式编程,这很有意义。当我回到另一个项目中的非JavaScript OOP语言时,我想应用相同的原理,例如单个状态对象,作用于该状态部分的缩减器,用于修改状态的语义动作的业务层。

我的项目是C ++,我想知道尝试在设计应用程序中应用功能化,redux风格的方法是否有意义。对于这个应用程序,性能并不是至关重要,但是可维护性是至关重要的。

这样设计我的应用程序会遇到什么困难?


我应该补充一点,这不是GUI应用程序。再考虑一下,由于在应用程序状态更新中没有直接的视觉效果,因此redux在非GUI应用程序中的优势有所减少。


做过redux事情的人说他有一个ES6实现,本质上是面向对象的Javascript。
罗伯特·哈维

1
不久前,我开始考虑使用Java进行此操作。您可以使其工作;Java 8和C ++ 11至少与Javascript具有“功能”。但是静态类型系统会使事情变得难看。顺便说一句,绝不限于GUI。Redux的方法与Clojure在并发状态下管理状态的方法极为相似,后者完全不依赖于GUI。
Torisuda

Answers:


5

编程的功能风格在正确的思维模式下几乎可以在任何地方重用。史蒂夫·麦康奈尔(Steve McConnell)在Code Complete中将“跨语言应用范例”的总体思想称为“编程为一种语言”。我最想指出的是,将跨语言和跨范式的课程应用到实践中的渴望,确实是那些将语言视为表达媒介的人的标志。令人惊讶的是,有多少开发人员从未达到这一点。

如您所指出,Redux的理念是针对UI开发的。很难想象在非UI环境中状态增量跟踪非常有用的太多方案。不过,这实际上取决于您的问题。如果该方法使整体解决方案更易于理解和维护,那么它可能是一个很好的解决方案。Redux采用的通用方法与大多数RDBMS中的事务日志非常相似,因此该方法早在JavaScript之前就很可能是对的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.