【IT168 评论】这是一篇比较老的文章,但是文中的这些问题在现在仍然普遍存在。代码质量的高低与商业产品的优劣是否有直接的影响?开发者Frank Sommers在文中给出了他的看法。文章内容如下。
在大多数商业项目中,代码质量并不被看重,因为大部分情况下,代码不是整个项目的最终产品,客户最终使用的是二进制文件,而不是源代码。相比代码质量,开发流程、进度和技能更能决定产品最终的质量。
在现实生活中,我几乎从来没有遇到一个对他所工作的代码完全满意的商业软件开发者。相反,我甚至认识到,开发者对其所工作的代码的满意度与代码给老板所创造的价值成反比关系。
我的一个朋友在世界上最大、最赚钱的数据库公司的核心服务器组件部门工作,他时常感叹庞大的代码库中那些丑陋的命名约定,对于开发者来说,很难在这些代码的基础上开始工作。但是,不可否认,就是这些丑陋的代码库为该公司创造了高达数十亿美元的收入。
不幸的是,开发者一边感叹着代码质量,一边还不得不继续做这项奇怪的、与众不同的工作。说这项工作与众不同,是因为用户不能从最终产品中直接看到你的付出。如果你是一个音乐家,你可以根据自己的喜好来塑造每一个音符和乐句,并直接呈现给听众。如果你是一个木匠,你的产出是实际的椅子或橱柜。
但是作为一名开发者,除了你工作的开发环境和开发团队外,你几乎没有留下什么东西。客户看到的是二进制文件,而不是你的源码。除非你的产品是开源的,或者包含源码文件,否则,除了开发团队的人外,几乎没人看到或者关心这些代码,而你每天在这些代码上花费了大量宝贵的时间。
大多数编译器也不关心代码的质量,比如,变量如何命名、方法是否简洁、对象模型是否清晰、甚至不管你使用了什么算法,编译器对这些都没有兴趣,无论代码是优雅还是丑陋,都能创建出效果相同的二进制文件。比如,当你阅读这篇文章时,你根本不会考虑当前页面源代码的质量。
当然,作为开发者,我们必须关心代码质量,因为我们每天要花费大部分的时间来与这些代码打交道。而且,作为一个合格的开发者,我们应该努力打造和维护一个高质量的代码库。
我们花费大量时间来打造更高质量的代码,我们通常会说现在所做的工作将会在一段时间后带来更多的商业利益,以此来体验我们所做的努力。但是,代码质量很少直接导致任何可衡量的商业投资回报。比如我那位在数据库公司工作的朋友的例子,他认为这些代码丑陋不堪、难以阅读,但是依然能够很好地创造利益。该公司专注的是产品的整体质量,而不是代码的质量。
总体产品的质量,不是通过改善单一活动的质量就能提升的。开发者测试、敏捷开发方法、QA(质量保证)、CI(持续集成),这些所有的流程保证了最终高质量的产出。代码质量只是其中的一小部分。商业软件公司往往会更专注于产生高质量产品的过程,因为这比起强调代码质量来说,能获得更好的回报。
通常来说,产品经理很清楚以上这些内容。但是对于开发者来说,必须日复一日地工作在他们认为“丑陋”的代码基础上。这意味着,开发者注定一直无法对他们所工作的代码的质量感到满意。