你见过最烂的代码长什么样子?

点击上方关注 “终端研发部

设为“星标”,和你一起掌握更多数据库知识

之前刚入公司,单个方法代码行数3000+(680 ~ 4297),里边调用的方法也是千行左右(3049~3826等),让人头皮发麻,各种废弃逻辑、各层的逻辑堆在一起,各种迷魂阵,花了半个多月整理封装,人都麻了

我见过一个类似的代码,一个函数1800行,好几十个if else我都要疯了。每个if里其实都只是读取一个字符串的值。我当时考虑不用switch做重构,而是把每一个if else映射成一个值,给每个值分配一个处理函数。这样就先构造一个值到函数指针的映射表,然后查表就可以了。

其实一个函数两千多行,不算多,我曾经见过8w行的函数。一个项目里好多8w行,缩进可以让你看不到首字母(总宽600列,注意是列)。当时想,要我接手这个项目。要么给我时间抽取有用的重写;要么我就赖着,直到找到下家。

那个Activity的工作流维护起来好费劲,话说回来,谁接手谁费劲。各种if这还好。我见过一个几千行函数,里面各种嵌套的#if,ifdef ifndef的宏定义判断。source insight一解析到这个函数所在的文件就不太正常,连颜色都显示不对了,跟用记事本看代码一样

各种if这还好。我见过一个几千行函数,里面各种嵌套的#if,ifdef ifndef的宏定义判断。source insight一解析到这个函数所在的文件就不太正常,连颜色都显示不对了,跟用记事本看代码一样,最后果断选择离职了

回想了一下我最近的这个项目,突然领悟到了一些事情。

其实,代码也不是故意烂的。我敢相信,任何一个人都有写出好代码的能力,甚至每个人第一版代码就很优质,可是项目不断添加新需求,新需求一般时间都很紧迫,导致没有时间回看以前的逻辑,就只好在现功能上不停地追加,以达到快速交差的目的。

还有前段时间一个新项目,全部都是我写的,本来都快交差了,但是突然要改需求,于是不停地增、改东西,折腾了一周以后,我完全不敢看以前的代码了

看到这里我就想到我大四的时候用MATLAB写的算法,一千多行一个函数,或者说连函数都没有,就是脚本。两个步骤写在两个文件里,连参数传递都不用写,第一步生成的数据留在workspace里给第二步用。毕业的时候把工作成果给老板刻了盘,希望永远没有人打开看

话说回来,重构和梳理代码逻辑其实是非常有成就感的事情, 从一团乱麻里渐渐梳理出层次逻辑,并列的逻辑,删除那些逻辑上永远走不到的代码段。。。 

然后把写死的switch和if 嵌套 变成表驱动,把重复逻辑提取出来, 一句调用替换掉几十处冗余代码,看着复杂的底层逻辑被封装到函数里面, 主体逻辑变得清晰可阅读。。。 其实是非常棒的体验。

一边写一边骂前任程序员。。。啧啧啧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

androidstarjack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值