如何编写不可维护的代码

 
如何编写不可维护的代码
 
【翻译: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是缩写。使用它们以保持代码的简洁。真正的程序员不定义缩写,他们非常天然的理解它们。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值