如何编写不可维护的代码
程序设计
编写不可维护代码最重要的原则就是将同一事实尽可能的放在不同的地方,尽可能的用不同方法去描述它。
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;
(待续)