6

私たちは常に、問題を解決するためにスキルを適用する能力を向上させようとしています。ソフトウェアエンジニアリングの原則は、より高品質のコードを書く能力を大いに助けてくれました。これには、テスト、モジュール化、必要に応じてOOの使用などが含まれます。

これは、JSでモジュール化を実現した例です。これを達成するのは悪い方法かもしれませんが、それは私が意味することの例として役立ち、それ自体のいくつかの質問が含まれています。

framework.js

Framework = {
    CurrentState : {
        IsConfigurationLoaded : false,
        IsCurrentConfigurationValid : false,
        Configuration : undefined  //undefined .. good? bad? undefined?
    },
    Event : {
        //event lib
    }, 
    //you get the idea
}

質問:

JSの読みやすさ、保守性、およびその他の品質属性を向上させるために、ソフトウェアエンジニアリングの原則をどのように適用しますか?

回答に役立つその他の関連する(より具体的な)質問:

私はかつて、単純なアサーションとラムダを取得するテストヘルパーメソッドを備えた単純なJSユニットテストフレームワークを作成しました。javascriptのユニットテストについてどう思いますか?

コードとフレームワークの境界を定義することはどれほど重要ですか?

JSは、主にブラウザまたはWebサイトで使用されます。これは特定の懸念を軽減/無効にしますか?

クラスとOOの原則の使用を提案しますか?

未定義および/またはnullの使用?それは禁止されるべきですか?

try / catchの使用法?提案されましたか?

JSONからクラスに移行するのはいつですか?データを操作するUtilメソッドを使用していますか?

プロトタイプの使用法?提案されましたか?あなたがそれを使わないであろう良いケースは何ですか?

4

1 に答える 1

1

大規模なプロジェクトでは、モデル ファイル、コントロール ファイル、ビュー ファイル ([mvc-pattern][1]) が異なる傾向があります。

モデルファイルには、データ、特に私のクラス (OOP) に関するすべてが含まれています。モデルファイルの例は次のとおりです。

function myClass(){
   //private variable
   var variable=5;

   //public variable    
   this.newVariable = 10;

   function myFunction() {
      //do some stuff
      alert("my function");
   }    

   //public stuff
   return {
      myPublicFunction: myFunction
   }
}

ビューファイルにはレイアウトとビューに関するすべてが含まれ、制御ファイルにはデータ処理に関するものが含まれています。control-file は、model-file で宣言されたクラスを使用して動作します。そのため、ビューは制御ファイルをインクルードし、レイアウトに必要な関数を呼び出すだけで済みます。

しかし、一般的に一般化するのはかなり異なります。私はoo-patternが好きで、それが理にかなっている場合は使用しようとしています。しかし、私は iPhone 開発の経験しかないので、Web 開発に関しては何も言えません。

  [1]: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller
于 2010-09-15T15:12:55.453 に答える