他说着有打开了另外一段日志宝的代码说道:“你看我这段,我的这段嵌套分支也很多,但是这🈡都不是一次🔥🂱写出来的,而是每次增加新功能时就🙔开个新的分支。”
“对于每一个分支的增加,我都不觉得需要重构整段代码,因为我当🍏时只想用最快的时间,把自己要做🀺🁸的事情😝做完,于是代码质量变得越来越低。”
“昨天晚上,我就把这段代码进行💣📭了重构,将三百二十行,变成了一百行,这样就不担心启明星的工程师们🔥🂱看晕头了,也节省了大量的资源。”
汪永丰看着两段代码😕🁍,点了点头说道:“区别真的很大,但是功能相同。那应该怎么重构代码呢?”
柳诚接过了柳依诺递过来的水杯,说道:“一般情况下,三个分支就可以重构为一个判断(switch),如果一个判断的分支🔈⚔👄大于10个,就要考虑写成表(fi🅡g)去驱动,专门写一个函数根据配置写一个路线图(mapping)。”
“如果是映射逻辑复杂,使用🁷频🖌👍率较高,就专门写一个数据库规则引擎(ruleeng🙦🌦ine)来调用。”
汪永丰还是有点懵,柳诚又亲🁷自演示了一遍,有些犹豫的说道:“就🍏是类似这种,重构代🙦🌦码是个费力不讨好的活儿,但是也是一个必做的工作。”
“好厉害!🝞🌒”汪永丰眨着眼睛,目瞪☈♄口呆的说道。
柳诚示意这没什么,笑着说道:“大部分都是这样,我曾经接手过一个三十几🞸层的ifelse套ifelse模块,把我差点干崩溃。”
“我对这个模块,做评审复盘的时候,发现第一个程💂🏄🗣序员,只写了一🍏层,后来每增加🗪一个需求,逻辑分支扩张到了三十多层,就没人愿意重构了。”
“重构错了,还得背锅。”
“我那时候就劝自己,编程嘛,最重要的就是看得开,我加👋了一层,测试,提交📒🚓,下班。”
汪永丰十分好奇的问道:“后来呢?”
柳诚满是🗯🟇回忆的说道:“后来这个模块,在启动的时💂🏄🗣候,会被执行19.6亿次,开启这个模块的时间长达六分钟,而且所有人都不知道问题出在哪里。”
“19.6亿次?”汪永丰拍了拍额头。
柳诚站起身来,笑着说道:“是🖌👍一个游戏在线服务的子模块,你知道,19.6亿次的无用运算,一遍又一🔥🂱遍的在用户的CPU上上演,那🜜🂿🔥场面,啧啧。”
“后来呢?”汪永丰瞪着眼睛,问道。
柳诚笑眯眯的说道:“后来呀,我偷偷的改了呀,还能咋样,要是被公司🙙发现,我岂不是🙦🌦要被炒鱿鱼?”
人生的路上,有很多的经验,都很一个坎坷一个坎坷,跨过去之后,才恍然大悟,当初就不该💸犯这样的错误。😝
自那⚐🐤🁴以后,柳诚过手的大大小小的模块,都会用当初师父交待的方法,进行一遍遍的重构,背锅不可怕,发生不可挽回的错误才是最可怕的。
“柳工,你这🚾😽么厉害,还有功夫谈恋爱🎢💮啊。”汪永丰十分苦恼的⛢🜃⛉说道:“我学都学不过来,每天所有的时间都用完了,还是不够用。”
柳诚站起身来,笑眯眯的说道:“谁让我天赋异禀👷🍜。💂🏄🗣”
“对了,你现在不要过分追求什么代码精简、🈔♦简洁,而是踏踏实实的🍏做完项目,一个程序员不要操着C🀺🁸TO的心。”
“在规定的时间内,把规范的事做好,等到你自己带项🞣🖁🏬目的时🞑候,再考虑这些。”
汪永丰用力的点了点头说道:“知道了。”