设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

与重写代码作斗争

2013-6-21 11:41| 发布者: 红黑魂| 查看: 6476| 评论: 1|来自: 伯乐在线

摘要: (漫画来自XKCD)昨天一位年长的老板约我一起吃午饭。我们一边等着送吃的过来,一边追忆着他公司初创时期的情景。他的一句话让我感到局促不安:哎呀,JP,我记得那时候你看 Dan(公司的第一开发者,首席程序员)写的 ...

 

(漫画来自 XKCD

  昨天一位年长的老板约我一起吃午饭。我们一边等着送吃的过来,一边追忆着他公司初创时期的情景。他的一句话让我感到局促不安:

  哎呀,JP,我记得那时候你看 Dan(公司的第一开发者,首席程序员)写的代码,你说:“这代码写的可不怎么样,需要重写!”

  遗憾的是,我当时没勇气告诉他,其实,我犯了一个错误。那些代码并不需要重写。虽然我那会儿确实认为那些代码写的不怎么样,但是经过这些年的经验积累,我发现大多数的开发者都会觉得别人写的代码不怎么样。甚至就连他们自己多年前写的代码,在现在看来,他们也觉得不怎么样。这些人很可能是对的,因为那些代码(他们认为不怎么样的代码),确实真的不怎么样。

  但是,如果铁定要重写代码这种事儿,我认为那是个低级错误。

There were business assumptions made that you can’t possibly know now. Plenty of undocumented business assumptions that the code will handle just fine. You can’t possibly account for all of them. 有些业务

  假设你可能一直都不知道。许多未成文档的业务假设,代码却又能够恰当处理。而你没法解释所有业务假设。

  我喜欢Joel Spolsky 写的《你永远不要做的事》这篇文章中的一些话:

  我们是程序员。程序员是什么?在他们内心深处,认为自己是建筑师。当他们初次去某地时,第一件事就是推平这块地,然后从头开始,建造出一些宏伟的东西来。修修补补,优化改良,培养花圃这些后加的整修,我们并不感到兴奋。(译注:直白的说法就是,程序员都喜欢从项目的一开始就参与进来,而并不喜欢接手别人弄了一半的项目)

  有一种更微妙的原因促成了程序员往往喜欢抛开旧代码,从头再来,那就是他们认为以前的代码一团糟。于是乎就有了一个有趣的现象了:他们有可能错了。原因是这种认为“以前的代码一团糟”的观点,其实是基于一个基本的编程法则:

  写代码往往比读代码要简单的多。

  这也是为什么代码复用这么难的原因。这同样也是为什么你团队里的每个人都喜欢用不同的函数去实现一个长字符串分解成字符串数组的功能。因为写他们自己的函数既容易又有趣,所以他们就不愿意去弄清楚以前的函数到底是怎么实现的。

  按照此理论推论下去,你可以去问当今任何一个程序员关于他们现在正在写的代码。他们会告诉你,“简直是乱成一锅粥,没有什么比扔掉它们从头再来更好的了。”

  当你雇了一个开发人员,如果他想重写那些能正常工作的代码,请抵抗这种行为。他或许会说Java又慢,而且已经过时了,Ruby on Rails 才是最酷的选择。他甚至可能给你说一堆时髦的词来劝说你。无论怎样,请你认真考虑一下。(注:关于IT人士用术语忽悠人,各位可以看看《IT人士应当知道的10个行业小内幕》。)

 

(译文完,下面补一张趣图:“@老码农的自留地:新来的菜鸟程序员闯祸了……这段代码好多年都没人敢动过的……)

 

英文原文:techneur,翻译:@1988年的那个秋天,校稿:伯乐在线黄利民


酷毙
2

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (2 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部