我从来都特别羡慕那些效率奇高的人。我总是搞不懂那些家伙是怎样在完成许多伟大事情的同时,还能到处参加社会活动、出书、沉迷于自己的特别喜好。这种人中做的极端的,会令我不自觉地妒火中烧,关于这点,我以后会专门写个帖子讨论。

在过去相当长一段时间内,我的工作效率是比较低的。作为一个开发者,我越来越对微软的那一整套东西心怀怨念。几年前为了改善我的开发效率,我下了很多功夫去研究当时比较流行的一些开发新概念,比如设计模式、面向对象编程的原则、范型编程、测试驱动、敏捷开发等。每一种技术都有其道理,但我后来发现,这些技术都是一些更高阶思想原则的派生物,如果不理解那些基本的思想,就不能很好的应用由它们派生的技术。

在我对此有了模糊的印象时,两本书和一个开发框架适时地出现了:The Pragmatic Programmer, Getting Real和Rails

这两本书的作者带给我了核弹式的冲击,特别是The Pragmatic Programmer,令我这个对unix没有太多概念,几乎完全成长在微软操作系统和开发环境下的程序员倍感惭愧。

软件开发是个很复杂的事情,如果你没有必要的而且正确的指导原则,不同程度的开发失败几乎是必然的事情。人们一直都在搜寻那些“正确”的指导原则,经过了这许多年的持续努力,一些当前最流行的技术思想看起来离“正确”越来越近了,她们中最核心的是:正交性和“小步快跑”。

敏捷开发主要源于“小步快跑”的思想,即快速迭代。敏捷开发和各种现代开发方法都严重依赖的单元测试,则主要源于正交性思想,即完善的隔离开发中的各个模块,确保随着时间的推移,各个模块始终互不影响。重构则源于这两个思想:重构特别重视正交性,她鼓励你在每一步后通过测试确保刚才的改动没有破坏原有的系统;同时重构也极端鼓励小步快跑的方式,以至于人们经常会感觉到她有点书生气,甚至迂腐。但本质上重构是利用每一步都可以掌握的微小重复,换取项目自始至终的可掌控性,而对于稍有规模的项目,可掌控性通常比其他任何东西都重要的多。结对编程鼓励人们小步快跑,同时使用单元测试保证项目不会跑到沟里。

由于这是个很大的话题,一遍小文章不可能涵盖清楚,必要的后续展开是少不了的。下一篇文章将讲述我的一段滴血的重构教训

如果你想更深入的了解正交性的思想,看The Pragmatic Programmer;如果你想更深入的了解小步快跑,看Getting Real;研究rails框架和她的开发哲学,你将加深对这两个原则的理解,并了解到其他一些核心思想,如隐藏在“习惯优于配置”之后的“实用优于优雅”。


评论

该日志第一篇评论

发表评论

评论也有版权!