39. 通过移除改进代码

来源:互联网 发布:egd网络小黄金 编辑:程序博客网 时间:2024/06/06 10:49

通过移除改进代码

        少即是多。老生常谈的话了,但有些时候它确实是真的。
        我过去几周对我们的代码库的改进之一便是移除它里面的组件。
        我们愿意遵循极限原则来编程,包括你不需要它(YAGNI,You Aren't Gonna Need It)。但我们免不了在有些地方会大失所望,人的天性使然。
        我观察到了产品花费太长的时间执行某些任务,应该是在瞬间完成的简单任务。这是因为它们被过分实现了;带有额外的门铃和警笛的门帘是不必要的,但是那时也觉得像是个好主意。
        于是我简化了代码,改进了产品的性能,降低了全局的代码熵,方法仅仅是简单地从代码库中移除不必要的功能。很有帮助的是,单元测试告诉我在操作中没有破坏任何功能。
         一个简单却非常有成就感的经历。
        为什么一开始那里会有一些不必要的代码呢?为什么一个程序员会觉得需要写额外的代码,又是如何通过代码审查和同伴检查的过程的呢?原因几乎都是类似这些:
        · 写代码其乐无穷,程序员就是想要写。(提示:写代码是原因它增加价值,而不是让你开心。)
        · 有的人想将来可能需要用到,于是觉得最好现在就写。(提示:这就不YAGNI了。如果不是现在就需要,那现在就不要写。
        · 看起来不是特别“额外”,相比回到客户那里去看是否真的需要,不如现在就实现了,还更简单一些。(提示:编写和维护额外的代码总是要花费更多的时间,客户实际上也很容易接近。小块的额外代码会在将来像滚雪球一样越来越大以至难以维护。)
        · 程序员自己发明了额外的、没有文档化或者讨论过的需求来实现额外的功能,这些需求实际上是虚构出来的。(提示:程序员不会设定系统的需求;客户设定。)
        你现在在做些什么呢?是不是都是必需的呢?

原文:Improve Code by Removing It byPete Goodliffe

原创粉丝点击