惹恼程序员的十件事

10:注释解释了“what”但没有解释“why”

    在很早的时候初级编程课就教大家要写注释。同时在程序初期(即使最简单的一句话也难以理解)的时候这也许是一个很有用的练习,许多程序员也不会试图改变这个习惯。
r = n / 2; // Set r to n divided by 2
// Loop while r - (n/r) is greater than t
while (abs( r - (n/r) ) > t) {   
 r = 0.5 * ( r + (n/r) ); // Set r to half of r + (n/r)
}
    你明白上面的代码的意思吗?
    我也不明白。
    问题是这里有大量的代码解释了代码正在干什么但是却没有解释为什么这样做。现在看看下面这个同样的代码不同的注释。
// square root of n with Newton-Raphson approximation
r = n / 2;

while ( abs( r - (n/r) ) > t ) {   
 r = 0.5 * ( r + (n/r) )
;}
    这确实好多了,即使我们还是没有全部理解程序是怎么运行的,但至少我们有了些需要的上下文信息。
    写注释是为了帮助阅读者理解代码,而不是语法。可以断定任何一个读你代码的人都懂得循环语句是如何工作的,而他们可能不懂的是为什么你要这么写代码或者为什么你选择这样的方面去写。


9:打扰

    一般情况下,程序员更像铁轨列车而不是法拉利,他需要一点时间来开始,但是一点我们进入了状态,我们能做大量的工作。不幸的是,进入状态很难,没有进入状态的时候我们称之为“0状态,特别是因为你的客户同事使得你的思想列车不断地出轨


8:范围蠕变(scope creep

    Wikipedia是这样定义范围蠕变的:在程序过程中不可控制的改变。范围蠕变能把一个相对简单的需求最后变成一个极为复杂的时间消耗品。而正是这看起来简单的敲键盘毁了整个程序的时间规划。
版本1:展示当地的地图
版本2:展示当地的3D地图
版本3:展示一个可作为飞行导航的当地的3D地图


7:管理者不懂编程序

    管 理可不是一个简单的工作。人类是一个奇怪的动物,我们善变,我们脆弱。要让一个大的团队满意是一个像山一样庞大的工作。 然而这并不意味着经理可以不懂他的下属正在干什么,当管理部门不能掌握工作的基础概念的时候,我们被范围蠕变和不切实际的时间期限打败了,于是管理者和程 序员都有了挫败感。程序员对此有很多的抱怨同时这也是很多苦恼的根源。


6:写说明文档

    首先我承认,有许多的文档生成器。但是根据我的经验,这些都能生成让其他程序员阅读的文档。如果你开发的软件是人们经常要使用的,你就得写一个即使是门外汉都能看懂的文档。
    很容易就能看到一些程序员都不想干的事。回顾所有的开源项目,人们不断地要求是什么?文档。我敢打包票无论在什么地方,当程序员被要求写文档的时候,他们总会说:不能让别人做吗?


5:应用程序没有文件说明

    我从来没有说过我们不是伪君子。程序员经常被要求在自己的工作中导入第三方的类库和程序,为了完成这一点,我们需要文件。不幸的是就想提到的第六点,程序员讨厌写文件。
没有什么比当不清楚程序接口而需要引入第三方类库而更令人沮丧的事了。

4:硬件

    任何一个被要求修正一个数据库上奇怪的问题或被问到问什么为什么raid驱动不工作的程序员也许都知道硬件是一个痛楚。这个常见的错误想法自从程序员与电脑 打交道开始就产生了,我们必须知道怎么修复它。确实,对一些程序这是对的,但是我估计不知道或者说不关心程序被翻译成汇编语言后如何工作。我们只是要求我 们做出的东西能按我们当初的要求来实现这一我们才能把更多的精神放在更高层次的工作上

3:模糊不清的任务

    “网站不工作了""xx功能不工作了"含糊不清的要求在处理上是很让人头疼的。这让我惊讶有那么一些不懂程序的人当他们提出"这里有问题了,修复它"这样的问题时,他们不知道这些这些信息根本不够我们去解决问题

2: 别的程序员

    程序员不总是和别人能相处的很好,很诧异吧,但确实是的.很简单就能列出10.我现在就列出一些程序员最常见的特性,而就是这些特性会惹恼他后续的继任者.就这些东西我都能写个博客了.
1.对敌对方脾气暴躁.
2.不懂什么时候去争论系统架构,什么时候该实打实的去做.
3.不能有效的沟通,而且总是用专业术语把人绕晕.
4.很难把自己管好
5.下一条,但不是最后一条,数字1也让人头疼.


1.他们自己六个月以前的代码

    每次回顾自己以前的代码,我们都是一脸悲痛状.你怎么那么笨?谁知道你怎么把代码写成了这样.不说了,烧掉,赶紧烧掉这些代码.

   呵呵,好消息,你其实并不孤单.
    程序员总是在不断地改变,这是一个事实.我们总是忽略明天,而认为现在的就是最好的.所以我们不可能写出完美的代码,因为评论代码好坏的表彰经常改变.工作 有时候是没办法延展的,今天看起来很漂亮的东西,在明天可能就只能被嘲笑了.还有一点让人沮丧,那就是不论我们学习多么新多么好的框架,模式,工具,开发 方法,我们似乎总是比最新的潮流慢一点.这就是让作为程序员的我最苦恼的一点.我们做一切我们能做的就是为了提升技术,    但是我总是不禁联想到我们就像那些纱毯和尚 (sand-painting monks.)

这是我翻译的第一篇文章.太难受了.这里面恐怕有数不尽的语法错误和不合适.但不管什么说这毕竟是一个好的开始.欢迎大家与我交流.

参考翻译
http://user.qzone.qq.com/289065406/main#!app=334&url=http%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fapp%2Fblog%2Fv6%2Fbloglist.html%23uin%3D289065406%26pfid%3D2%26qz_ver%3D6%26appcanvas%3D0%26qz_style%3Dv6%2F31%26params%3D%26entertime%3D1370314836425%26canvastype%3D

原文
http://www.kevinwilliampang.com/2008/08/28/top-10-things-that-annoy-programmers/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值