作者:熊节 / 插画:虎头锤
2000 年前后的中国,有一批年轻的 IT 从业者,受困于软件工程不能有效解决他们的实际问题,开始关注到敏捷,并在很短时间里翻译引进了敏捷的主要基础著作。
重构——一种写出高质量代码的方式 场景一为侯捷举办的专家研讨会在《程序员》杂志社的二层小楼里进行。这是 2001 年 10 月,经营着 CSDN 网站和《程序员》杂志的百联美达美公司总共也只有 20 来人,控股的百联集团在位于北京亚运村西侧的利康饭店租了一栋独立的小楼,美达美和另一家公司共同在这里办公。这年夏天,北京成功申办 2008 年奥运会,利康饭店所在的这个位置正是未来奥运村的核心区域。7 年以后,这栋有些老旧的二层小楼将不复存在,在同一地点矗立着的将是被称为“鸟巢”的国家体育场。
第一次参加这种专家研讨会,旁听大家的发言,熊节感到有些费力、又非常兴奋。除了侯捷与孟岩等人围绕 C++ 的讨论让他大感兴趣之外,来自上海的王昕带来了一些新鲜的话题。王昕在 CSDN 论坛的账号是 “cber”,平日里在论坛发言相当尖锐,而且每每能跳出技术的框子,从业务和管理的角度给讨论引入一些新的观点。这天他跟熊节聊的话题就不完全是技术性的:
“你听说过 Refactoring 这个东西吗?”
“没有,”熊节连连摇头,“那是个什么来着?”
“是一种写出高质量代码的方法。你之前不是翻译过一系列关于设计模式的文章嘛!你看啊,设计模式社区的思路是,你先想好应该用哪些模式,然后照着模式的实现方式写出来,你的代码就是高内聚低耦合的。但是难就难在‘先想好’对吧?”
熊节点头。如何在开始编码之前先想好应该如何设计,这是他一直感到困难的一个点。之前孟岩与他讨论时曾经提醒他,“尽管当前软件界里几乎所有的人都为设计模式叫好,不过对于软件工程的发展方向,还是有不少批评意见的”。但这些批评意见是什么、对他熟悉的编程工作会产生什么影响,他并不了解。
“简单地说,Refactoring 这种技术,让你可以随时调整代码的结构,”王昕解释道,“把质量不好的代码修改好,在开发的过程中引入设计模式,那么你就不用担心一开始的设计做得不到位,可以一边编码一边完善设计。”