party_bidプロジェクトの再構築


1.サークル複雑度(Cyclomatic Complexity)
コードの複雑さの測定基準です.モジュール判定構造の複雑さを測定するために使用することができ、数的に独立した現行のパスバー数として表現することができ、すべての可能性のある状況をカバーするために最も使用されるテスト用例数として理解することができる.ループ複雑度が大きいことは、プログラムコードの判断論理が複雑であり、品質が低く、テストとメンテナンスが困難である可能性があることを示している.プログラムの誤りの可能性は高いループ複雑度と大きく関係している.
従来の開発では,コード内のforループやif−else if−else文が随所に見られ,バブルソートアルゴリズムなどの別のループがネストされることが多かった.これにより、プログラムのループの複雑さが向上し、プログラムのメンテナンス性と堅牢性が低下します. 
再構築では、条件ブランチをマージすることによって、マージ後にboolean変数を使用して条件ブランチの文を置き換え、forループの代わりにunderscoreを置き換えることができます.例:
  
function bid_result(priceLists,priceNumber)
{
    var count = _.chain(priceLists)
        .sortBy("price")
        .groupBy(function(price){
        return price.price;
    })
    _.map(count._wrapped, function (value,key) {
        priceNumber.push({'price': key, 'number': value.length,'value':value});
    })

    save_localStorage("localStorage_bid_results",priceNumber);
}

function get_result(bid_results)
{
    return _.find(bid_results,function(list)
    {
        return list.number == 1;
    });
}

 2.オブジェクト向けプログラミング
JAvascript言語はプロトタイプに基づくオブジェクト向け方式であり,オブジェクトはコンストラクタによってプロトタイプ(prototype)で構築される.データの添削改ざんなどの操作を行う場合、オブジェクトインスタンスを呼び出す方法で具体的な操作を実現することができ、データ間の転送を節約することができる.  
function Activity(put)
{
    this.title = put,
    this.disabled = false,
    this.color = "",
    this.bid=0
}

//save
Activity.prototype.save = function () {
    var list = Activity.get_activities();
    list.unshift(this);
    save_localStorage("localEventsLists",list);
}

Activity.get_activities = function () {
    return JSON.parse(localStorage.getItem("localEventsLists")) || [];
};



 3.