Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Java 质量保障

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Java 质量保障

Avatar for LI Daobing

LI Daobing

August 04, 2011
Tweet

More Decks by LI Daobing

Other Decks in Programming

Transcript

  1. 测试名最好是一个句子  测试名最好是一个句子  好的名字 : runShouldRaiseFooExceptionWithNullArgumen t  一般的名字

    : testRun  糟糕的名字 : test2  最好的情况是看见一个测试类的全部方法名就知 道这个类能干什么,什么情况下会有什么行为
  2. 服务应当是一个对象而不是一个类  比如 A 服务依赖于 B 服务,如果 B 服务是一 个对象,那么可以构造出一个

    B 服务的 Mock 对象,注入到 A 服务,方便测试 A 服务  如果 B 服务是一个类,那么测试起来就会很麻 烦
  3. 按 package 划分 Factory  如果工程比较大,只用一个 Factory 类会显得 过于复杂,一般建议按 package

    来划分 Factory  同时一个 package 最好只有一个 Factory, Factory 具有配置的隐喻,而配置应该集中而不 是分散  比如 com.snda.llap.replicator.client.DatanodeChoos erClientFactory
  4. 在边界处检查异常  尽量在系统边界处检查异常,而在系统中间让异 常透明通过  比如 web 或者 socket 服务,只在相应前做一

    个通用异常检查,并返回信息给用户  当然在另外一个边界处也要做适当检查,避免所 依赖的其他服务出现异常时延迟发现。
  5. Summary  Java  静态,面向对象  安全,易用,对多线程支持较好  推崇单元测试,文档,代码检查。 

    推崇设计模式,重构,团队合作。  也是在企业应用领域使用最广泛的语言。  不是动态语言 (Python, Ruby, …)  对高并发支持不好 (Scala, ...)
  6. Q&A