敏捷/ XP和分层方法

时间:2009-10-18 06:43:06

标签: agile extreme-programming n-layer

Agile / XP可以和分层方法一起使用吗?

Agile / XP应该采用分层方法吗?

将源代码分解为多层需要额外的努力,从而显着增加开发时间。

N.B:'Layers'是指用POCO,DA等单独组装的

5 个答案:

答案 0 :(得分:1)

Agile / XP是一种管理项目活动,可交付成果和时间表的方法。

分层(N层)应用程序是一种提高可维护性,可伸缩性以及团队成员分离责任区域的能力的方法。

他们彼此没有多大关系,只是如果你不熟悉每一项,他们都需要额外的投资。如果使用得当,与传统的替代方案相比,两者都倾向于提高项目的质量。

答案 1 :(得分:0)

两者完全正交。

在XP中,您可以按功能开发系统功能。在添加功能时,您不断重构系统,以确保其实现尽可能清晰。图层通常不属于重构。如果该架构是合适的,或者如SEDA或REST等其他大型架构结构那样。

答案 2 :(得分:0)

在我看来,敏捷警告“你不需要它”并不是为了完全避免复杂性,而是为了避免增加NEEDLESS复杂性。实际上,单元测试的好处之一就是建立一个学科,在这个学科中你可以无所畏惧地重构,所以东西最终会归到它所属的地方,而不是它可能已经开始的地方。

所以关键是不要避免使用图层(或层,如果必须的话) - 重点是避免图层吮吸。

答案 3 :(得分:0)

我认为他们真正的问题是应该让开发人员按照团队的层次进行划分 - 如果你有一个html开发人员,一个js开发人员,一个中间层人员,一个消息传递系统人员和一个dba都在共同构建一个CRUD表单,或者你应该按功能构建并让一个人拥有该线程。后者在敏捷方面更为可取 - 专业人士更倾向于专家。

答案 4 :(得分:0)

让几个团队合作开展敏捷项目是否明智?是的:我参与了一个大型项目,有超过15个团队的200多名开发人员。总共有大约20或30项服务。

这可以通过专业团队完成吗?并不是的。

团队成员可以进行专业化吗?是的,但你真的需要在某些方面具有优势的通才,而不是那些只知道一件事并且不会触及任何其他事物的人。