至今仍记得当时在思沃学院听到比较多的一句是:代码要遵循单一职责;函数不超过 15 行;最大全复杂度 3;文件最多多少行来着,记不清了。而这里我要说的是一个 64 行的 Api(长度还可以,毕竟项目比较大),我看了一周。
说实话,我真的是不想再看这个 Api 了。
一开始领了一张卡根据控制台找到了这个 Api,还有那么些许的开心,这么快就找到要写代码的地方了。万万没想到,我真的只是猜中了开头,这个 Api 真的太强大了。几乎我所做的任何操作,debug 都进入了这里。
遂找了个正在重构这里的“老人”给我讲了下这段代码的大致功能。这真是不讲不知道,一讲吓一跳。这个 Api 可是项目最最核心的 Api 了,没办法,这么多年,唯一会的也就是 Debug 了,反正就是不停的打断点,随机看想看的值,就这么着,终于在第三天完成了这张卡。天真的我以为我真的再也不用看这个 Api 了,事实证明,再一次猜中了开头......
接了个 BUG,又和这个 Api 有关,真的好想拒绝改这个 BUG,可是已经接了,还是试试吧,不行再说。
于是重新开始看这个 Api 了。
第一天下午改 BUG 的时候,Team leader 不断问我找到原因没?只能无奈的说:“没有”。然后继续通过 debug 来了解这个 Api 中调的各种 Service。
第二天开始各种问“前辈”、QA 业务,以致于后来每次经过“前辈”和 QA 旁边的时候,他们都以为我又要问这个 BUG 了。然而比较庆幸的是,终于经过多番询问找到了 BUG 的根本原因。随即将这部分功能的流程图画了出来。还记得这天 Team Leader 告诉我,这部分的代码你也看到了,想改那么快是不可能的;他其实自己是能改出来的,就是想让我锻炼一下。
终于在今天写了一个将近 1000 行的 Api Test 之后,再次通过各种 debug,总算改完了这个 BUG。你以为这就完了吗?并没有,又挂了一批测试。
该修测试去了。
The End ~
21 天写作训练,第 15 天 ing