“结对编程”。作者在 “成功运用结对编程的关键” 一节里,列了 10 条准则,每一条都戳中了 “结对容易踩的坑”。比如 “不要让结对编程变成旁观”,这是我自己实践过才懂的痛 —— 上次和同学结对做一个小项目,他负责敲代码,我坐在旁边看,刚开始还能跟上,后来他敲得越来越快,我就成了 “摆设”,最后项目出 bug,我都不知道问题在哪。后来看到作者说 “不敲代码的人要主动分析逻辑、提优化建议,比如‘这里用函数封装会不会更简洁’‘变量名要不要改得更清晰’”,才明白 “结对不是‘一人干活一人看’,而是‘两个人同步思考、互补短板’”。后来再结对时,我和队友约定:每写 30 分钟就换一次角色,不敲代码时拿着笔记本记 “待优化点”,比如 “这段循环可以用 foreach 替代”“这里要加注释说明边界条件”,最后效率比上次高了一倍,还少了很多低级 bug。
还有几条准则让我印象很深。比如 “不要强迫在简单的问题上用结对编程”—— 作者说 “比如写一个简单的登录接口,一个人 1 小时能搞定,结对反而会因为‘讨论细节’浪费时间”。之前我和队友为了 “完成结对任务”,连 “写一个打印函数” 都要结对,结果花了 40 分钟,比自己写还慢,现在才明白 “结对适合复杂问题,比如核心算法实现、多模块联调,简单任务单独做更高效”。另外 “避免新手组合” 也很关键 —— 作者解释 “两个新手结对,容易陷入‘都不懂却互相误导’的困境,比如都不知道‘内存泄漏怎么排查’,讨论半天也没结果”,这点我也有体会:之前和另一个刚学编程的同学结对,卡在 “指针引用错误” 上,两个人查了 1 小时资料都没解决,后来找了个有经验的学长点拨,5 分钟就找到问题,这才明白 “新手最好和有经验的人结对,能更快学到方法”。
再谈 “软件工艺” 的核心 ——“首先为人写程序,其次才是为机器”。这句话在书中反复出现,比如讲 “注释” 时,作者说 “注释不是‘解释代码做了什么’,而是‘为什么这么做’”;讲 “变量名” 时,说 “不用怕变量名长,‘user_login_status’比‘uls’好懂 10 倍”。我后来改了自己的编程习惯:写注释时会加 “设计思路”,比如 “这里用链表而非数组,是因为后续需要频繁插入数据”;变量名不用缩写,哪怕长一点也要清晰。上次队友看我写的代码,说 “不用问你就能看懂逻辑”,这才真正体会到 “为人写程序” 不是口号,而是能让协作变简单的实际行动。
另外,书中关于 “编程语言选择” 的建议,也解决了我之前的困惑。之前总纠结 “该学 Python 还是 Java”“要不要同时学多门语言”,作者在 “深入一门语言去编程,不浮于表面” 一节里说:“与其‘每门语言懂一点皮毛’,不如‘精通一门后再拓展’—— 比如先把 Java 的‘面向对象思想’吃透,再学 Python 时,很容易理解‘类与对象’的共性”。我现在的计划是:先把 Python 学透,比如掌握 “装饰器”“生成器” 这些核心特性,完成 1-2 个完整项目(比如个人博客、数据可视化工具),再去了解 Java 的 “多线程”“Spring 框架”,这样比 “同时学两门却都不精通” 更扎实。
读完这部分最大的感受是:《代码大全》讲的不只是 “怎么写代码”,更是 “怎么用工程思维做编程”—— 从结对协作到代码可读性,每一点都是为了 “让软件开发更高效、更可持续”,这可能就是它能成为经典的原因。
如果还想进一步补充,比如针对 “结对编程的具体流程”“某门语言的学习计划” 展开,或者增加 “书中其他章节的阅读感悟”,都可以告诉我。要不要我帮你整理一份 “《代码大全》实践行动手册”,把书中的核心观点对应成可落地的编程习惯(比如 “变量命名规范”“结对编程步骤”),方便你后续对照执行?