注重实效的软件开发DRY原则

DRY—— Don't repeat yourself,不要重复你自己。

软件开发应当注重实效,而要注重实效,就要避免重复,遵守DRY原则。

软件开发中的重复大致可以分为以下几类:

  1. 强加的重复

这一类重复并不是程序员本身所带来的,往往是外部所强加的重复。

比如:

  • 项目不同但软件功能大部分重复。

  • 必须使用的文档模板间存在重复。

  • 为了应对检查而进行的重复工作。

  1. 无意的重复

对于这一类重复,可能程序员本身都没有意识到。

这类重复通常出现在不太优秀的设计中。

就像下面这个例子。

一个表示线段的类,写成这样:

这里面就有重复,因为长度是由线段的起点和终点决定的,他们其中的一个发生变化,那么长度就会发生变化。所以最好的做法应该是把长度作为计算字段:

  1. 懒人的重复

比如著名的Y2K问题,就是由于开发者的懒惰造成他们没有参数化日期字段的尺寸,或是实现集中的日期服务库。

  1. 开发者间的重复

一个组织的不同部门或不同的项目组之间存在的重复开发。

如果要避免软件开发中出现这些重复,我们可以从以下几个方面着手:

  • 优化体系和流程,去除没有价值的活动。

  • 优化文档模板,去除不必要的重复内容。

  • 做好代码审查和设计评审。

  • 建立软件复用库,大力发展软件复用。

这正是:

软件开发重实效,无谓重复要去掉

四类重复有对策,精简应对刚刚好

参考书目:程序员修炼之道:从小工到专家,作者:(美)亨特(Hunt,A.),(美)托马斯(Thomas,D.),出版社:电子工业出版社

(0)

相关推荐

  • 《程序员修炼之道》| 王木头解读

    关于作者 这本书的两位作者分别是大卫·托马斯和安德鲁·亨特,他们不只是非常资深的程序员,还是<敏捷软件开发宣言>17位创始人中的2位.他们为敏捷软件开发建立起了价值观和基本原则. 关于本书 ...

  • 无代码开发企业管理软件,解放程序员双手

    进入互联网时代以来,程序员一直是一个令人羡慕的高薪职业,目前这种趋势还会继续,但未来的发展可能会提高程序员的技能.但是也有人表达了不同的观点:程序员现在看起来前途光明,但是AI和人工智能发展很快.10 ...

  • 30岁转行做网络工程师还是软件开发程序员呢

    30岁转行做网络工程师还是软件开发程序员呢

  • 网校网站源码:在线教育软件开发不能违背其原则

    在线教育已经不是个新鲜词汇了,相信大家早已对它不再陌生,在线教育的出现,给教育带来了新的生机与活力,它与传统教育相比,优势也已经是显而易见了,甚至有的人认为,它可能取代传统教育,但是小编却不这么认为, ...

  • 深入浅出详解软件开发中的 6 大设计原则

    在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义.本文主要将总结这些常见的原则,和具体阐述意义. 开发原则 面向对象的基本原则 ...

  • 软件开发有什么作用·

    前几年,模板网站和现场软件开发爆火,如今却销声匿迹,人们纷纷放弃现成软件,转而青睐于定制开发.为什么呢?        因为定制软件相比于现成模板软件,可以大大提高资金使用率.提高员工的工作效率.降低 ...

  • 让开发者相见恨晚?!华为云软件开发云实现云上敏捷开发

    [51CTO.com原创稿件]弗吉尼亚鹿是现存最古老的一种鹿.这并不是偶然的,而是因为350万年来,这门优雅的物种延续了一种有效的生存办法--它们保存了灵活的本性和迅速适应环境的能力.这恰恰佐证了达尔 ...

  • 在线教育培训软件开发未来的发展趋势

    近年来,不少公司趁着"#情绪焦虑#互联网+教育"的东风,纷纷进军教育培训行业,将"互联网+教育"做得风生水起.而在去年,突如其来的疫情又让线下课外培训机构大受影 ...

  • 关于软件开发,都应该知道的10个常识

    2011年,马克·安德列森(Marc Andreessen)写了一篇文章,预言"软件吞噬世界".观点主要有两个:第一,许多传统业务正在被软件公司所取代:第二,所有其他公司都发现,他 ...

  • 软件开发的两大经典模型:瀑布模型和迭代模型

    软件开发的两大经典模型:瀑布模型和迭代模型

  • 小视频软件开发

    一.小视频软件开发APP开发注意事项 1.视频特效一定要多 视频已经不再是记录的手段,而成了具备化妆品功能的"美貌魔镜了"请注意,一定要及时更新新的视频模板.音乐.贴纸.滤镜--因 ...

  • 短视频软件开发,最优解的开发方案是什么

    短视频软件开发的开发方法有三种,原生开发.HTML5开发和混合开发,原生开发是指根据特定的官方提供开发语言.开发工具进行的APP开发,优势在于,原生开发的短视频软件交互体验和性能是最佳的.但一般大家都 ...