问题是,一组开发人员被指派从头开始创建大型项目,在考虑了一些架构的优缺点后,他们决定选择N层架构。举一个简单的例子,让我们选择3层(作为一个非常通用和公共的层(。
假设他们在敏捷开发方法论中工作,那么最好的顺序是什么?
我想了三种方法,但我无法真正解释为什么其中一种比另一种更好:
-
从DB开始,然后是Buisness,然后是Service,然后是Presentaion。
-
建立一个假的Buisness层(Mock(,让DB进行更高级的迭代,然后,在我们有了一个假的工作构建层之后,在它上面建立一个工作服务层(测试它并使其完美(,然后,回到DB和Buisness。
-
自下而上构建每个用例(DB->Buisness->Service->Presentation(
选项3在我看来是最灵活的方法。我看到了这个关于它的问题,但我找不到足够有力的答案
感谢您的帮助!
敏捷方法通常是尝试尽早获得可工作的软件,以便您能够收到反馈。
这意味着第三种选择是最好的:通过分层进行精简,以尽快获得可用的功能。
在构建过程中仍然值得考虑使用mock。如果你有专业的开发人员(如数据库开发人员、前端开发人员等(,你可能会发现这有助于平衡工作量
例如:
- 选择要处理的高优先级功能
- 快速模拟它的某些方面,以便各个层的专业开发人员可以在不相互依赖的情况下工作
- 通过所有层构建一个薄薄的切片,在每个代码到位时交换mock