第一个敏捷项目 - 我应该先写什么?

时间:2009-08-31 12:15:38

标签: c# wpf winforms agile

我一直在学习TDD和BDD,并尽可能多地使用它,但是在一个真正不灵活的环境中。

我想在家里的宠物项目上正确地尝试一下。因此,采用敏捷方法和使用软件的原则,我应该先写什么?我应该首先创建一些表单(这将是WPF / WinForms),链接到一些虚拟模型?或者我应该全力以赴。任何建议都会很棒!

修改

我知道我会先写测试。问题在于更高层次。我是否应该首先将工作模型和业务层放在一起,或者从表单和虚拟模型开始。

3 个答案:

答案 0 :(得分:8)

你是从错误的角度看待它。

您正在将应用程序分为水平组件 - UI组件,后端组件等。

相反,您应该看一下垂直 - 有哪些不同的功能 - 可以是登录/注销,显示用户列表,显示其他一些数据等等。将这些切片排序为优先顺序 - 首先需要先完成,然后需要先完成,依此类推。

然后你专注于最重要的切片,直到它工作,无论它需要什么 - 如果它需要UI你添加UI,如果它需要后端逻辑你添加后端逻辑等等。只有在完成并完全工作后,您才能返回到切片列表,重新评估它们,再次选择最重要的切片并专注于它。

重复直到你完成。

这基本上是始终正常工作的软件的含义。

它允许你在任何时候停下来说 - 这已经足够好了,然后发货。

如果你的工作水平,在完成所有工作之前,你将无法正常工作。

答案 1 :(得分:3)

我通常从最重要的功能和区域开始。看看this SO answer

答案 2 :(得分:1)

如果你想做TDD / BDD,你可以先从测试开始。

在我看来,从模型测试开始总是好的,除非它们完全基于框架的功能。

至于检查Controller / View部分,我更喜欢进行'blackbox'测试,检查我是否得到了响应,我期望从http请求(对于Web应用程序)。它可以消除测试中的脆弱性。

即使我进行了完整的TDD测试,如果它们是关于实现的细节部分,我经常抛出测试,因为否则当最终用户体验的重构实现是相同的,所以我的应用程序工作正常,但我花了小时修理测试。我不是因为我知道通过重做大量测试代码会给它带来的痛苦来训练自己以避免重构。

我建议只测试对你来说真正重要的东西,并忽略其余的东西直到它咬人。

当我从一些我忽略的东西中得到一个错误时,我会写一个测试来记录错误,即使它是关于低级实现的。