今私は非常に巨大で複雑なwebappを開発しており、膨大な量のクライアントサイドのjsコードを処理しなければならず、私の人生を楽にするためにこのコードをデカップリングしようとしていますできるだけ早くあまり複雑なjavascriptモジュールをデカップリングする
私はNicholas Zakas(http://www.youtube.com/watch?v=vXjVFPosQHw)とAddy Osmani(http://addyosmani.com/largescalejavascript)がスケーラブルなjsアーキテクチャについて話し、自分のアイデアを自分の仕事に適用しようとしていました。
私は、複数の独立したモジュール間ですべての私のコードを分離し、仲介者のいくつかの並べ替えと、すべての相互通信を処理してきました。このアプローチは、ほとんどの場合に効果的でした。しかし、私はが十分でないと思う場合があります。です。
私が取り組んでいるモジュールの1つは、かなり複雑なリストに類似した構造を表しています。ここではいくつかの簡単な例:
は、いくつかのレンダリング・ロジックに加えて、ページのこの部分を担当するモジュールが処理する必要があります:
- ページネーションと周りelemsとグループを移動
- トグルグループ
- dnd
- カット/コピー/貼り付けの要素とグループ
- さわやかcertaingグループ/ elems
- は私が(例えば、編集および削除ロジックのために行われる可能性があり、すべての無関係なロジックを行っていた
最も近い将来、より多くのものかもしれelems内のいくつかのロジックイベントを介して別のモジュールに)、モジュールサイズはまだ大きく(1K行以上のコード)、私はそれをどのくらい減らすか分かりません。さらに、モジュール用のモジュールパターンを使用しているので、複数のファイル間でロジックを分離することがさらに難しくなります。
ここで、複雑なロジックをデカップリングする方法はありますか?は、1つのモジュール内にあります?
UPDATE:
は、私が何かを明確にしたいです。私はモジュール(モジュールのパターンからモジュール)を複数のファイルに分割する方法をよく知っています私のコード。
しかし、私は本当にを検索すると、単一のモジュール(NKZのプレゼンテーションから「モジュール」)内の懸念を分離するため新しい論理方法です。私はここで、さらにこのページhttp://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html
を発見した補強パターンを使用することをお勧めします複数のファイルに単一のモジュールを分離するために
あなたは少し曖昧ですが、一般的にプログラムのようなモジュールを扱うことができ、モジュールの壁内でサブモジュール、クラス、タイプ、および純粋な関数を作成して混乱を減らすことができます。自己内蔵型モジュールは、内部手順のリサイクルの減少のために、典型的には比較的高価である。例:jQueryプラグインと比較したスタンドアロンのリストソーター。モジュールは混乱よりも優れているので、正しい軌道に乗っています。スクリプトを次のレベルにするには、Dependency InjectionとControl Inversionの概念を習得する必要があります。 – dandavis
このトピックに興味のある人は、Nicolas Zakas自身とBoxのチームが最近発表したJSフレームワークである[t3](http://t3js.org/)をチェックしたいと思うかもしれませんが、これはプレゼンテーションで概説された概念質問にリンクされています。 [これは](https://www.box.com/blog/introducing-t3-enabling-large-scale-javascript-applications/)で紹介したZakasのブログ記事です。 – Nobita
こんにちは、これは少し遅れていますが、何とか役立つかもしれません。 https://pogsdotnet.blogspot.sg/2017/07/modular-javascript-architecture.html –