猎奇丨程序员十大未解之谜
【文章摘要】代码注释能够帮助外人来理解自己的思路,同时也防止事情过去太久,自己不知道当初为什么要这么写而踩到自己留下的坑里。但很多时候因为时间紧,许多程序员来不及写详细的注释,代码就上线了,所以「我以后再给代码加注释」这句话很容易因为某些原因而成为空谈。
迷一:我以后再给代码加注释。
代码注释能够帮助外人来理解自己的思路,同时也防止事情过去太久,自己不知道当初为什么要这么写而踩到自己留下的坑里。
但很多时候因为时间紧,许多程序员来不及写详细的注释,代码就上线了,所以「我以后再给代码加注释」这句话很容易因为某些原因而成为空谈。
迷二:这只是临时的办法,正式环境不会这样写。
有时候要应对紧急的需求,有些事情往往会颠覆现有的架构,无法写得很优美,甚至会引入一些bug,被发现之后程序员可能会说「这只是临时的办法,发布版本时这样写」,但真相通常很残酷,引入了一个bug,产品功能就像外衣一样不断穿在这个bug身上。
迷三:开发已经完了,只剩下几个小问题需要处理。
有时候被项目经理问到进度时,因为之前写代码一直被人打断,心想所有功能都确定之后应该不会再有变更、有人打扰,所以即便代码只写完了50%,也会回答「开发已经完了,只剩下几个小问题需要处理」。而实际的情况是,接下来还会有人打扰你,还会有其他事情插入进来,导致版本延期,所以只能 加班。
迷四:开发:这需要10天 老板:5天能完成吗? 开发:可以!
在需求评审时,项目经理问这些功能做完,开发需要多长时间,多久之后可以联调。这时候开发就会算产品功能开发+自测+代码优化的时间,然后再预留一些buffer(缓冲时间),报上一个数字。
结果boss和项目经理施压,最后预估时间只能报「纯开发」的时间,自测、优化什么的就只能加班完成了。
迷五:TODO(待办)
有很多人可能看到过程序员写的代码里有「//@TODO 这里待加上xx逻辑」,表示因为某些原因,暂时某功能不上或者某逻辑缺失,后面会慢慢加,可惜,因为各种原因,这里的todo 根本就没有do过。不信?你搜索一下你们项目代码看看有哪些是以前写的todo…
迷六:在我机器上是好的…
有时候线上被爆出bug,问程序员怎么回事,程序员经常回答的一句是「在我机器上是好的啊…」,结果经查发现,要么是兼容性测试没做好,要么是代码忘了提交。。。而求求亲们憋戳破,这是我们程序员自己找的台阶下。。。你只需回答一句「行,这个跟预期的不一样,你再查查」,程序员自然会联想到「卧槽,难道是个bug」。
迷七:以前就有这个问题。
有时候线上发现了某个问题,问这个怎么回事,通常会说「以前就有这个问题」,问为什么不早点提出来呢?
说,那是以前某人(离职员工)的代码,他没有写注释,我又看不是很懂,不敢改。。。
迷八:我的代码不知道为什么突然就好了,刚还不行的。
因为某一个问题查了半天没有反应,结果出去吃个饭,回来就好了。。。而且没有任何改动啊。。。
迷九:这个很简单,不需要测试。
有些功能可能紧急要上,如果需要测试团队介入的话,可能流程上要的时间比较长,所以会来不及发布。这时候程序员往往会说,「这个很简单,不需要测试」,天了噜,很多时候问题引入,就是没有走正规的测试流程。。。
迷十:你确定需求不改了?
这是对程序员来说最无解,也是最伤脑的问题了。很多需求往往改了一圈,最后又回到最初的模样。。。
但无论你们怎么改需求,最后实现的,还是程序员,立字据也没有用,还是得改。。。