代码的重量:有关编程的部分随想录

2012-04-29 00:44赵永华
软件工程 2012年2期
关键词:摩尔定律改动程序员

赵永华

程序员大约会用10%~20%的时间写代码,无论其技巧有多高,他们每天写的那么多代码,真正用于最终产品的行数大约只有10~12行。在开发期内,训练有素的程序员真正用于写代码的时间不超过10%,他总会把大部分时间用在思考、斟酌和试验去找出最佳设计。糟糕的程序员则不断地忙着随手改动代码,把大量时间用于代码调试和演示运行结果。

盖茨曾讥讽说,平庸的代码写手制造的一万行代码往往充满垃圾,价值难抵编程高手的一行代码。的确,良好的程序员,其编程效率往往比普通人高出十倍,而杰出程序员的编程效率更是高出20~100倍。有研究报告指出,这种结论从1960年代始至今一直象摩尔定律一样没有变化。拙劣的程序员不仅效率低下,还会为他人乃至整个团队制造大量伤脑筋的后续工作。

那些整天面对电脑,孜孜不倦、埋头编写代码的程序员其实很多时候是懒惰的,他们只是眼睛和点击很勤快,却疏于思考,他们要的无非是有个勉强的结果;而优秀程序员总是善于思考和反省,他并不畏惧推翻已有的代码,只是为了达到更高的标准。

软件像其它事务一样,也存在着所谓熵定律。代码的频繁改动会导致软件变质,偏离原有的设计,甚至会造成软件工程整体溃坝之灾,这也许是很多软件项目耗费不菲人力物力却最终流产的重要原因之一。另外,交给用户的产品并不符合他们的真正需求也是一个常见败因。2004年有专业媒体调查报告称,全球软件项目产品中大约有51%存在重要缺陷,有15%则彻底报废。

总之,程序员是一份充满辛苦的角色,属于高强度复杂脑力劳动。很多优秀的程序员将这项职业默认为24(小时)+7(天)的工作。他们象阿基米德和爱迪生那样,往往在洗浴间或睡梦中突发灵感。请记住:编写程序最重要的工作并不是来自键盘和鼠标,软件项目并不是靠人海战术和夜以继日的加班就能完成的体力活,而是来自思想。

猜你喜欢
摩尔定律改动程序员
超高速光电计算芯片"挣脱”摩尔定律
为了让妈妈看懂地图,一位“野生程序员”做了个小程序
摩尔定律
怎样成为一名优秀程序员
程序员之子
加班
爆炒米花(节选)
咪咪(节选)
多变的脸
摩尔定律对电子信息产业的影响