消除重复代码的意义
2011-06-26 17:55
267 查看
最近一位同是计算机专业背景的同学打算在进展报告中给身为外行的老板和完全没写过程序的同学们讲讲消除重复代码的意义,并打算用生活中的例子使这个讲解通俗易懂。
我想了很久都没想到一个很好的生活例子。消除重复代码的必要性其实是由计算机软件
的易复制性导致的,而计算机以外的世界鲜有这么容易能复制的东西。因此我觉得这种例子还是在计算机世界中比较好找。(注:以下的话都是假设要讲给非专业人士听的,因此可能会有不严谨之处。)
例一:假如某人甲将自己电脑上的一份文件拷给了某人乙之后,发现这份文件有一个错误。这时就必须分别对甲乙两人电脑上的文件进行更正,也就是要更正两次(即使是先在一人的电脑上更正再拷给另一人也算更正两次)。假如这时又发现这份文件有错误,那就又要更正两次。如果这份文件拷给了很多人,那还要更正很多次,这个过程很麻烦。如果甲将这份文件设为共享,那每次发现错误就只要更正一次就行了。设置共享可能要花费些功夫,但是以后发现错误时就不用那么麻烦要修正很多次了。
例二:假如一款软件是单机版的,那么用户就要在自己的电脑上安装这款软件才能用。也就是说,每个用户的电脑上都会有这款软件的一份拷贝。如果现在软件开发商发现这款软件有Bug,要打补丁,或者要发布新的版本,那么每个用户都要自己给这款软件打补丁,或者重新安装这款软件。但假如这款软件是网页版的,那么只有软件开发商的机器上才安装了这款软件,只要他在自己的服务器上更新一下就可以了,用不着劳烦广大用户。
例三:其实还是有生活中的例子的,但这个例子只能说明重复的危害性,没法说明怎么消除这种重复。假设现在我们要复印一份文件。如果我们复印了一千份之后,发现文件有错误,那我们就欲哭无泪了……
我想了很久都没想到一个很好的生活例子。消除重复代码的必要性其实是由计算机软件
的易复制性导致的,而计算机以外的世界鲜有这么容易能复制的东西。因此我觉得这种例子还是在计算机世界中比较好找。(注:以下的话都是假设要讲给非专业人士听的,因此可能会有不严谨之处。)
例一:假如某人甲将自己电脑上的一份文件拷给了某人乙之后,发现这份文件有一个错误。这时就必须分别对甲乙两人电脑上的文件进行更正,也就是要更正两次(即使是先在一人的电脑上更正再拷给另一人也算更正两次)。假如这时又发现这份文件有错误,那就又要更正两次。如果这份文件拷给了很多人,那还要更正很多次,这个过程很麻烦。如果甲将这份文件设为共享,那每次发现错误就只要更正一次就行了。设置共享可能要花费些功夫,但是以后发现错误时就不用那么麻烦要修正很多次了。
例二:假如一款软件是单机版的,那么用户就要在自己的电脑上安装这款软件才能用。也就是说,每个用户的电脑上都会有这款软件的一份拷贝。如果现在软件开发商发现这款软件有Bug,要打补丁,或者要发布新的版本,那么每个用户都要自己给这款软件打补丁,或者重新安装这款软件。但假如这款软件是网页版的,那么只有软件开发商的机器上才安装了这款软件,只要他在自己的服务器上更新一下就可以了,用不着劳烦广大用户。
例三:其实还是有生活中的例子的,但这个例子只能说明重复的危害性,没法说明怎么消除这种重复。假设现在我们要复印一份文件。如果我们复印了一千份之后,发现文件有错误,那我们就欲哭无泪了……
相关文章推荐
- 消除重复代码
- 使用#include消除重复代码
- 消除重复代码的方法
- C# 消除重复字符串的代码
- C++编译重复代码消除
- .NET:用T4消除代码重复,对了,也错了
- .NET:用T4消除代码重复,对了,也错了
- 2.C#中通过委托Func消除重复代码
- .NET:用T4消除代码重复,对了,也错了
- 用T4消除代码重复,对了,也错了
- 如果消除重复代码?从Timer和TimerTask的封装说起
- 如何消除重复代码
- 使用样式消除重复代码
- 通过继承消除重复代码的简单示例
- Scala新手指南中文版 -第十篇 Staying DRY with higher-order functions(用高阶函数来消除重复代码)
- awk消除重复代码的方案1
- delphi2009——delphixe2,用匿名函数消除重复代码
- Android 勤用RXJava compose操作符消除重复代码
- 1.C#中通过委托Action消除重复代码
- 使用函数式编程消除重复无聊的foreach代码(Scala示例)