私は関数型プログラミング(JavaScriptとNode.jsを使用)を開始したばかりで、見たところ、作成しているコードは、一種のオブジェクト指向のパラダイム。
OOPを使用すると、コードを簡単に管理して拡張できるようにする方法に精通していますが、関数型プログラミングでの同様の規則についてはよくわかりません。
実際には、大規模な関数型コードベースは、なんらかの構造システムに分割する必要があります。 OOPに慣れている場合、クラスは自然な構造化要素のままです。あなたは「機能的なオブジェクト」のために努力します:概念的に関連する機能はクラスに一緒に配置されます。もちろん、非会話型の状態やインスタンス変数への依存を避けます。
構造を超えて、部分的な関数の適用など、拡張、保守性、および一般化のために機能の世界で好まれる特定の技法があります。ただし、機能/オブジェクトのハイブリッドモードで作業する場合、これらの機会を認識することは難しい場合があります。個人的には、ハイブリッドモードではworkにすることをお勧めしますが、そのようなより純粋な環境ではstudyおよびplayすることをお勧めします。 Haskellによって提供されます。
関数型プログラミング言語は、高品質のコードを構築するための多くの強力なコンセプトを享受しています。そして不変のデータ構造を忘れないでください。
OOPを放棄するのではなく、いくつかのFPパターンでそれを拡張してみてください。コレクションを処理する必要があるときはいつでも、適切な候補であり、一般的なFP map、fold、reduceなどのメソッドのセット。underscore.jsとbackboneを見てください。前者を多用するMVCフレームワークです。