在CSDN看到一个很有趣的帖子(http://www.csdn.net/develop/article/28/28005.shtm),里面说同一个功能,中、日两国程序员写出的代码天差地别:
JAPAN:
Dim gridItemIndex As Integer 'comment
Dim currentPageIndex As Integer 'comment
Dim pageSize As Integer 'comment
gridItemIndex = e.Item.ItemIndex
currentPageIndex = meisaiIchiran.CurrentPageIndex
pageSize = meisaiIchiran.PageSize
Dim updateDataRowIndex As Integer 'comment
updateDataRowIndex = (currentPageIndex * pageSize) + gridItemIndex
dt.Rows(updateDataRowIndex).Item(t.BindFldName) = txt
CHINA:
dt.Rows(.CurrentPageIndex * .PageSize + e.Item.ItemIndex).Item(t.BindFldName) = txt
这段代码以前在软工版也见到过,有不少人认为两段代码折射出程序员的素质。一种看法是,日本同行写的代码更规范,可读性更强,因此显得比较有素质;另一种看法是,中国同行的代码更简练,废话更少,因此显得比较有素质。
程序员的素质,这是实实在在的东西,但不是从这两段代码中体现。也许你思维比较灵活,思路比较清晰,脑子转得比较快,对程序的感觉比较敏锐,那你也许更喜欢中国同行那段代码;也许你像我一样,脑子比较笨,想问题容易迷糊,需要多几个临时变量才能搞清楚状况,那你也许更喜欢日本同行那段代码。没关系,哪种风格都可以。我们不难猜到,这两段代码是同一个函数的两种实现方式。作为项目经理,我说,无所谓,你喜欢哪种风格就用哪种风格。只要你素质良好,用哪种风格都不妨碍你成为优秀的程序员。因为,素质并不在这两种风格之中。
那么,素质在哪里?恰好就在这两段代码之外。放这段代码的函数,你给它起了一个怎样的函数名?这个名字能够让别人一眼看懂它的作用吗?这个函数有没有单元测试?函数的功能、出错情况和边界值在单元测试里都能体现出来吗?这才是程序员的素质所在。只要你给每个函数起的名字都能一目了然地看懂,只要你的每个函数都有完备的单元测试,那你就具有程序员最基本的素质。至于这个函数里面的代码,你喜欢怎么实现都可以——或许我应该再加上“重构”这项素质?
面向对象理论说“针对接口编程”,同样的,程序员的素质也体现在接口上。如果到了别人来看你的实现代码,你作为程序员的素质就已经遭到质疑了。还是先在函数名、单元测试这些地方多下下功夫吧。
分享到:
相关推荐
程序员应该具有下列素质: ①耐得住寂寞,静不下心来的人做不得。 ②禁得起熬夜,一个程序不是一天两就能做好的,有时写程序刚进入状态,此时即使夜已深,也不能(不愿)停下来。 ③要严谨细心,程序设计语言不是人...
本文件是一名程序员对自己从事程序员工作以来的感悟,并从中体验快乐!
作一个真正合格程序员的七种素质
程序员综合素质面试60题.pdf,这是一份不错的文件
论程序员应具备的职业素质
高级程序员基本素质 提高程序员的素质(转载)
程序员应具备的素质程序员应具备的素质程序员应具备的素质程序员应具备的素质
作为程序员,应当具备哪些素质?本文总结了程序员必备的30条修养
程序员的基本素质
一个没有规范的代码不是好代码,一个不懂规范的程序员不是合格的程序员,华为编码规范提供给大家参考
程序员应具备的能力和素质.doc
诙谐幽默的表述出IT程序员的点点滴滴,已经程序猿应该具备的品质、与好的习惯,制作优美的PPT使你赏心悦目,参观一下,只需一个积分,评论即可返回积分,相当于免费下载
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质: 1、 需求分析能力 2、 整体框架能力 3、 流程处理能力 4、 模块分解能力 5、 整体项目评估能力 6、 团队组织管理能力 1,...
程序员的素质[总结].pdf
程序员是一种技术工作,在IT的发展中有相当重要的地位,从底层硬件通讯协议的建立, 到数据传输层的处理,到操作系统的建设,到数据库平台的建设,一直到应用层上各种数 据营销平台的搭建,程序员在里面都扮演着...
《Java程序员面试宝典》主要内容简介:...希望通过《Java程序员面试宝典》,读者可以成功应聘,并提升综合素质。《Java程序员面试宝典》适合应聘Java和J2EE职位的程序员阅读,也适合其他程序员作为拓展读物进行阅读。
根据程序员的学习能力、协作能力、技术知识能力等21项指标打分,将程序员划分为助理工程师、初级工程师等8个级别。按此模型对研发人员进行能力评估并以此为依据制定薪资
在就业的冬天中寻找春意 ——程序员职业成长之路 你是一名合格的程序员吗? 程序员基本素质 软件开发流程 程序员速成的五条“真经” 软件程序员职业发展