私は、アプリケーションを再生するためにすべてのソースファイルをロードする必要のないシステムを構築する方法を探しています。私の過去のプロジェクトには200以上の.jsファイルがありました(私は冗談ではありません!)、あなたが開発した機能をテストするためにページリロードを行うのは本当に遅かったです。Factoryメソッドの戻り値を正しくJsDocできますか?
Dojoを調べたところ、どのように動的ローダーが構築されているのか分かりました。基本的には、単一のコアコンポーネントをロードするだけです。必要な場合は、他のすべてがロードされます。
var user = MyApp.create('MyApp.model.User');
の代わりに:私は、私はJavaScriptでのオブジェクトの新しいインスタンスを構築することができます私のアプリケーションでファクトリメソッドの実装を考えています
推論を、なぜ私は思います前者の方法では、コンポーネントがまだ存在しない場合に、遅延ロードされた方法でコンポーネントを動的にロードすることができるためです。ファクトリメソッドは、ターゲットオブジェクトが定義されているかどうかを調べることができます。ターゲットオブジェクトが定義されていれば、それをロードします。
私はそれに直面しています唯一の問題はIDEには、もはやuser
は確かに良いことではありませんMyApp.model.User
のタイプであることを理解事実です。
このジレンマを解決する方法はありますか?どういうわけかJsDocをファクトリメソッドといいますか?
私はこれをずっとやっています。問題はあなたが自分自身を繰り返していることです。私がしたいことはDRY(あなた自身をやめてください)です。私はオブジェクトを作成する場所の100で指定する代わりに、ファクトリメソッドで一度指定したいと思います。 – Tower
しかし、あなたのファクトリがその1つの特定の型を返さない場合、特定の戻り値の型(IDEが必要とするもの)を文書化することはできません。あなたがそれをそのように置くなら、それは単に行えません。おそらくあなたが望むものではない、あらゆる種類のオブジェクトに対して別々の工場が必要です。 – hashchange
これは確かに実行できますが、JsDocの現在のバージョンでは実行できません。工場を文書化する方法があるかもしれません。つまり、IDEが渡した文字列をファクトリに読み込み、返されたオブジェクトがそのものであると仮定します。 – Tower