敏捷与面向对象

崔钢 发布于 2011/06/16 09:18
阅读 399
收藏 1

我们在工作中采用的是敏捷的开发方式。其实对于这个开发方式,大家不必太较真。敏捷好是好,但是有很多的要求。比如,敏捷没有文档,代码就是文档。但是代码充当文档是有前提的,那就是这个代码质量要好。如果质量不行,那么还是有文档的好。其次,敏捷在编码的时候,一定要有一个规约,这个规约很细。ok,如果没有规约也行,那就要求敏捷团队的成员必须是工作四年以上的具有丰富应验的人,而且要精通面向对象的编程。

如果这些都没有,敏捷就是噩梦。给人的感觉就是又要马儿跑得快,又要马儿不吃草。这是不可能的。

另外如果你从事的是升级工作,那么敏捷其实意义不大了。除非,你参与过老系统的开发。

一个业务系统,无论是关于那个领域的,都一定要有一个抽象的业务层,我觉得这应当是一个常识。但是对于不了解面向对象编程的人来说,这种做法是难以理解的。他会觉得那是一个多余的层次。换一种说法,一个复杂的系统应当有一个自己的类库。这个类库应当是设计严密谨慎的。这样的好处有很多,特别是,如果我们需要升级系统的界面的时候,这种类库可以很好的加速开发的过程,而且,新手也能快速的上手工作,虽然可能他并不十分彻底的理解系统。这其实就是一种DSL。但是很不幸,许多的系统业务模型建立在成堆的工具类,大量的数据模型的背后,真正的业务过程存在在各个前台的view中,理解起来非常费劲。

自从我学习编程以来,我学习了很多中语言的技巧。其中包括面向对象的语言,函数式的语言,过程式的语言,大杂烩(scala)。其中最为困惑我的就是面向对象的语言。因为在做开发的这些年里面,我唯一见到的面向对象的设计好像就是我们的开发框架和java类库本身。我所经历的这些项目,好家伙,没有一个使用面向对象的开发方式的。有的项目连一个继承都没有更无论接口了。结果就是很多程序员在做了多年的开发之后,居然还不知道接口中的方法都是public的。

真正的程序员,不应当仅仅知道完成工作。我们要有我们的道。不然,我们就迷失在工作中了。

技术的本质,不是完成工作,而是更快更好的完成工作。

加载中
0
wyzc小胖胖
wyzc小胖胖

没有文档是建立在快速发布,不断反馈,有看板等的基础上的,真正在做的敏捷的时候真的敏捷了吗,tdd,atdd,bdd不都是在不断在改善你所做的不足的吗

0
SeekerLee
SeekerLee

我觉得web本身就是个过程,所谓的业务逻辑勉强是“面向对象”。

我工作在实践scrum中文档是必需的,但是可能没有特别高的要求,但是质量也是很高的。可以基本不懂业务就能开发。

0
CheckStyle
CheckStyle
我觉得主要是业界一些人,被Thoughtwork这种外包公司忽悠了...
返回顶部
顶部