`
狼牙_
  • 浏览: 7356 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

party_bid 项目之 重构

阅读更多

1.圈复杂度(Cyclomatic Complexity)

  是一种代码复杂度的衡量标准。它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数。圈复杂度大说明程序代码的判断逻辑复杂,可能质量低且难于测试和维护。程序的可能错误和高的圈复杂度有着很大关系。

  在之前的开发中,代码中的for循环和if - else if -else句随处可见,而且其中经常会嵌套另一层循环等,例如冒泡排序算法。这样就会使程序的圈复杂度提高,并且降低了程序的可维护性和健壮性。 

  在重构中,通过合并条件分支,合并后可用boolean变量来替换条件分支中的语句以及underscore取代for循环。例如:

  

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语言是基于原型的面向对象方式,对象依靠构造器constructor利用原型(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.

 

 

分享到:
评论

相关推荐

    uid_score_bid.dat

    数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578

    基于JavaScript的Java_Bid招标项目前端设计源码

    该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML...整个项目旨在打造一个功能完善、界面美观的招标平台。

    case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow

    标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...

    crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9. bid_crc16 ccitt ver

    标题中的"crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9._bid_crc16 ccitt ver"可能是指一个包含CRC-16 CCITT实现相关资料的压缩文件,其中包含了各种文档、源代码或测试向量。"ccctt.5com"、"ccctt3bid"、"ccctt9._...

    EURUSD_1 Min_Bid_2003.05.04_2019.02.02.zip

    欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。

    mc_bid

    "mc_bid"通常在IT行业中指的是“Multi-Channel Bid”,这是一种广告投放策略,特别是在数字营销领域,用于优化广告在多个渠道上的出价。这个概念主要应用于程序化广告(Programmatic Advertising),通过自动化的...

    Repaso_Clases_Objetos_call_aplly_bid_22_02_2021

    在压缩包子文件的文件名称 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021-master" 中,我们可以推测这可能是一个项目仓库的主分支,包含有关课程的源代码、笔记或其他资源。 现在,让我们深入探讨这些知识点:...

    去噪代码matlab-PGBL_BID:PGBL_BID的Matlab代码

    去噪代码 matlab

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    Bid Documents - Toyota Hilux Fx_pdf_

    【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...

    backup_1000821v1001400000.zip

    标题“backup_1000821v1001400000.zip”和描述中的信息“backup_1000821v1001400000.zip”暗示这是一个备份文件,可能包含了某个系统或应用在特定时间点的数据快照。通常,这样的文件用于防止数据丢失,便于恢复到...

    bid_shift_reg.rar_plus

    标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    ocds_bid_extension:允许出价统计信息和详细的出价信息被表示

    监管制度的不同之处在于它们可以在多大程度上主动发布有关招标的信息,以及在采购过程中的什么时候。 在某些系统和过程中,招标开始时会发布受邀竞标者的列表,评估完成后,将披露收到的竞标的全部详细信息和文件。...

    Bid Documents - Service Pick-up_OntheUp_tantakpins_

    标题中的“Bid Documents - Service Pick-up_OntheUp_tantakpins_”暗示这是一份关于服务接洽的投标文档,其中可能包含了与"OntheUp"和"tantakpins"两个关键词相关的服务流程或项目信息。"OntheUp"可能是项目、服务...

    bid格式文件电子标书阅读器.zip

    bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...

    启明星工程项目投标系统bid v26.0.rar

    启明星工程项目投标系统bid v26.0是一个专门针对工程投标流程设计的软件工具,它集成了项目管理、招标公告浏览、标书制作、电子投标等功能,旨在提高投标过程的效率和准确性。这个版本(v26.0)可能是该系统的一次...

    Framework Manager使用手册.doc

    - 在 "选择对象" 对话框中,选定需要的表,例如 "cctv_bid_result_qin_99" 和 "cctv_enterprise"。 7. **导入对象** - 在 "Generate Relationships" 对话框中,点击 "Import" 按钮将所选对象导入框架。 8. **...

    matlab 电力系统潮流计算程序 9节点改进算法算例

    在提供的文件中,`quadratic_bid_ninebus.m`和`case9_bid.m`可能是两个主要的MATLAB源代码文件,它们可能包含了潮流计算的实现以及特定的优化算法,如牛顿-拉弗森法或者快速分解法。 `quadratic_bid_ninebus.m`可能...

Global site tag (gtag.js) - Google Analytics