导读


人类到目前为止已经能够度量越来越多的东西,例如时间、长度等,但是在软件开发领域,我们依然很难去评估一个软件系统的质量,以及维护它的难易程度。可维护性越差,意味着开发成本越高、开发速度越慢,以及由于改动带来的缺陷也越多。在现实中,我们经常会面对代码混乱、模块紧耦合的遗留系统,持续攀升的维护难度会终导致系统不可维护,从而推倒重来。来自软件改进组织(Software Improvement Group)的咨询师们,从大量实践项目中提取出了编写可维护软件的10个佳原则,不仅可以用来测量软件的质量和可维护性,还可以指导我们如何编写出高质量的代码。本书会一一介绍这些原则,并且提供了翔实的代码示例,能够让读者一步步了解到如何对代码进行重构,从而达到满足原则、提高可维护性。希望各位读者在阅读完该书后,能够了解和掌握如何对软件系统的质量进行评估和测量,以及如何在实践中遵循书中的原则,编写出高质量、简洁的代码,开发出松耦合、高可维护性的系统。


相信很多人都有过在修改别人代码的时候感到沮丧的经历,如今,难以维护的代码已经成为了软件开发中一个很大的问题,导致成本高昂的延期和大量缺陷。以下从实践出发,提供了十条易于实现的原则,可以帮助开发出可维护性强且灵活的软件,并且这些原则都来自于对成百上千个现实系统的分析。


十大原则


——编写短小的代码单元,限制方法和构造函数的长度


——编写简单的代码单元,限制每个方法中分支点的数量


——编写代码一次,而不是到处复制含有缺陷的代码


——通过将接口参数提取到对象中,保持短小的代码单元接口


——分离关注点,避免产生体积庞大的类


——保持架构组件松耦合


——平衡顶层组件之间的数量和大小


——保证代码库尽可能小


——对代码库进行自动化测试


——编写整洁的代码,避免会反映更深层问题的“代码坏味道”


纸质书购买地址(相对亚马逊比较便宜,其次当当)

代码不朽——编写可维护软件的十大要则相关推荐

  1. 读《代码不朽:编写可维护软件的10大要则》C# 版

    这本书特别针对没有接受过计算机科学或软件工程专业学习的软件开发人员,这类人员除了熟悉所用语言语法和语义之外,很少接受其他专业培训,对软件工程中的一些概念理解欠缺.软件设计方面考虑较少.如果要成为一个专 ...

  2. 好书推送-《代码不朽:编写可维护软件的10大要则》

    本书由软件改进组织(SIG)编写,一共是12章,130页.本书的10大原则,是基于SIG经历了长达15年软件质量的咨询工作后总结出来的. 什么是软件的可维护性:软件系统被修改的难易程度. 国际标准IS ...

  3. 2007成都软件产业十大事件揭晓[转]

    十大事件 1.成都成为全国首个国家知识产权工作示范城市 2.信息化基础设施首次列入城市基础设施建设 3.成都被评为国家电子政务试点城市和农村信息化综合信息服务试点 4.成都正式启动软件人才队伍建设行动 ...

  4. 开源软件历史十大杰出人物--值得学习

    开源软件历史十大杰出人物 No.1 自然非伟大的 RMS 莫属了.Richard Stallman,GNU 的创始人,GCC 和Emacs 的作者.GPL 的发明人. No.2 Linux Fan 的 ...

  5. 编写可维护软件的不朽代码随想-2

    编写短小的代码单元 代码单元的长度应<=15行,将长的代码分解成多个更短的代码单元:短小的代码单元易于理解.测试和重用. 代码单元:可独立维护和执行的最小代码集合. 例如在C#中,一个方法或者构 ...

  6. 如何编写无法维护的代码_编写可维护的前端代码

    点击这里获得更好的阅读体验​github.com 以下是本人在团队内部分享的整理和补充,水平有限,如有错误,请不吝赐教. 大家好,我叫王力国,目前是 RPA 前端团队负责人,过去一年我们从零构建了 R ...

  7. 破解软件必备十大工具(含下载地址)

    影响共享软件发展的因素很多,被非法破解可以说是共享软件的头号大敌.那么造成共享软件生存困难的cracker们到底用了那些武器呢?今天就让我让带您去看看神秘的cracker常用的十类软件,它们就是共享软 ...

  8. python 3d大数据可视化软件_十大顶级大数据可视化工具推荐

    要使数据分析真正有价值和有洞察力,就需要高质量的可视化工具.市场上有很多产品,特点和价格各不相同,本文列出了一些广泛认可的工具.其实企业如何选择一个合适的可视化工具,并不是一件容易的事情,需要仔细的考 ...

  9. aps软件在十大科技趋势中出现

    随着科技新浪潮十年一期的开启,蓄势已久的智能革命将迎来颠覆性的技术变局.有关组织也发布新的十大科技趋势,让我们共同见证那些期待已久或从未料想的变化,并且循着技术演进的曲线,找到我们的来处和去向. ap ...

最新文章

  1. 设置VSCode用Ctrl+鼠标滚轮上下滑动调整编辑器代码字体大小,设置Ctrl+0恢复默认字体大小
  2. 千千静听4.6.7版发布了
  3. 贪心 ---- Educational Codeforces Round 90 (Rated for Div. 2)D Maximum Sum on Even Positions[偶数子段最大和]
  4. sap.ui.layout.form.SimpleForm.prototype
  5. 今天学习Flex3.2嵌入图片,值得说道的是如何嵌入scale-9 缩放的图像
  6. psftp 上传下载文件
  7. 《SEO字典》解读meta robots标签
  8. RTL8201EL介绍
  9. 【论文串烧】基于特定实体的文本情感分类总结(PART I)
  10. 8Manage革新多项目管理的沟通方式
  11. Oracle 10g RMAN 跨平台迁移
  12. java的方法分为两大类型,java题库
  13. 幼儿园绘本图书借阅小程序
  14. 入侵手游服务器修改数据库,如何入侵手游服务器数据库
  15. 基于支持向量机的新闻分类
  16. 全国各省女孩性格+美丽程度比较分析!
  17. openbravo erp介绍(二)
  18. 日记侠:你想开始写文章吗?(可以赚钱的)
  19. 从事Web前端的工作,日常工作内容有哪些?
  20. 市场调研-船用离合器市场现状及未来发展趋势

热门文章

  1. 计算免息分期的收益 及 年金/复利现值终值的理解
  2. 基于SECS协议开发的简明教程(7)
  3. adjacent angle_【数学几何的英语用语包括图形的名称.】作业帮
  4. oracle服务丢失的解决办法
  5. wangeditor富文本编辑器添加上传本地视频功能
  6. pandas 读取的数据少了一行
  7. C# POST 含异常处理
  8. 丁香花开,又是一年毕业时
  9. 发送和接收电子邮件时的相关协议以及流程
  10. 找不到网络名_强推3本冷门网络小说,水平优秀却不火,真是明珠蒙尘