目次

中堅SE向け研修

会員管理システム

この回では、AngulerJSを少し本格的に使用して会員管理システムを構築する。

ここで用いるAngulerJSの機能および関連項目は以下のようなものである。

MVCパターン

多くのデータベースアプリケーションが取り入れているデザインパターンの一つ。

それぞれの単位が責任を分担することで、見通しの良いすっきりとした構造のアプリケーションを構築することができる。

会員管理システムのMVCの構成は以下のようになる。

MVC.png

DI(Dependency Injection:依存性注入)

依存性注入とは(Wikipediaによると)マーティン・ファウラーによる造語で、あるコンポーネントAの中で別なコンポーネントBを使用する際、コンポーネントBをコンポーネントAの中で内部的に生成するのではなく、外部のインターフェイスなどを使って間接的に導入(これを注入という)することにより、コンポーネント間の依存関係を薄くし、単体テストを実施しやすくする技術である(とのこと)。

と言われても、何を言っているのかよくわからないかもしれないが、私の解釈によると次のようなことである。

会員リストを処理するクラスMemberListの中で、会員の住所から郵便番号を得るZipCodeManagerというクラスを使っているとしよう。

つまり、

var MemberList=function(){
  this.members=[];
  this.prototype.makeList=function(){
    var zcm=new ZipCodeManager();                 // ←ココ
    for(var i=0;i<this.members.length;i++)){
      int z=zcm.getZipCode(this.members[i]);      // 会員this.members[i]の郵便番号を得るはず・・・
      // ...       
    }
  }
}

問題となるのは「←ココ」と示した部分である。

ここでもし、ZipCodeManagerクラスを作っている人がなかなか開発が進まず、MemberListクラスをテストするときに間に合わなかったとしよう。

このとき、MemberList#makeList()のテストを行うことができない。なぜなら、ZipCodeManagerのインスタンスを生成できないからである。

このような場合、モックと呼ばれる偽物のZipCodeManagerを作って、それを本物の代わりに使ってテストすることになる。この偽物のZipCodeManagerは、例えばどの住所からでも常に000-0000を返す、とかする。(このようなモックはあまり良いモックではないが)

しかし、このような方法は

Bootstrap3


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS