加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

如何写出让同事无法维护的代码?

发布时间:2019-06-25 01:09:33 所属栏目:建站 来源:黑客与编程
导读:对,你没看错,本文就是教你怎么写出让同事无法维护的代码。 一、措施定名 轻易输入的变量名。好比:Fred,asdf 单字母的变量名。好比:a,b,c, x,y,z(假如不足用,可以思量a1,a2,a3,a4,.) 有创意地拼写错误。好比:SetPintleOpening, SetPintalClosing。
副问题[/!--empirenews.page--]

对,你没看错,本文就是教你怎么写出让同事无法维护的代码。

怎样写出让同事无法维护的代码?

一、措施定名

  • 轻易输入的变量名。好比:Fred,asdf
  • 单字母的变量名。好比:a,b,c, x,y,z(假如不足用,可以思量a1,a2,a3,a4,….)
  • 有创意地拼写错误。好比:SetPintleOpening, SetPintalClosing。这样可以让人很难搜刮代码。
  • 抽象。好比:ProcessData, DoIt, GetData… 抽象到就跟什么都没说一样。
  • 缩写。好比:WTF,RTFSC …… (行使拼音缩写也同样给力,好比:BT,TMD,TJJTDS)
  • 随机大写字母。好比:gEtnuMbER..
  • 重用定名。在内嵌的语句块中行使沟通的变量名有奇效。
  • 行使重音字母。好比:int ínt(第二个 ínt不是int)
  • 行使下划线。好比:_, __, ___。
  • 行使差异的说话。好比混用英语,德语,或是中文拼音。
  • 行使字符定名。好比:slash, asterix, comma…
  • 行使无关的单词。好比:god, superman, iloveu….
  • 夹杂l和1。字母l和数字1偶然辰是看不出来的。

二、伪装诓骗

  • 把注释和代码交叉在一路。
  • 怎样写出让同事无法维护的代码?

  • 代码和表现纷歧致。好比,你的界面表现叫postal code,可是代码里确叫 zipcode.
  • 潜匿全局变量。把行使全局变量以函数参数的方法转达给函数,这样可以让人认为谁人变量不是全局变量。
  • 行使相似的变量名。如:单词相似,swimmer 和 swimner,字母相似:ilI1| 或 oO08。parselnt 和 parseInt, D0Calc 和 DOCalc。尚有这一组:xy_Z, xy__z, _xy_z, _xyz, XY_Z, xY_z, Xy_z。
  • 重载函数。行使沟通的函数名,可是其成果和详细实现完全没有相关。
  • 操纵符重载。重载操纵符可以让你的代码变得诡异,感激CCTV,感激C++。这个对象是可以把紊乱代码进步到一种艺术的情势。好比:重载一个类的 ! 操纵符,但现实成果并不是取反,让其返回一个整数。于是,假如你行使 ! ! 操纵符,那么,故意思的事就产生了—— 先是挪用类的重载 ! 操纵符,然后把其返回的整数给 ! 成了 布尔变量,假如是 !!! 呢?呵呵。

三、文档和注释

  • 在注释中说谎。你不消真的去说谎,只需在改代码的时辰不要更新注释就可以了。
  • 注释内里写空话。好比:/* add 1 to i */
  • 只注释是什么,而不是为什么。
  • 不要注释奥秘。假如你开拓一个航班体系,请你必然要担保每有一个新的航班被插手,就得要修改25个以上的位置的措施。万万别把这个事写在文档中。
  • 注重细节。当你计一律个很伟大的算法的时辰,你必然要把全部的具体细计划都写下来,没有100页不能罢休,段落要有5级以上,段落编号要有500个以上,譬喻:1.2.4.6.3.13 – Display all impacts for activity where selected mitigations can apply (short pseudocode omitted). 这样,当你写代码的时辰,你就可以让你的代码和文档同等,如:Act1_2_4_6_3_13()万万不要注释度衡单元。好比时刻用的是秒照旧毫秒,尺寸用的是像素照旧英寸,巨细是MB照旧KB。等等。其它,在你的代码里,你可以混用差异的度衡单元,但也不要注释。
  • Gotchas。陷阱,万万不要注释代码中的陷阱。
  • 在注释和文档中发泄不满。

四、措施计划

  • Java Casts。Java的范例转型是天赐之物。每一次当你从Collection里取到一个object的时辰,你都必要把其转回原本的范例。因些,这些转型操纵会呈此刻N多的处所。假如你改变了范例,那么你不必然能改变全部的处所。而编译器也许能搜查到,也也许搜查不到。
  • 操作Java的冗余。好比:Bubblegum b = new Bubblegom(); 和 swimmer = swimner + 1; 留意变量间的渺小不同。
  • 从不验证。从不验证输入的数据,从不验证函数的返回值。这样做可以向各人展示你是何等的信赖公司的装备和其余措施员
  • 不要封装。挪用者必要知道被挪用的全部的细节。
  • 克隆和拷贝。为了服从,你要学会行使copy + paste。你险些都不消领略别人的代码,你就可以高效地编程了。
  • 庞大的listener。写一个listener,然后让你的全部的button类都行使这个listener,这样你可以在这个listener中整出一大堆if…else…语句,相等的刺激。
  • 行使三维数组。假如你认为三维还不敷够,你可以试试四维。
  • 混用。同时行使类的get/set要领和直接会见谁人public变量。这样做的甜头是可以极大的挫败维护职员。
  • 包装,包装,包装。把你全部的API都包装上6到8遍,包装深度多达4层以上。然后包装出相似的成果。
  • 没有奥秘。把全部的成员都声明成public的。这样,你往后就很难限定其被人行使,并且这样可以和此外代码造成更多的耦合度,可以让你的代码存活得更久。
  • 分列和阻碍。把drawRectangle(height, width) 改成 drawRectangle(width, height),等release了几个版本后,再把其改归去。这样维护措施的措施员们很快就不大白哪一个是对的。
  • 把变量改在名字上。譬喻,把setAlignment(int alignment)改成,setLeftAlignment, setRightAlignment, setCenterAlignment。
  • 保存你全部的没有行使的和陈旧的变量,要领和代码。
  • Final你全部的子结点的类,这样,当你做完这个项目后,没有人可以通过担任来扩展你的类。java.lang.String不也是这样吗?
  • 停止行使layout。这样就使得我们只能行使绝对坐标。假如你的老大逼迫你行使layout,你可以思量行使GridBagLayout,然后把grid坐标hard code.
  • 情形变量。假如你的代码必要行使情形变量。那么,你应该把你的类的成员的初始化行使情形变量,而不是结构函数。
  • 行使全局变量。1)把全局变量的初始化放在差异的函数中,就算这个函数和这个变量没有任何关系,这样可以或许让我们的维护职员就像做侦探事变一样。2)行使全局变量可以让你的函数的参数变得少一些。
  • 设置文件。设置文件首要用于一些参数的初始化。在编程中,我们可以让设置文件中的参数名和现实措施中的名字纷歧样。
  • 膨胀你的类。让你的类尽也许地拥有各类痴肥和艰涩的要领。好比,你的类只实现一种也许性,可是你要提供全部也许性的要领。不要界说其余的类,把全部的成果都放在一个类中。
  • 行使子类。面向工具是写出无法维护代码的天赐之物。假如你有一个类有十个成为(变量和要领)你可以思量写10个条理的担任,然后把这十个属性别离放在这十个条理中。假如也许的话,把这十个种别离放在十个差异的文件中。
  • 紊乱你的代码。行使XML。XML的强盛是无人能及的。行使XML你可以把原来只要10行的代码酿成100行。并且,还要逼着别人也有XML。(参看,信XML得长生,信XML得自信)
  • 解析前提表达式。如:把 a==100解析成,a>99 && a<101
  • 学会操作分号。如:if ( a );else;{ int d; d = c;}
  • 间接转型。如:把double转string,写成new Double(d).toString() 而不是 Double.toString(d)
  • 大量行使嵌套。一个NB的措施员可以在一行代码上行使高出10层的小括号(),或是在一个函数里行使高出20层的语句嵌套{},把嵌套的if else 转成 [? :] 也是一件很NB的事。
  • 长代码行。一行的代码越长越好。这样别人阅读时就必要来往返回的
  • 不要过早的return。不要行使break,这样,你就必要至少5层以上的if-else来处理赏罚错误。
  • 不要行使{}。不要在if else行使{},尤其是在你重量地行使if-else嵌套时,你乃至可以在个中乱缩进代码,这样一来,就算是最有履历的措施员也会踩上陷阱。
  • 噜苏的封装。较量封装一个bool类,类内里什么都做,就是一个bool.
  • 轮回。万万不行用for(int i=0; i

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读