作者
阿木
责编
伍杏玲
编写除了自己没人能看懂的代码,是一种怎样的体验?
下面由作为资深挖坑程序员的我,手把手教大家这是怎么做到的?如果各位可以在接下来的时间多加练习,所谓青出于蓝胜于蓝,相信各位不但可以写出别人无法维护的代码,还可能在有朝一日,甚至能技艺炉火纯青地写出自己都维护不了的代码。
编写无法维护的代码说难其实并不难,核心要点就是和编码规范反其道而行之,如果在此基础上再添加一些自己琢磨出的心得的话那就更加完美了。
掌握了这个要点还不够,还要注意一个原则:不要让我们的代码一眼看上去就无法维护,格式之类的还是要注意些的,我们要追求的不是这种肤浅的表面上的无法维护,我们要的是实质是无法维护的。
要是别人一眼就能看出你的代码无法维护,那你的代码就存在需要重写或者重构的风险了,那不成了前功尽弃亲者痛,仇者快的事情了嘛。
了解清常规编程的思维方式再下手!
《孙子兵法》有云“知己知彼,百战不殆”,假如我们要想从心理上彻底击败后续的代码维护人员,我们必须明白常规编程中的一些思维方式。
各位先想下,如果接手程序的是我们自己,而且代码量比较大,一般我们是没有时间去从头到尾一行一行地读一遍的,更不要说能理解代码了。
为了能尽快地上线交差,程序员常见的做法是根据需求,先快速找到代码中需要改动的那一部分逻辑,然后对这部分的代码进行修改、测试。这种修改方式一次只能看到代码的一小部分,管中窥豹。
所以我们要做的是确保让代码维护人员永远看不到我们写的代码的全貌,要尽量保证代码维护人员找不到他想要找到的那部分代码。这还不是最关键的,最关键的是要让修改者知道自己没有忽略任何的东西。
每一个我们精心设计的这些小陷阱都会迫使代码维护者像用放大镜似的,仔细地阅读我们的每一行代码。
有些同学可能觉得这很简单,认为只要按照上文中提到的反编程规范原则来进行即可。但是实际操作起来并没有这么简单,还需要配合我们的精心误用才可。下面我们就对常用的一些核心技能娓娓道来。
第一招:一本正经地乱用注释
这一部分我们先了解下注释的正常用途:注释是用来帮助开发者理解程序的,尤其是对于后来的开发者,通过注释可以更快的了解代码的实际作用。
正常情况下代码注释的原则一般是只在需要注释的地方进行注释。这是一句很正确的废话,解释起来就是很明显就能看懂的代码就不要去注释的了,毕竟看注释也是需要花费时间的。
另外一个原则就是在注释中注明代码的作用需要和代码的实际作用是一致。
在实际工作中,在对代码进行修改后一定要连同代码的注释也一起进行修改。关于注释的其他的一些作用我们在此不再多说,光是这些就已经足够我们用的了。
如何利用代码注释写出让人无法理解的代码呢?
一、多整没用的
这块我分了两种情况来描述,两种情况对应两种处理方式,实用性比较强。
明显型注释让维护者浪费时间看显而易见的注释。
这部分的原则是维护者看完注释后觉得“代码比注释容易读多了”,目的就是误导读代码的人。维护者在看代码时,上眼一看代码很清晰,但又一看竟然还有注释。
此时读代码的人心里肯定是要嘀咕下:看来这代码没我想的这么简单。
然后我们的注释要写的长一些,最后是要阅读者看不懂,改的时候犹豫不决。
如果有余力的话可以在注释中教维护者怎么编程,这种一般杀伤力要比上面写的会高一些,程序员最反感的可能就是你要教他怎么编程了,尤其是教他这么简单的编程,杀伤力加倍。
下面看个例子:
publicclassProgram{staticvoidMain(string[]args){/*Thisisaforloopthatprintsthe*wordsIRule!totheconsolescreen*1milliontimes,eachonitsownline.It*ac