如何写不可维护的代码-程序设计篇

原创 2003年03月08日 15:03:00

如何编写不可维护的代码


程序设计

编写不可维护代码最重要的原则就是将同一事实尽可能的放在不同的地方,尽可能的用不同方法去描述它。

1,编写可维护的代码的关键就是,将同一事实只放在同一地方。当你改变主意的时候,你只需要改变一个地方。整个程序也确保会仍旧工作。因此,编写不可维护代码的关键就是一遍又一遍的指定同一个事实,尽可能的把它放在不同地方,尽可能的用不同方法去指定它。所幸的是,象java一类的语言使得编写这类代码并不容易,举例来说,改变一个广泛使用的变量的类型几乎是不可能的。因为所有的转化函数不再工作,相关的临时变量的类型不再合适。进一步的,如果这个变量显示在屏幕上,所有相关的显示和代码必须手工修改。Algol语言家族(包括c,java)用不同的语法来将数据存储在array,hashtable,文件和数据库中。在类似ABundance的语言中以及某种程度在Smalltalk中,语法是相同的。只是声明改变了。利用好java的不称职。将你知道会对于ram变得太庞大的数据放进一个array.那么维护代码的程序员将会有一件可怕的工作,将array转换到文件。相类似的,将小文件存到数据库中,那么维护程序员将会享受到为了调整性能而将它们转换为array的乐趣。

2,java的类型转换
java的类型转换机制是神的礼物。你能没有罪恶感的使用它,因为java语言需要它。每当你把一个object从Collection中取出时,你必须把它转换到原先的类型。因此必须在一堆地方指定变量的类型。如果类型后来变掉了,所有的类型转换都必须改写。如果有个倒霉的维护者没有能把它们全都抓出来的话(或者是改变了太多回),编译器也许能,也许不能抓出他。相类似的,如果一个变量的类型从short变到int的话,所有的相关的(short)全都必须变成(int)。

3,利用java的冗余
java坚持你必须制定每个变量的类型两次.java程序员已经习惯于这种冗余,如果你把两个类型弄的很相似的话,他们不会注意到。如同下面这个例子。
Bubblegum b = new Bubblegom();
不幸运的是,++运算符的流行使得很难摆脱这样的伪冗余代码

swimmer = swimner + 1;

(待续)

如何编写无法维护的代码(现实中有的程序员就是这么干的)

让自己稳拿铁饭碗 ;-) – Roedy Green(翻译版略有删节) http://blog.jobbole.com/80241/ 简介 永远不要(把自己遇到的问题)归因于(他人的)恶意,这...
  • huangkangying
  • huangkangying
  • 2014年11月27日 20:36
  • 18384

如何写出高效可维护并且规范的js代码

设计原则: 1.原子思想:即每个function就做一件事; 2.归纳思想:将同一类的操作,全部整合到一起; 3.方便维护:可以便于后来人进行快速维护; 4.方便拓展:即可以根据每个不同的项目进行不...
  • liuwenbiao1203
  • liuwenbiao1203
  • 2016年10月12日 10:33
  • 1461

如何提高代码可读性、可维护性

高质量代码的三大要素: 可读性、可维护性和可变更性 做好代码规范、提高代码质量,能显著增强代码的可读性、可维护性和可变更性。努力提高代码的读写可维护性,是做好代码规范的必要非充分条件。代码规范和架...
  • zm1_1zm
  • zm1_1zm
  • 2016年07月21日 16:05
  • 2880

系统性训练,励志刷完挑战程序设计竞赛-代码整理1~42【初级篇】

1~10   2014年9月1日 看来以后用cpp比java要舒服的多~话说第一次这么长的写cpp。还是比较喜欢的,看来语言是工具一点也不假。虽然很多题目以前打过了数遍,还是多实践,细节方面更加优美,...
  • superMarss
  • superMarss
  • 2014年09月06日 21:34
  • 926

系统性训练,励志刷完挑战程序设计竞赛-代码整理103~134【初级篇】

2014年9月6日搞到这边吧,初级的刷完了,先停停,中级篇看了下目录,以前都刷过,只是没有系统的刷,准备隔几天再刷,看看java面试宝典去。预计花费10天搞完。囧~...
  • superMarss
  • superMarss
  • 2014年09月06日 22:10
  • 858

系统性训练,励志刷完挑战程序设计竞赛-代码整理68~103【初级篇】

/* dp求解组合:从不同数量的n种物品选择m个的组合总数 3 3 1 2 3 10000 6 */ #include using namespace std; const int MAX...
  • superMarss
  • superMarss
  • 2014年09月06日 22:06
  • 1073

程序设计修养,对于想把C代码写的漂亮和可读性更高的人而言很不错

  • 2010年05月21日 20:45
  • 476KB
  • 下载

实用算法的分析与程序设计——递归法(实例,代码)(划分问题、0-1背包问题)

设有一个未知函数f,用其自身构成的已知函数g来定义:f(n)=g(n,f(n-1)) n>0 f(0)=a n=0为了定义f(n)必须f(n-1)……用自身的简单情况来定义自己的方式...
  • oMengLiShuiXiang1234
  • oMengLiShuiXiang1234
  • 2015年05月09日 10:39
  • 1084

南京林业大学“未来之星”第六届程序设计大赛(决赛)试题A 参考代码

A Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submissi...
  • ke7in1314
  • ke7in1314
  • 2014年06月09日 10:40
  • 1287

2016年第七届蓝桥杯C/C++程序设计本科B组省赛 快速排序(代码填空)

快速排序 排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。 其思想是:先选一个“标尺”, 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于它。 这样...
  • u014552756
  • u014552756
  • 2016年03月21日 14:01
  • 3040
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何写不可维护的代码-程序设计篇
举报原因:
原因补充:

(最多只允许输入30个字)