程序 卡塔

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

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,来自“更大盒子内的思考”博客。

相关文章 :

  • 如何启动编码道场
  • 无迭代开发–最新的新事物
  • 您在维护中不能敏捷吗? (第1部分)
  • 即使积压的订单也需要整理
  • 针对用户和新采用者的敏捷软件开发建议

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

程序 卡塔

程序 卡塔_建筑钉卡塔相关推荐

  1. python面向过程实践汉诺塔_递归汉诺塔-和递归汉诺塔相关的内容-阿里云开发者社区...

    多柱汉诺塔最优算法设计探究 多柱汉诺塔最优算法设计探究 引言 汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究.最简单的汉诺塔是三个柱子(A.B.C),因 ...

  2. 125KHz 100cm ID 读卡电路_考试答题卡读卡器网站

    考试答题卡读卡器网站 ad5hjlo 考试答题卡读卡器网站 "匀"是指所涂信息卡上所有信息位颜色的深浅要基本一致,同一信息位也要保持深浅一致.图象处理使用物理切割法,支持对格式.格 ...

  3. 开机自启动程序关闭方法_电脑非常卡,总有软件偷偷自启动?学会这1招,永久关闭它们!...

    小编有一个朋友,前段子发微信问我,说他的电脑非常卡,重装电脑后,会好转许多,非常流畅,但是过了几天又卡了. 我问了他的电脑配置,首先电脑的配置是绝对ok.当前一流水平,后来我远程操控了下他的电脑,发现 ...

  4. 出战卡不足_造成你卡段的五大原因,如果不够重视,你将很难进步

    #瓦罗兰特电竞赛# 最近从评论区看到一个很奇怪的现象,很多小伙伴把卡段,连跪都归咎于匹配机制和队友.可是事实真是如此吗? 不可否认,如今坑的队友不少,但是全都匹配给你了?对面也会有,为什么对方能赢?再 ...

  5. 开卡教程_流量卡开卡教程(必看)

    流量卡注意事项(必看)   注意:因系统更新,凡是在2019-3-10之前开通的流量卡若输入绑定的手机号提示卡号不存在,请输入流量卡后面ICCID,确认后需要重新绑定一下.   充值和开卡是同一个平台 ...

  6. 诺基亚玩java卡顿_诺基亚手机很卡怎么办

    诺基亚手机的机身运行缓存都非常的小,估计是内存不足导致的,不用着急,可以根据自己的情况看看下面的问题,然后对号入座,相信能够解决问题. 1.短信太多: 处理方法:删除不必要的短信,精选一些留下就行,平 ...

  7. 安卓手机反应慢又卡怎么办_手机变卡怎么办?简单一招叫教你解决!

    原标题:手机变卡怎么办?简单一招叫教你解决! 有很多人的手机永久了都会变得卡顿,有什么方法可以减少手机卡顿的问题呢,小编就来教你几招,让你可以在关键时刻轻松应对. 不常用的软件不仅会占用内存,还会拖慢 ...

  8. java卡写入_写入SD卡的权限

    问题 我希望我的应用程序将应用程序数据库存档到SD卡.在我的代码中,我检查目录canWrite()是否存在,如果不存在,则抛出anIOException.在这个特定的实例中,我试图将db文件复制到SD ...

  9. html制作花样链接卡页面_花样链接卡.html

    花样链接卡 div{ border: solid red 2px; width: 300px; height: 300px; padding: 10px; } a { color: white; di ...

  10. sam卡和sim卡区别_关于PSAM卡、SAM卡、SIM卡的特征和区别

    PSAM卡(Purchase Secure Access Module,销售点终端安全存取模块),内嵌于各类终端设备,为其提供 IC卡级别的安全保护, PSAM除具备用户卡功能外,还具有计算功能.PS ...

最新文章

  1. asp创建mysql表_创建一个数据库,用ASP怎么写?
  2. Ajax Control Toolkit 34个服务器端控件 详解
  3. c语言for循环的第三句,for循环语句的用法
  4. python with关键字学习
  5. build.xml引用其它文件的任务
  6. python Pillow 的简单案例
  7. Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 359404 bytes) in
  8. PyOpenGL之3D界面详解(一)
  9. 《统计学习方法》代码全解析——第四部分朴素贝叶斯
  10. 荣耀系列到底算不算华为手机
  11. html图片右上角关闭按钮,jQuery UI:datepicker – 如何在右上角添加关闭按钮(图像!)?...
  12. 《人月神话》读书笔记之第1章焦油坑
  13. SpringAMQP+RabbitMQ调试中的问题解决
  14. 809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。...
  15. PHP array(递归)转xml,xml转array
  16. ajax中的get和post的区别
  17. IOTQQ(OPQbot)—QQ机器人、部署在linux上(一步步实
  18. win10系统vmware虚拟机安装macOs Monterey
  19. [整理]Mac安装Meld,并使用Meld作为git diff tool的工具
  20. 移动通信网络规划:频谱划分

热门文章

  1. Python @property详解及底层实现介绍
  2. 机电学生写给十年后自己的一封信
  3. 收钱吧好还是网付好?
  4. 一元三次方程求解matlab_为什么一元n次代数方程必有n个根?
  5. IT规划的两大困惑及未来之路
  6. python截图黑屏_【Python】视频黑屏检测
  7. 离散概率分布的介绍及Python运用
  8. 【Unity3D】摇杆
  9. adsl拨号服务器构建代理池
  10. 抖音返利分销模式及代理系统开发