吉林省微圈互联网科技有限公司
  • 13331687022
湖州市网站建设 - 老司机教你如何写出没人敢维护的代码!-微圈儿
作者:微圈儿 / 2019-11-07 09:44 / 浏览次数:

程序员 代码 黑客

【网站建设需要多少】本文来自于微信大众号顺序人生(ID:coder_life),作者:阿木,微圈儿经受权转载。

【网站建设价格多少】编写除了本人没人能看懂的代码,是一种怎样的体验?

【网站建设教程培训】上面由作为资深挖坑顺序员的我,手把手教大家这是怎样做到的?假如各位可以在接上去的工夫多加练习,所谓后来居上胜于蓝,置信各位不但可以写出他人无法维护的代码,还能够在有朝一日,甚至能技艺出神入化地写出本人都维护不了的代码。

【金方时代网站建设】编写无法维护的代码说难其实并不难,中心要点就是和编码标准反其道而行之,假如在此根底上再添加一些本人揣摩出的心得的话那就愈加完满了。

【新网站建设】掌握了这个要点还不够,还要留意一个准绳:不要让我们的代码一眼看上去就无法维护,格式之类的还是要留意些的,我们要追求的不是这种浅薄的外表上的无法维护,我们要的是本质是无法维护的。

要是他人一眼就能看出你的代码无法维护,那你的代码就存在需求重写或许重构的风险了,那不成了前功尽弃亲者痛,仇者快的事情了嘛。

理解清惯例编程的思想方式再下手!

《孙子兵法》有云“知己知彼,百战不殆”,假设我们要想从心思上彻底击败后续的代码维护人员,我们必需明白惯例编程中的一些思想方式。

各位先想下,假如接手顺序的是我们本人,而且代码量比拟大,普通我们是没有工夫去从头到尾一行一行地读一遍的,更不要说能了解代码了。

为了能尽快地上线交差,顺序员罕见的做法是依据需求,先疾速找到代码中需求改动的那一局部逻辑,然后对这局部的代码停止修正、测试。这种修正方式一次只能看到代码的一小局部,管中窥豹。

所以我们要做的是确保让代码维护人员永远看不到我们写的代码的全貌,要尽量保证代码维护人员找不到他想要找到的那局部代码。这还不是最关键的,最关键的是要让修正者晓得本人没有疏忽任何的东西。

每一个我们精心设计的这些小圈套都会迫使代码维护者像用缩小镜似的,细心地阅读我们的每一行代码。

有些同窗能够觉得这很复杂,以为只需依照上文中提到的反编程标准准绳来停止即可。但是实践操作起来并没有这么复杂,还需求配合我们的精心误用才可。上面我们就对常用的一些中心技艺娓娓道来。

第一招:道貌岸然地乱用正文

这一局部我们先理解下正文的正常用处:正文是用来协助开发者了解顺序的,尤其是关于后来的开发者,经过正文可以更快的理解代码的实践作用。

正常状况下代码正文的准绳普通是只在需求正文的中央停止正文。这是一句很正确的废话,解释起来就是很分明就能看懂的代码就不要去正文的了,毕竟看正文也是需求破费工夫的。

另外一个准绳就是在正文中注明代码的作用需求和代码的实践作用是分歧。

在实践任务中,在对代码停止修正后一定要连同代码的正文也一同停止修正。关于正文的其他的一些作用我们在此不再多说,光是这些就曾经足够我们用的了。

如何应用代码正文写出让人无法了解的代码呢?

一、多整没用的

这块我分了两种状况来描绘,两种状况对应两种处置方式,适用性比拟强。

  • 分明型正文

让维护者糜费工夫看不言而喻的正文。

这局部的准绳是维护者看完正文后觉得“代码比正文容易读多了”,目的就是误导读代码的人。维护者在看代码时,上眼一看代码很明晰,但又一看居然还有正文

此时读代码的人心里一定是要嘀咕下:看来这代码没我想的这么复杂。

然后我们的正文要写的长一些,最初是要阅读者看不懂,改的时分优柔寡断。

假如不足力的话可以在正文中教维护者怎样编程,这种普通杀伤力要比下面写的会高一些,顺序员最恶感的能够就是你要教他怎样编程了,尤其是教他这么复杂的编程,杀伤力加倍。

上面看个例子:

image.png

  • 废弃代码正文

字面意思曾经很清楚了,正常状况下代码中不必的局部我们普通会正文掉或许直接删除掉,即便这段代码未来会运用到也不影响,可以从版本控制工具中再找回来。

针对性的做法就是给删掉的代码加个长长的正文,写明这段代码为什么会被正文起来,也向维护者传达了一个信息,即这段代码不是被”废弃”的,而是”暂时”先不必。

这样做的杀伤点就在,假如只正文了代码没加正文阐明,依据实践经历大家少数会直接略过被正文的代码,而给代码加了正文后看代码的人能够就要看看这个正文了,不然会漏掉什么关键信息,毕竟代码不是他写的。

样板代码:

image.png

二、这个中央未来会修正

这种正文就是我们常常提到的“TODO”型正文。正常状况下TODO正文并非一无是处,比方在初始化项目的时分TODO正文还是十分有用的,到项目release 时普通是建议去掉的,假如必需要留着普通需求写明在详细什么日期会处置掉。普通是不引荐TODO型正文临时存在于项目的代码中,正常的处置逻辑普通是遵照有Bug尽快Fix,无Bug则去掉正文。

经过下面的描绘置信大家曾经晓得这块详细要怎样应对了。团体建议是关于有待修正的多写点TODO正文,且不注明更改的缘由以及方案更改的工夫,这样前面的维护人员在看的时分能够连这块究竟是不是曾经改正了都搞不清楚,所以杀伤效果也是有一些的。

样板代码:

image.png

三、错误正文信息

这局部的意思是形成代码和正文的不婚配,也就是正文的信息不正确。 

我们要做的就是改完代码后不改正文就行了,此种方式比拟省事,额定任务一点也不必多做,但是略微有些代价,需求留意的是最好是在此类正文中加个特殊的标志,避免本人后续看的时分把本人也绕出来。

样板实例这块就不必加了吧,场景太多了,大家在本人的一亩三分地上耕作时临场发扬即可。

四、讲故事

复杂说来就是写明这段代码为什么要这样写,当然一定不是单纯的缘由。除了缘由普通建议在正文中写受骗时的状况,比方某年某月和某人在某地讨论了这个成绩,某人说这个成绩应该怎样处置,你说这个成绩不该这样处置应该那样处置,后来某某人又参加了讨论,某某人对俩的讨论做了某某的评价,最初决议要用如今的代码去完成这块的功用。

总之,准绳就是把事情的细节描绘清楚,越细越好。有些同窗能够会建议将当天的天气状况也写上,还有讨论中那个气死人的S*名字也要带上,我团体以为天气可以酌情添加,但写上S*名字是不太鼓舞的,毕竟同事一场,要互相保护的,大家依照本人公司的实践状况来选择详细的处置方式吧。

样板代码:

image.png

五、不要写缘由

依照正文的标准,正文时不但要解释顺序的表述的意思,更重要的是写明为什么写,即代码这么写的缘由是什么。

这样应对之策也曾经不言而喻了,关于复杂顺序,比方一些特殊的边界条件判别,只写下顺序的字面意思,详细边界值判别为什么要这样写,为什么是这个值可以疏忽掉,让维护的人纵情去猜吧。

六、琐碎

在这需求注明的是大局部顺序正文普通是用不到这种状况的,普通是引荐放在一些复杂算法的解释上,越是复杂的算法越是引荐,准绳就是把这局部应该写到文档中的内容写到代码中。

一定要把算法的一切的详细设计都写上,正文内容分段落,段落之间要分级,每个段落建议加上编号,这样就根本可以保证代码的正文和文档的内容坚持分歧。后续的维护看到这样的正文的时分根本可以保证头大一圈,假如此类正文存在多处的话效果更佳。

鉴于样板示例中正文篇幅太长就不加示例了。

七、单位成绩

单位这局部和详细的业务场景相关,比方工夫相关的普通会有毫秒、秒、分钟、小时、天、月、年等,触及尺寸的场景如像素、英寸等,触及文件大小的场景如字节、KB、MB、GB等。

这一类的代码中我们的准绳是不对单位停止正文,尽管运用,假如可以在代码中各种单位混用,那自然是愈加优秀。

比方在关于文件处置的场景中,KB、MB、GB多个单位混合运用,这样后来的维护人员要想搞懂这局部代码中单位的真正含义就要下一番功夫了。

依照我们的正常逻辑,前面的人要想改这局部的代码的逻辑首先要先弄懂各个数据的单位,搞清楚之前一定是不敢随意修正的,普通这种状况只要一种处理方法那就是一遍遍的调试、测试顺序来推算各个数据实践的单位,破费的工夫自然是相当的多。

八、恫吓

这一招可以说是杀手锏级别的正文,可以在顺序中加一局部可有可无的代码,而且是很分明可有可无的那种,然后给这段顺序加个正文,正文中写明“千万不要正文掉或许删除这段代码,否则顺序会呈现异常!!!”,需求留意的是不要解释会呈现什么样的异常。

这样维护人员在看到这段代码的时分一定首先会联想到本人以前看过的一些文章,并深信这段“废话代码”一定是不能删除的。代码中假如存在多处这种正文的话效果更佳。

【微圈儿业务】网站建设、网站设计、服务器空间租售、网站维护、网站托管、网站优化、百度推广、自媒体营销、微信公众号
如有意向---联系我们
热门栏目
热门资讯
热门标签

网站建设 网站托管 成功案例 新闻动态 关于我们 联系我们 服务器空间 加盟合作 网站优化

备案号:京ICP备15012422号-2 

公司地址:吉林省长春市朝阳区西安大路建和街 咨询QQ:19812828 手机:13331687022 电话:13331687022