Reduxの原則をOO言語に適用することには意味がありますか?


9

Reduxは本質的に関数型プログラミングであり、それは非常に理にかなっています。別のプロジェクトで非JavaScript OOP言語に戻ると、単一の状態オブジェクト、その状態の一部に作用するレデューサー、状態を変更するセマンティックアクションのビジネスレイヤーなどの同じ原則を適用したいと思います。

私のプロジェクトはC ++で作成されており、アプリケーションの設計に機能的で、reuxスタイルのアプローチを適用することが理にかなっているかどうかを知りたいです。このアプリではパフォーマンスはそれほど重要ではありませんが、保守性は重要です。

このようにアプリを設計するときにどのような困難に直面しますか?


これはGUIアプリではないことを付け加えておきます。さらに考えてみると、アプリケーションの状態の更新による直接的な視覚効果がないため、非GUIアプリケーションでのreduxの利点が減少している可能性があります。


やり直しをした人は、本質的にオブジェクト指向のJavaScriptであるES6実装を持っていると言います。
ロバートハーベイ、

1
少し前にJavaでこれを行うことを検討しました。あなたはそれを機能させることができます。Java 8とC ++ 11は少なくともJavaScriptと同じくらい「機能的」です。しかし、静的型システムは物事を一種の醜いものにすることができます。ところで、決してGUIに限定されるわけではありません。Reduxのアプローチは、Clojureが並行性の下で状態を管理する方法と非常に似ており、GUIにはまったく関連付けられていません。
トリスダ

回答:


5

関数型のプログラミングスタイルは、適切な考え方を持っていれば、どこでも再利用できる傾向があります。パラダイムクロス言語を適用する一般的な考え方は、Steve McConnellがCode Completeで「言語へのプログラミング」と呼んでいるものです。私は主に、クロスランゲージやパラダイムで学んだ教訓を適用したいという願望は、その言語を表現媒体として見ている人の印であることを指摘したかったのです。多くの開発者がこの点に達していないのは驚くべきことです。

ご指摘のとおり、Reduxの哲学はUI開発を対象としています。状態のデルタ追跡が非UI環境で役立つシナリオが多すぎると想像することは困難です。それは本当にあなたの問題次第です。アプローチによってソリューション全体の理解と保守が容易になれば、それはおそらく良いソリューションです。Reduxが採用する一般的なアプローチは、ほとんどのRDBMSのトランザクションジャーナルによく似ているため、JavaScriptの前にこのアプローチが存在したことは事実です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.