程序 卡塔_建筑钉卡塔

程序 卡塔

您知道如何将编码实践应用于您每天使用的技术堆栈吗? 您知道技术堆栈如何工作吗? 对于许多程序员而言,使用一个简单的示例来使用测试驱动的开发是很容易的,但是要知道如何将其应用于您每天在工作中遇到的问题可能非常困难。

Java Web +数据库应用程序通常充满了技术。 其中许多很难测试,并且许多可能无法增加价值。 为了探究TDD和Java应用程序,我在2010年练习了Java EE Spike Kata。 这是我和Anders Karlsen在JavaZone 2010上做这个视频的视频
对于使用任何技术的程序员,类似的方法可能很有用。 因此,我给您:体系结构Spike Kata的规则。

问题

创建一个Web应用程序,使用户可以使用名称注册人员并搜索人员。 Person对象应保存在类似于您日常使用的技术的数据存储中(可能是关系数据库)。 目标是使尖峰脉冲尽可能快地工作,因此在第一次迭代中,Person实体可能只应包含一个字段。 您可以添加更多字段并在以后重构应用程序。

规则

最重要的规则是Robert Martin的测试驱动开发的三个规则:

  • 没有测试就没有代码(也就是说,代码绝不应该做不需要通过测试的事情)
  • 只有足够的测试才能变成红色(也就是说,测试应该运行 ,给出错误消息并且该错误消息应该纠正)
  • 只有足够的代码才能变成绿色(也就是说,测试应该运行并且不会产生错误)
  • (我的补充:重构为绿色而不添加功能)

其次,应从外部驱动应用程序。也就是说,您的第一个测试应该是通过http和html进行测试的顶级接受测试。 可以在第一次运行红色后注释掉该注释或@忽略此测试。

最后,在不这样做之前,您不应该引入任何技术。 第一次使用某种语言来编写kata时,请勿使用超出最低语言要求的网络框架(在Java中,这表示Servlet,在node.js中是require('http') ,在Ruby中是Rack)。 不要使用对象关系映射框架。 不要使用依赖注入框架。 绝对不要使用Rails脚手架,Spring Roo或Lift之类的应用程序生成器。 这些框架可以节省大量时间,但这是了解底层技术如何工作的方法。

作为第二次迭代,请使用每天使用的技术,但这一次是从头开始的。 例如,如果您的项目使用Hibernate,请尝试手动配置会话工厂。 通过以最简单的方式使用框架,您将了解有关它们带给表的内容以及如何正确使用它们的更多信息。 对于像Hibernate这样的复杂技术,没有什么能替代更深入的了解。

期待什么

到目前为止,我只用Java完成了Architecture Spike Kata。 但另一方面,我已经与十多个其他开发人员一起完成了大约50次。 之前,我已经在我的博客中撰写了有关如何开始使用Java EE Spike Kata(挪威语)的信息

这是我在Java中使用Web应用程序所学到的:

  • 大多数Java Web框架似乎弊大于利
  • Hibernate设置起来很麻烦,但是一旦运行起来,就可以节省很多麻烦
  • 将TDD与Hibernate一起使用有助于我了解如何更有效地使用Hibernate
  • 我已经停止使用依赖项注入框架(但是继续使用依赖项注入作为模式)
  • 我了解了几种独立和集成测试Web应用程序和数据库访问的方法
  • 我不再需要花费精力来编写用于全栈应用程序的测试

我第一次与另一位开发人员一起编写此kata时,大约需要3到5个小时,具体取决于我俩的经验水平。 经过几次运行后,大多数开发人员可以在不到一个小时的时间内完成任务。

通过实践,我们会变得更好,而Architecture Spike Kata是使用您每天使用的技术来实践TDD并更好地了解正在发生的事情的一种方式。

参考:来自我们JCG合作伙伴 Johannes Brodwall 的Architecture Spike Kata,来自“更大盒子内思考”博客。

相关文章 :


翻译自: https://www.javacodegeeks.com/2011/12/architecture-spike-kata.html

程序 卡塔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值