上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 28 下一页
摘要: 这段时间整理了一下TDD的一些认识:TDD路线需求(不清晰、不完整)-》设计(不清楚、不完整)-》测试(需求清晰化、设计清晰化)-》实现-》重构不是一开始就写测试,而是一开始分析需求,这个需求往往不清晰也不完整。针对这个需求我们要做大体的设计。然后开始针对某个需求编写测试用例,写测试用例的时候你会发现隐藏在背后的需求,这也是需求清晰化的过程。这样开发人员一开始就可以接触需求,而不是一开始搭框架。针对测试用例编写实现代码,然后适当重构。再继续针对下个需求编写测试,如此往复。这样不但紧紧的抓住需求,保证你的代码都的可测性,最后还留下监护代码质量的测试工程。这就好比造飞机按照当前我们的软件开发方式。 阅读全文
posted @ 2010-12-15 17:56 玩玩乐乐 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 尽管在传统测试理论中,测试几乎已经伴随了整个开发周期:单元测试、集成测试、系统测试、验收测试。但是,更多的时候我们遇到的情况是:至少在项目开始集成之前,测试是基本不存在的。程序员不愿意在模块完成之后再花时间来写测试代码(事实上,很多程序员连文档都欠奉),而测试人员则不会写测试代码(能写代码的话通常都已经被抓去写代码了)。事实上,即使测试人员愿意写测试代码来完成对代码的单元测试,这样的分工也是不划算的,因为这引入了额外的人与人之间的交流成本。于是我们的测试通常是在集成阶段开始进入的,于是我们不得不在这个时候在来面对可能的模块质量问题、模块设计问题以及其他许多早在那之前就应该已经解决的问题。 这个 阅读全文
posted @ 2010-12-15 16:42 玩玩乐乐 阅读(1760) 评论(0) 推荐(0) 编辑
摘要: 先考虑它是否可以单独到一个类,再考虑使用反射class Stranger { public Stranger(final String name) { this.name = name; } private final String greet(final String hello) { return hello + name; } private String name = "";}public class PrivateTest { public static void main(String args[]) throws Exception { Stranger testObj = ne 阅读全文
posted @ 2010-12-15 00:28 玩玩乐乐 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 我们谈到的TDD技术主要是从设计的角度谈起,对于测试的全过程进行分析与总结,希望通过本文能对大家有所帮助。测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了TDD技术优势、原理、过程、原则、测试技术、Tips 等方面。背景一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。最近兴起的一些软件开发过程相关的技术,提供一些比较高效、实用的软件过程开发方法。其中比较基础、关键的一个技术就是 阅读全文
posted @ 2010-12-14 23:51 玩玩乐乐 阅读(985) 评论(0) 推荐(0) 编辑
摘要: 作为一个有理想、有追求的程序员,你成天被各种名词包围着,你对其中一个叫做敏捷的东西特别感兴趣,因为它特别强调人的作用,这听着都让做程序员的你感到舒服。为了让自己早日敏捷起来,你从众多的敏捷实践中选择了一个叫做测试驱动开发(Test Driven Development,TDD)的作为你的起始点。因为它对你周遭的环境要求是最低的:它不像结对那样,要求其他人和你一起合作;也不像采用Story那样改变你所在团队的做事方式……你所需要做的,只是在你编写业务代码之前,把测试先写好。这完全是一种润物细无声的做法,根本无需告诉你之外的任何人。就在别人忙碌的找bug时,你便开始享受敏捷带给你的快乐了。顺便带来 阅读全文
posted @ 2010-12-14 23:21 玩玩乐乐 阅读(444) 评论(0) 推荐(0) 编辑
摘要: MySQL存储过程之事务管理ACID:Atomic、Consistent、Isolated、Durable存储程序提供了一个绝佳的机制来定义、封装和管理事务。1,MySQL的事务支持MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关:Java代码MyISAM:不支持事务,用于只读程序提高性能InnoDB:支持ACID事务、行级锁、并发BerkeleyDB:支持事务隔离级别:隔离级别决定了一个session中的事务可能对另一个session的影响、并发session对数据库的操作、一个session中所见数据的一致性ANSI标准定义了4个隔离级别,MySQL的InnoDB都支 阅读全文
posted @ 2010-12-14 13:22 玩玩乐乐 阅读(8721) 评论(0) 推荐(3) 编辑
摘要: 一、使用Statement而不是PreparedStatement对象JDBC驱动的最佳化是基于使用的是什么功能. 选择PreparedStatement还是Statement取决于你要怎么使用它们. 对于只执行一次的SQL语句选择Statement是最好的. 相反, 如果SQL语句被多次执行选用PreparedStatement是最好的.PreparedStatement的第一次执行消耗是很高的. 它的性能体现在后面的重复执行. 例如, 假设我使用Employee ID, 使用prepared的方式来执行一个针对Employee表的查询. JDBC驱动会发送一个网络请求到数据解析和优化这个查 阅读全文
posted @ 2010-12-14 11:46 玩玩乐乐 阅读(4036) 评论(0) 推荐(0) 编辑
摘要: 隔离级别(isolation level)l隔离级别定义了事务与事务之间的隔离程度。l隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。lANSI/ISO SQL92标准定义了一些数据库操作的隔离级别:l未提交读(read uncommitted)l提交读(read committed)l重复读(repeatable read)l序列化(serializable)l通过一些现象,可以反映出隔离级别的效果。这些现象有:l更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。l脏读(dirty read):当一个事务 阅读全文
posted @ 2010-12-14 11:07 玩玩乐乐 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 引言作为多用户应用程序开发人员所面临的最为复杂的领域之一,基于服务器的系统必须处理好锁定策略的影响。如果实现得不好,将导致包括性能问题、死锁以及异常的应用程序行为等各类问题。本文的目的在于列出基本问题、常用策略和模式以及有关使用锁定策略的时机和方法的一般性建议。本文假设开发人员已经掌握所使用的 SQL,因而不会全面介绍使用对象关系(Object Relational,OR)映射工具的复杂细节。回页首事务锁定与会话锁定数据库管理系统在事务范围之内提供锁定机制。采用读取或更新锁可防止应用程序的不一致行为;锁的实际使用取决于开发人员使用的 SQL 语句类型以及在数据库连接中指定的隔离级别。但是,仅仅 阅读全文
posted @ 2010-12-13 17:54 玩玩乐乐 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 丢失更新的定义:当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其他事务的存在。最后的更新将覆盖由其他事务所做的更新,这将导致数据丢失。典型事务序列是: begin Transaction; select col_value into :var_col_value from tableA where keyid=:keyid; ...... var_col_new_value=var_col_value+1 update tableA set col_value=:var_col_new_value where keyid=:keyid; com 阅读全文
posted @ 2010-12-13 14:31 玩玩乐乐 阅读(475) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 28 下一页