しばらくの間、私はjavascriptアプリケーションを開発してきました。通常、単純なタスクを実行するための小さなスクリプトですが、継承を使用して疑似クラシックOOクラスを作成するためのDeanEdwardsのbase2ライブラリを使用するかなり大きく複雑なアプリケーションもあります...javascriptで。
base2ライブラリは、主に、私がよく知っている古典的なOOパラダイムに従うことができたために非常に役立ちました。また、より堅牢で成熟したjavascriptアプリケーション(たとえばbackbone.js )を構築するために使用できる他のいくつかのフレームワークも知っています。しかし、私は常に、このタイプのライブラリは、言語が実際には適していない原則を使用してコードを記述する方法を構築するための「不正行為」の方法であると感じています。
私は、オブジェクト/関数を定義し、それらをインスタンス化し、プロトタイプの継承を使用してポリモーフィズムを実現するためのさまざまな方法を読んでいます。これは本当に言語が基本的なレベルでどのように機能するかであり、それが迷惑または奇妙であると判断して、私が慣れている方法で物事を行う方法を見つけようとするのではなく、それを利用する必要があると感じています(古典的なOOの方法)。
したがって、このタイプのライブラリを使用していないアプリケーションを見ると、Java、C ++などの従来の汎用言語ではアプリケーションを作成する方法が非常に多いようです...アプリケーションを構築する正しい方法は、より明確に定義されているようです。 (良いコードと悪いコードを区別する方がはるかに簡単です)。誰かが明日私に「projectXの開発を始めてください」と尋ねた場合、再構築するには遅すぎるときに、後で私に噛み付くことがないと確信できる方法で、オブジェクトの定義と構造化を開始する方法がわかりません。全部。
プロトタイプの継承を使用すると、プロの複雑なjsアプリのスケルトンはどのようになりますか。したがって、クラシックOOを模倣するためのライブラリを使用せずに、単純なMVCタイプのアプリを想定しますが、より複雑な比率に簡単に拡張できます。オブジェクトを定義する方法は?オブジェクト/「クラス」をグループ化(名前空間)する方法は?言い換えれば、誰ももう理解できない混乱に終わることなくそれを行う方法は?