今天看了《ruby on rails为什么暂时无法成为企业应用开发的主流?》一文和它的评论,有一点看法,不过注册3天才能发技术贴,即使回复也不行,另外,好像是老文章了,所以算了,在这里说一下。

  该文中说道:

  • 例如JavaEye2.0中,整个forum就只有一个controller,整个blog也就只有一个controller。当然你惊叹,整个forum代码就一个文件搞定了啊,代码太少了!但是反过来,你也可以说,论坛这个功能只能交给一个人来做了,没有办法再拆分功能了。这就带来了一个问题,团队协作变的困难了,如果两个人同时做论坛模块,就会出现经常性的该controller文件冲突合并。即使妥协一下,每个人只负责一个大功能块,但是底层的model代码都是互相关联在一起的。又难以避免的并发修改和文件冲突合并。

  我听说,ROR就是设计为敏捷开发服务的,也可以说用ROR就必须用敏捷开发。

  敏捷开发我只了解一些XP,XP中有一些原则,比如测试驱动开发、结对编程、迭代开发等等。

  从文中介绍的情况来看,至少你们没有使用结对编程。

  假设有4个程序员ABCD,结对的情况是怎么样呢?

  可能是第一天上午AB结对开发函数X、CD结对开发函数Y,下午AC结对开发函数Z、BD结对开发函数X;第二天上午AD结对开发函数Y、BC结对开发函数Z,下午又是CD结对开发函数Z、AB结对开发函数Y。

  这就是说,结对的两个人不是固定的,所开发的模块也是变化的,所以,一个 Controller 即不是一个人开发的,也不是结对的两个人开发的,而是所有开发人员共同开发的。事实上,连一个函数也非常可能是由多个人完成的。这样,在项目结束时,所有人对项目的所有部分都有接触,所有的开发人员都可以进行项目维护,离开一个人,或者加入一个新人,对于开发团队不会造成大的不利影响。

  而在结对编程中,那些“奇技淫巧”可以通过结对的两个人的讨论,得以传播、或者放弃。结果是统一思想、统一编程风格等等,也就使得开发出来的软件的可维护性增强。

  事实上,就我的理解,使用XP开发,就算只有2个人进行开发,也应该结对编程。

  不知道这算不算解答了文中的问题?

评论
梁利锋 2006-12-10
在BOB大叔的Blog上,介绍了赛门铁克从以前的开发方式转换到XP的情况,这可能是我们所熟知的大企业完全使用XP开发的例子了吧。
据说,在赛门铁克转用XP前那些极度反对XP开发的人,在几个月后都成了XP的极力拥护者,这是一个很有趣的现象。
梁利锋 2006-12-10
实际中,我在几次偶然的机会中做过结对编程,感觉不错,而我个人目前也在使用测试驱动开发。不过,完全用XP开发,一来经验不足(这是一个先有鸡还是先有蛋的问题),二来很难说服老板(特别是结对编程),所以也没有做过。
不过,从我个人对于XP的理解,这些测试驱动开发、结对编程、迭代开发等等,都是环环相扣的,虽然独立使用也对项目有帮助,不过,组合在一起才能最大化的产生“敏捷”的效果。
spartak 2006-12-09
听起来不错,很适合创业的小团队。不知道有实际应用的经验吗,效果好不好
发表评论

您还没有登录,请登录后发表评论

梁利锋
搜索本博客
博客分类
存档
最新评论