在完成party-bid四张卡后,根据公司培训的要求,又用了一周到两周的时间对party-bid进行了重构。这就要求不仅仅能实现软件工程的相关功能,而且对代码书写又有了一定的要求,这里我总结为:规范化、结构化、模块化、专业化。通过对代码的重构不仅提高了程序的可读性、规范性,也同时无形中提高了作为程序员书写代码的能力和编程的思想。
根据我重构的顺序,第一步做的是代码的规范化:
代码规范化,包括就是把所做的程序中JS文件、函数、变量名称规范化。JS文件规范化,相应的JS或者CSS文件放到相应的文件夹,并保证在route中配置好。函数规范化,见名知义,函数名能直接反映出函数的功能、函数做的事情,同时还要保证有函数只做一件事。比如renderBidResult函数,它只负责取到竞价的结果并把相应的结果返回,而不在次函数中计算得到竞价结果,这又是另一个函数完成的功能。如果在阅读代码的过程中看到一个函数完成了两个或多个功能,这时要做的就是拆分函数。变量名称规范化,u同样也是见名知义,注意是局部变量还是全局变量,变量的作用域,我认为能减少中间变量还是要减少,这样会降低代码复杂度。
第二步做的是结构化:
具有相似功能的函数放到一起,实现工程某一功能的函数及代码放到一起,结构化。angular-js是面向对象的开发框架,我们就应使用面向对象的编程思想,MVC的开发模式,V层只负责前台页面的显示,C层控制层负责显示的数据,M层负责数据交互。
第三步是模块化:
其实这块是MODEL的东西,根据面向对象的编程思想,建立相应的类和对象,包括类中相应的属性和方法,方法根据需要定义相应的类方法还是实例方法。模块化对代码的重构比较重要的一个环节,对代码改动比较大,同时也比较重要,这里不仅要封装函数,有的函数可能还要重写。
最后一步是专业化:
这里我做的主要包括两点:减少圈复杂度提高可读性和避免使用循环语句。
减少圈复杂度就是,避免使用大量的if else语句,最忌讳的是大量ifelse嵌套,使用的方法是else下面的功能程序函数化,函数层层调用。
避免使用循环语句,这里使用的方法是人家给提供好的函数(underscore),这样不仅可以使程序简化很多,更专业化,也大大的减少了程序员的工作量,提高开发效率。
分享到:
相关推荐
在"2-bid-master"这个压缩包文件名中,“master”通常表示这是项目的主分支,意味着包含了最新的、完整的代码版本。如果你解压这个文件,你可能会找到项目的源代码、文档、测试文件等,这些都是开发过程中不可或缺的...
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
马里奥matlab代码适应类别的BID 一种基于即插即用方法的适应类盲图像去模糊方法。 %================================================= ===================% [1]和[2]中的适用于类的BID方法的MATLAB DEMO。 该...
- **调价规则**:如果Bid_g - Bid_b > 0,调价幅度为Bid + Bid_g - Bid_b;如果Bid_g - Bid_b ,则为Bid - Bid_g - Bid_b。 2. **模型实现与部署** - **源码与耗时**:模型源码位于auto-bid.py,完整运行耗时35...
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
在本资源中,我们主要关注的是“iOS 7 开发入门”教程的第 8 章,内容涉及如何在 iOS 应用中使用 `SearchBar`,并且这个章节已经更新以适应 iOS 8 的开发环境。`SearchBar` 是 iOS 开发中一个重要的组件,它允许用户...
怪物叫价 遗传神经网络。 最初的目标是:金融市场预测。 使用 gcc 构建(构建mbtutor和mbtester ): $ make 请记住: 这个软件在这里只是作为我写过的代码的展示(前一段时间)。 它通常不会完成其任务。...
语言:English (United States) 开始赢得quibids&deaoldash!...”BID-Ninja软件有三个核心组件1 - BID-NINJA分析:如上所述,提供有关竞争对手的全面了解您的竞争对手和您试图获胜的拍卖。2 - BID-NINJABi
Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
量子密封拍卖是基于量子力学原理的一种多参与方安全竞标协议。它利用量子纠缠和量子密钥分发等量子通信技术,以实现竞标过程的保密性和公正性。EPR对(爱因斯坦-波多尔斯基-罗森对)是量子纠缠粒子的一种,常用于...
AdWords每小时出价优化 带有相应Google表格模板的Google脚本,可以按一周中的某天+小时在AdWords中优化您的出价。... 此剧本在第2集的Envoy的Digital Power Plays YouTube频道中得到了重点介绍。 在上面的视频中,...
【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...
bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...
matlab图像减影代码UM-BID 曼尼托巴大学乳房微波成像数据集 (UM-BID) 是一个开放获取的数据集,可供所有研究人员使用。 该数据集包含来自 MRI 衍生的乳房模型的实验扫描数据。 可以找到数据集本身。 缩短的链接是...
标题中的"crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9._bid_crc16 ccitt ver"可能是指一个包含CRC-16 CCITT实现相关资料的压缩文件,其中包含了各种文档、源代码或测试向量。"ccctt.5com"、"ccctt3bid"、"ccctt9._...
标题中的“Bid Documents - Service Pick-up_OntheUp_tantakpins_”暗示这是一份关于服务接洽的投标文档,其中可能包含了与"OntheUp"和"tantakpins"两个关键词相关的服务流程或项目信息。"OntheUp"可能是项目、服务...
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
// 'ask-bid', 2 game . next ( 'pass' , 2 ) ; // 'ask-bid', 0 game . next ( 'bid' , 0 , 24 ) ; // 'ask-ack', 1 game . next ( 'pass' , 1 ) ; // 'ask-declare', 0 game . next ( 'declare' , 0 , { suit : ...