- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码大全精粹 Theme1 Theme2 Theme3 Theme4 中文标题 字体: 黑体 字号:30-32pt 色彩:蓝色 中文副标题 字体:华文细黑 字号:20-22pt 色彩:黑色 子目录(2-5级) 字体:华文细黑 字号:18pt 色彩:黑色 中文标题 字体: 黑体 字号:30-32pt 色彩:蓝色 中文副标题 字体:华文细黑 字号:20-22pt 色彩:白色 ——个人整理版本 目录 设计 编码 质量优化 设计 设计关键点 1.封装——信息隐藏 类或模块,只提供合适的接口,并保持不变。实现细节和成员不要暴露给外界即其他模块。 反例: pDomain = (g_AAADomain[DomainID]); if (READY == pDomain-Status) { … } 正例: if (DomainIsReady(DomainID)) { … } 设计关键点 封转的好处: a.降低耦合。尤其是大模块之间。 b.降低复杂度。修改和阅读代码时,一个时刻只用关心一层的设计,不用在庞大的代码中左支右绌。 c.屏蔽变化源。例如某数据索引表从Hash表改成AVL树,不应对外部产生影响,封装可实现这种屏蔽。 Notice: 封装不仅应该用在大模块上,也应该用在模块内的各子模块上。 C语言中不希望被外部调用的函数,可通过函数名前加static前缀来实现信息隐藏 设计关键点 设计关键点 2.隔离容易改变的区域 找出明显容易变化的功能,将之分离出来成独立模块。设计良好接口,使变化不影响模块外部。 容易变化的地方: a.业务规则。例如电话费、上网费的收费模式、费率等。 b.硬件依赖性 c.困难的设计区域和实现区域。因为这些设计和代码不是很好,可能需要重新做。隔离使之对系统影响最低。 举例: 请教练结合自己项目举例 设计关键点 3.抽象 抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。 抽象本身很“抽象”,不太容易理解。我们来通过软件实例理解: C++项目中的抽象类 C项目中的通用算法库,例如Hash,就是抽象出了Hash算法的本质,而把具体的“杂凑函数”留给使用者注册。 请教练结合自己项目举例 设计关键点 抽象的好处: 关注高层规则,忽略无关细节,降低软件复杂度 写出高复用性代码 更好的软件层次结构 Notice: 抽象与语言无关,C语言同样可实现抽象。 编码 子程序和变量名 子程序长度 无标准。但超过200行请小心,一般只有复杂算法(如AVL树,加密等)才会写出长函数,其余情况出现长函数则要反省设计、分层是否合理。 一个子程序只在自己的抽象层次上做一件事情。如果一个子程序的名字无法完全描述它做的事,就违背了这一原则。 子程序和变量的名字: 总原则是让代码读起来就跟自然语言一样流畅。例如 if (NameIsValid(userName)) { RemoveAllSpace(userName) … } 子程序和变量名 过程性子程序起强烈的“动词+宾语”的名字,例如RemoveAllSpace()等。 逻辑判断子程序,名字写为肯定语句。 面向对象例子:bool CLASS_USER_NAME::IsValidName(); C语言例子:BOOL NameIsValid(userName); 使用时就是如下流畅的语句: if (userName.IsValidName())或if (!userName.IsValidName()) if (NameIsValid(userName)) 语句 1.循环 循环变量使用有意义的变量名,避免习惯性使用i,j,k 反例: for (i = 0; i MAX_USER_ID; i++) { for (j = 0; j MAX_PAYOUT_TYPE; i++) { sum += employee[i].payout[j]; } } 正例 for (userID = 0; userID MAX_USER_ID; userID++) { for (payType = 0; payType MAX_PAYOUT_TYPE;
您可能关注的文档
- 第6章发热XLP分解.ppt
- 第1章计算机信息安全分解.ppt
- 第6章发热分解.ppt
- 第6章防火墙技术分解.ppt
- CMMI和质量管理选编.ppt
- 大直径盾构隧道的技术进展分解.ppt
- 第6章分子生物学法(下)分解.ppt
- 第6章钢的表面热处理-重庆科创学院学习分解.ppt
- 第6章工程特征分解.ppt
- 第6章工业用水分解.ppt
- 2025至2030中国镍铝青铜行业产销需求与未来发展战略规划报告.docx
- 2025至2030中国应急救援装备行业市场发展分析及投资机会风险战略报告.docx
- 2025至2030钛合金加工设备行业市场深度调研及发展趋势与投资报告.docx
- 2025至2030中国数字银行平台(DBP)行业调研及市场前景预测评估报告.docx
- 2025至2030中国应用服务器行业调研及市场前景预测评估报告.docx
- 2025至2030中国铝矿行业市场深度调研及竞争格局与投资策略报告.docx
- 2025至2030中国间接作用压力计行业深度研究及发展前景投资评估分析.docx
- 2025至2030中国计算机服务器行业运营态势与投资前景调查研究报告.docx
- 2025至2030中国运动草皮设备行业深度研究及发展前景投资评估分析.docx
- 2025至2030中国聚合亚甲基二苯基二异氰酸酯(聚合MDI)行业运营态势与投资前景调查研究报告.docx
文档评论(0)