高质量代码的设计特点
更新时间:2023-05-25 01:12:01 阅读量: 实用文档 文档下载
- 高质量代码的三要素推荐度:
- 相关推荐
高质量代码的设计特点
代码设计之道
综述高质量的设计往往有一些共同的特点。如果你能 达到这些特点,那么可以认为你的设计也是非常 成功的。有些特点是互相矛盾的。但是这是设计 的挑战所在,在相互矛盾的对象之间做出合理的 折衷。 某些高质量设计的特点同时也是高质量程序的特 点—可靠性。其余的则是设计所独有的。 以下是设计所独有的一些特点:
智力上的可管理性:对于任何系统来说,智力上 智力上的可管理性 的可管理性都是其重要目标之一。它对于整个系 统的完整性是非常重要的,并且会影响程序员们 开发和维护系统的难易程度。 低复杂性:低复杂性实际上是智力上的可管理性 低复杂性 一部分,由于上述同样的原因,这点也很重要。
维护的方便性:维护的方便性意味着设计时要为 维护的方便性 负责维护的程序员着想。在设计中,要不停地想 象维护程序中将会对你的设计提出的问题。应该 把维护程序员当作你的听众,同时把系统设计成 明白易懂的。 最小的联系性:最小的联系性指的是按照保持子 最小的联系性 程序之间的联系最少的原则来设计,应该利用强 内聚,松散耦合和信息隐蔽等作为指导原则来设 计系统,使其内部的联系性尽可能少。最小的联 系性可以极大地减小综合、测试和维护阶段的工 作量。
可扩充性:可扩充性指的是不必影响系统的内部 可扩充性 结构,就可以对系统的功能进行强化,你可以改 变系统的某一部分而不影响其余部分,使得最大 可能性变动对系统带来的影响最小。 可重复使用性: 可重复使用性指的是把系统设 可重复使用性 计成其中许多部分是可以被其它系统借用的。
高扇入:高扇入指的是对于一个给定的子程序来说,应该 高扇入 有尽可能多的子程序调用它。高扇入表明一个系统在低层 次上充分利用了功能子程序。 低或中等程度扇出:低或中等扇出指的是对一个确定的子 低或中等程度扇出 程序来说,它所调用的子程序应该尽可能地少。高扇出 (大约7个以上)说明一个子程序控制了许多其它子程序, 因此可能是很难理解的。而中等扇出则表明一个子程序只 把任务交给了数量较少的其它子程序,因此是比较容易理 解的。低扇出(少于4个)看起来像是一个子程序没有把 足够的任务交给其余的子程序去做,但经验表明并不是这 样。一项研究表明有42%只调用一个子程序的子程序是没 有错误的,有32%的调用 2~7个子程序是没有错误的,而 在调用7个以上子程序的情况中,只有12%是没有错误的。
可移植性:可移植性指的是把系统设计成很容易 可移植性 转到另外的
环境下运行。 简练性:简练性指的是把系统设计得没有任何多 简练性 余部分。 有人说,当一本书不能删掉,而不是不 能添补任何内容时,才可以认为它已完成了。在 软件中,这也是非常正确的,因为当你对系统进 行改进时,你不得不对冗余的代码进行开发、评 审、测试和维护等等工作,而且在开发软件的新 版本时,新版本也不得不与这些冗余的代码兼容。 最有害的观点是“多加入些又不会有害,怕什么 呢?”
成层设计:成层设计指的是尽量分解的层次是成层的,这样你可以在 成层设计 每一个单独的层次上观察系统,同时也可以使观察的层次是连续的。 也就是说当你在某一层次上观察系统时,不会看到在其它层次上看到 的东西。 你会经常遇到某些子程序和软件在几个层次上起作用。这样会使系统 很混乱,应尽力避免。 如果在编写一个先进系统时,不得不借用许多旧的、设计得不好的代 码,那么你可以在新系统中建立一个层(layer),与那些旧代码相联 接。精心设计这个层使它把旧代码的缺点隐含起来,从而使新层表现 了一整套连续的功能。然后,让程序的其余部分调用些子程序而不是 直接调用旧代码。成层设计的好处是:(l)它可以使你避免与拙劣 的旧代码直接打交道;(2)一旦你想废弃那些旧代码中的子程序的 话,只要修改一下接口层就可以了。
标准化技术:标准化技术是深受欢迎的。 标准化技术 一个系统使用的奇特的、非标准的技术越多,当 别人第一次读它时就会越感到可怕,也越难理解。 应该通过采用常用的、标准化的技术使得人们在 阅读它时是一种熟悉的感觉。
正在阅读:
高质量代码的设计特点05-25
说课提纲12-27
化学学科历届百优论文03-09
MRI数据预处理流程04-13
个人职业swot分析05-23
英语口译笔记法实战指导09-02
读恩格斯共产主义原理有感02-20
考研机械原理题库(填空)12-13
社区管理09-09
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 高质量
- 特点
- 代码
- 设计
- 浅谈矿物绝缘电缆2
- 李清照(四)《风波再起》
- 2008数电B卷及其答案
- (no)信息安全试卷(全)
- 东软集团半年报摘要
- 军事理论课的总结及考试试题
- 双氧水稳定剂的研究进展
- 2014年全国硕士研究生入学统一考试农学门类联考数学试题
- PTC Creo 2.0 M010 正式版安装步骤图解教程(Win32&64)
- 船舶设备维护保养作业指导书
- 焊接工程师培训讲义
- 培训大思维-安秋明
- 国海证券-孚日股份-002083-太阳能光伏业务可能提升公司的业绩弹性-100809
- 《生产管理》之各种钢模板生产检验企业标准
- 研究性学习课题开题报告
- 臂丛神经损伤的诊断
- 系统工程课程中文论文剖析
- 多电平逆变器电路方面的
- 自然崇尚与文学审美
- 我国中央银行的独立性对货币政策目标的影响