在翻开《代码大全2》之前,我对编程的理解,很大程度上还停留在“解决问题”的层面。老师布置一个作业,我打开IDE,开始敲击键盘,直到程序能跑通、能输出正确结果,任务就完成了。我把自己定义为一个“码农”,一个熟练的“打字员”。
但这本书,像一位经验丰富的总工程师,拍了拍我的肩膀,告诉我:“孩子,你手里的不是砖头,是承重墙的蓝图。”
“代码大全”这个名字起初让我觉得它是一本像字典一样的API手册。但读下去才发现,它通篇讲的不是“What”(用什么函数),而是“How”(如何构建)和“Why”(为什么这么构建)。它彻底颠覆了我的认知:
关于变量命名我以前觉得a, b, c或者temp用起来很方便。但书中告诉我,一个好的变量名(如customerCount而非cc)是给未来自己和其他阅读者的“情书”,它能自我注释,极大降低理解成本。关于函数设计:我曾写过一个几十行、功能混杂的函数并沾沾自喜。书中“一个函数只做一件事”的原则像一记重锤,让我明白了“高内聚、低耦合”不是空话,而是让代码易于测试、调试和复用的基石。防御式编程:我以前只在必要时才做错误检查。书中将“断言”和错误处理提升到了工程纪律的高度,让我明白,可靠的软件不是偶然成功的,而是通过预见并处理各种“意外”而构建出来的。
作为大二学生,我们学的C++、Java语法是“术”,而《代码大全2》教的是“道”。它让我意识到,编程的真正挑战不在于语言的语法,而在于如何用这些语法,像工匠一样,精心设计、测量、打磨,最终建造出坚固、耐用且易于维护的软件“大厦”。这本书,是我从“码农”走向“软件工匠”的启蒙第一课。