如何编写不可维护的代码

类别:Java 点击:0 评论:0 推荐:

如何编写不可维护的代码

【翻译:How To Write Unmaintainable Code

一般原理

    为了刁难维护程序员,你必须明白他是如何思考的。他搞到了你的天才般的程序,他没有时间去读所有的代码,更别想理解它,他只希望快速找到他想修改的地方,修改你的代码还不会发生其他意想不到的副作用。

让他通过卫生纸筒子去看你的代码,让他一次只能看小小的一部分,你必须保证他在做这种工作时,永远不能得到一张全景图。你要千方百计地让他难以找到他在查找的东西。最最重要的是,你要千方百计地让他认识到,忽略(ignore)任何东西都是不安全的。

程序员们常常被哄骗着安心于规范。你要在每时每刻通过巧妙的违反规范,迫使他用放大镜去读你的每一行代码。

你可以从语言的每一个特性(feature)上获得灵感,产生不可维护的代码,当然只是恰当的滥用。

 

我会介绍一些技巧,告诉你如何编程。让你的后继者赞叹这些代码怎么这么难以维护,以至于花几年的时间都不能做最简单的修改。更进一步,如果你虔敬地遵循这些规则,你会确保你的饭碗,因为没有除你之外的任何一个人能够承受维护你的代码的炼狱。嗯,再说了,如果你虔敬地遵循这些规则,可能你自己也不能维护这些代码。

你不想做得过火了,你的代码不应该看上去毫无维护的希望,否则它们就可能陷入重写或者重构(refactoring)的危险之中。

命名术

在你编写不可维护代码时,大量的技巧在于变量和方法命名的艺术中。编译器完全不理会这种事情,这就给了你一个巨大的自由创作空间,去迷惑维护程序员。

1.      《Baby的20001个名字》新用法

       买一本婴儿取名的书,你就永远不愁找不到变量名了。Fred就是一个好名字,有容易输入。如果你喜欢容易输入的变量名,试一试adsf或aoeu。

2.      单字符变量名

      如果你把变量取名为a,b,c,则不可能用简单的文本编辑器搜索它们。而且,没有人能够猜出它们代表什么。如果有人想打破从FØRTRAN语言以来,我们捍卫的使用i、j和k作为变量的传统习惯,即用ii,jj和kk取代它们,则告诉他们西班牙宗教裁判所是如何对付异教徒的。

3.      创造性错误拼写

如果你不得不使用描述性的变量和方法名,misspell它们。通过误拼一些变量和方法名,而在其他地方有正确的拼写(例如SetPintleOpening ,SetPintalClosing),我们有效的阻击了使用grep(regex工具)或 IDE 搜索技术的企图。它有令人惊讶的功效。同时,我们还可以增加一些国际化的风格,比如在不同的场合(theatres/theaters)使用tory or tori的拼写方式。

4.      要抽象

在变量和方法名中,大量的使用抽象词汇,如it, everything, data, handle, stuff, do, routine, perform和数字,比如routineX48, PerformDataFunction, DoIt, HandleStuff,还有do_args_method。

5.      A.C.R.O.N.Y.M.S.acronyms是缩写。使用它们以保持代码的简洁。真正的程序员不定义缩写,他们非常天然的理解它们。
……

本文地址:http://com.8s8s.com/it/it11485.htm