代码大全2
作为计算机专业学生,之前写代码总抱着“能跑就行”的心态——变量名随便起、循环嵌套三四层、出了bug靠printf瞎猜。直到啃完《代码大全2》后半本书,才突然明白:原来“好代码”和“能跑的代码”之间,差的是这些底层逻辑。
最戳我的是“语句组织”那一章。书中说“循环嵌套不超过两层,否则可读性会断崖式下降”,这让我想起大二做课程设计时的尴尬:为了实现学生成绩多条件筛选,我写了四层for循环,代码缩进像阶梯一样,期末复习时回头看,自己都看不懂哪层对应哪个筛选条件。后来照着书里的方法拆代码——把“按班级筛选”“按分数段筛选”拆成两个独立函数,再用一个主函数调用,不仅嵌套层级降到一层,上次小组作业中,队友只用5分钟就看懂了我的代码,比之前节省了半个多小时沟通时间。
变量命名的技巧也让我少走了弯路。之前我总爱用a、b、c当变量名,美其名曰“省时间”,结果一次数据结构课作业,我写链表反转时,把“当前节点cur”写成了“c”,调试时盯着屏幕半小时,才发现是把“c.next”错写成了“c.pre”。书中强调“变量名要能说明‘是什么’和‘为什么存在’”,现在我写代码会刻意用“studentId”“scoreThreshold”这类命名,哪怕多打几个字母,调试时却能少花很多时间——上周写Java实验报告,全程没因为变量名混淆卡壳,提前半小时就完成了任务。
还有“调试”章节提到的“二分法定位bug”,彻底改变了我之前“从头到尾逐行看”的低效方式。上次做嵌入式课程设计(用STM32控制LED灯),程序烧进去后灯不亮,我一开始从main函数逐行排查,查了一小时没找到问题。后来想起书里说的“先定位bug在哪段代码”,我在初始化函数和控制函数中间加了个测试打印,发现初始化函数没执行,最后才发现是GPIO口配置时少写了一行使能时钟的代码。前后对比,调试效率直接翻了倍。
原来老师总说“你的代码不规范”,不是吹毛求疵——《代码大全2》后半册讲的这些细节,本质是让代码“能被人看懂、能快速修改”。对我们学生来说,现在养成这些习惯,不仅能少在课程作业里踩坑,以后实习写代码时,也能避免“自己写的代码,一周后就看不懂”的尴尬。

浙公网安备 33010602011771号