- Published on
【代码整洁之道】编程的“知”与“行”
- Authors
- Name
- 小土刀
- @wdxtub_com
在武学中,常说“习艺之要有二:知和行。”意思很简单——要想练成一门技艺,一方面得知其理、懂其法,另一方面得反复练习、磨其形。知是指南针,行是双脚。知不能替代行,行也不能无知而动。
如果说代码是一种技艺,那么《整洁代码》就是程序员修行路上的“内家心法”。只是这门心法,不只教你写好一段代码,更是引导你成为一个真正对代码“有敬畏心”的人。
一、知其所以然:写代码不只是写功能
在项目节奏紧凑、deadline 紧追不舍的日常中,“写得能跑就行”的诱惑太大了。但真正的程序员之道,不止于此。
Bjarne Stroustrup 说:“整洁的代码逻辑应当直截了当,叫缺陷难以隐藏。”Grady Booch 则更像在写一首情诗:“整洁的代码如同优美的散文。”这不是夸张,这是提醒我们:代码不仅是机器的说明书,更是团队协作的语言,是未来自己的遗书(可能还是手写繁体竖排版那种)。
想写出这样的代码,需要你知道很多“应知之事”:
- 函数为何要短小精悍,每个只做一件事;
- 为什么注释不能替代清晰命名,甚至大多数时候该删不该写;
- 命名的艺术不仅关乎准确,更关乎“别人能不能在凌晨两点理解你的变量名”;
- 为什么返回错误码是“依赖磁铁”,而异常机制才是维持结构清晰的手术刀。
这些都是“知”的部分——原则、模式、经验法则,都是前人踩坑无数后的总结,值得我们一一学习,熟记于心。
二、行其所当行:写好代码也得天天练
但知并不是终点。
正如 Ron Jeffries 所说:“整洁的代码总是看起来像是某位特别在意它的人写的。”这句话背后的潜台词是——你得关心代码,得在意它的可读性、可维护性,得像园丁一样每天打理它。
这就需要“行”的部分,也就是练。
练什么?练习提炼函数、练习起好名字、练习写测试、练习重构。像打拳一样重复基础动作——别怕无聊,怕的是你写的代码有趣到别人没法维护。
书里提到的“童子军原则”我特别喜欢:“让营地比你来时更干净。”这放到编程世界里,就是:
每次你改动一段代码,不要只想着实现功能,而是让这段代码比你来之前更清晰一点,更整洁一点。
不是你负责的模块?没关系,看到一点重复就抽个函数。不是你写的变量名?没关系,看到有歧义就统一命名。不是你写的测试?没关系,加一个断言,多一份安心。
知是精进的方向,行是精进的手段。
三、习艺如习剑:反复打磨,终成大家
你当然可以用很乱的代码交付产品,但你永远没法用很乱的代码培养团队。
整洁代码的意义,从来不只是让自己舒服,更是让团队长期运转不脱轨。干净的架构、明确的命名、统一的格式,这些听上去琐碎,却是协作之基、迭代之本。
当你带着“知”和“行”的心态去写代码、带团队、做系统设计,某一天你会发现:
系统变得不只是可以维护,而是值得被维护。
而你,也从一个“写代码的”,变成了一个“设计语言的人”。