`
vigosun
  • 浏览: 11082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

指南:如何写出易测试的java 代码 from google

阅读更多

指南:如何写出易测试代码

作者:Jonathan Wolter,Russ Ruffer,Miško Hevery     
翻译:刘冬清 联系方式: (liudongqing (at) Gmail) , 有效的测试者网站

Google ,为了使我们的代码保持尽可能好的状态,我们不断把这些提醒提供给我们的软件工程师。现在,我们很高兴能把它们和大家分享。


非常感谢那些为了完成这个指南,给予灵感并长时间努力工作的人们:

 

 

同时感谢Blaine R Southam 将此文档转成 pdf 格式


预警信号
  • 在构造函数或者成员变量定义中使用关键字new
  • 在构造函数或者成员变量定义中调用静态方法
  • 在构造函数中做为成员变量赋值以外的任何其它
  • 在构造函数调用结束后,对象没有被完全初始化(警惕initialize方法)
  • 在构造函数中使用流程控制语句(条件或循环)
  • 代码在构造函数中创建复杂的对象图,而不是用factory或者builder
  • 增加或使用了初始化代码块

缺点 2:挖掘协作对象

预警信号

 

  • 传入的对象从未被直接使用(只是借用来访问别的对象)
  • 违反迪米特法则:使用多余一个点( . ),方法调用链跨越了对象图
  • 可疑的命名: context environment principal container , 或 manager

 


缺点 3:不友好的全局状态和单子(Singleton

预警信号:

 

  • 添加或使用单子
  • 添加或使用静态成员或静态方法
  • 添加或使用静态初始化代码段
  • 添加或使用注册类
  • 添加或使用服务定位类

 


预警信号
  • 总结类做什么的时候用了“和”这个词
  • 对团队新成员来说,读并迅速“了解”该类很困难
  • 类中有只用于某些方法的成员变量
  • 类中有只操作其参数的静态方法

分享到:
评论

相关推荐

    仿google分页完整代码

    SELECT * FROM table_name LIMIT $limit OFFSET ($page - 1) * $limit; ``` 其中,`$limit`是每页数据量,`$page`是当前页数。 3. **计算总页数**:根据查询结果的总行数除以每页的行数,向上取整得到总页数。...

    Gson jar包 2.8版本含源代码和文档。最好用且强大的java json包,没有之一.Google出品

    Gson是Google开发的一款Java库,它允许Java对象和JSON数据之间进行相互转换。这个库在处理JSON数据时提供了极大的便利性,特别是在Android和Java应用开发中广泛应用。标题提到的"Gson jar包 2.8版本含源代码和文档...

    JSON-java-master

    如果有测试文件(如`.test.java`),则可以通过测试用例来了解库的功能和预期行为。 总之,"JSON-java-master"是一个专注于JSON处理的Java项目,可能包含了一套独特的API或优化策略,可以帮助开发者更高效地在Java...

    From-design

    【标题】: "从设计到实现:Android应用开发入门指南" 【描述】: "本教程旨在帮助初学者从设计概念出发,逐步理解并实践Android应用的开发过程。通过'From-design-to-Android-part1-master'这个项目,我们将探索如何...

    selenium开发:谷歌浏览器和驱动配套版本

    标题中的“selenium开发:谷歌浏览器和驱动配套版本”意味着在进行Selenium自动化测试时,确保浏览器和ChromeDriver的版本匹配至关重要。不兼容的版本可能会导致各种问题,如脚本无法执行、浏览器无响应或者出现错误...

    java后台生成JSON数据

    Java 后台生成 JSON 数据是现代 Web 应用开发中的常见任务,特别是在与前端框架如 EXT 进行数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析...

    一个Java序列化反序列化库,用于将Java对象转换为JSON和返回JSON.zip

    在压缩包中的"说明.txt"可能包含了关于如何使用这个库的详细指南,而"gson_main.zip"可能包含了库的源代码或者示例程序。通过研究这个库的源代码和示例,开发者可以更深入地理解如何利用Gson库进行Java对象和JSON的...

    ETCD V3 java 完整例子

    它基于Google的gRPC协议,并提供了多种语言的客户端库,包括Java。在Java中使用ETCD V3,我们可以利用其提供的API来实现高效、可靠的键值操作。以下是对ETCD V3 Java API的详细知识点解析: 1. **安装与配置** 在...

    Beginning Google Web Toolkit From Novice To Professional

    本书旨在为初学者提供一套全面的教程,帮助他们掌握Google Web Toolkit(GWT)的使用方法,从而能够开发出高效、高质量的网络应用程序。 ### GWT简介 Google Web Toolkit(GWT)是一种用于构建和优化复杂Web应用...

    android_jni操作指南

    ### Android JNI 操作指南 #### 一、简介 在Android开发中,JNI (Java Native Interface) 是一种重要的技术,它允许开发者在Java代码中调用C或C++编写的本地方法,从而实现性能优化或其他高级功能。通过使用...

    Beginning Google Web Toolkit From Novice to Professional

    《初识Google Web Toolkit:从新手到专家》这本书是一本为所有层次的开发者设计的GWT(Google Web Toolkit)入门指南。GWT是Google推出的一个开源工具包,它允许开发者使用Java语言来编写Web应用程序,并自动编译成...

    google-gson-2.2.4

    "google-gson-2.2.4" 是Google开发的一个Java库,主要用于将Java对象转换为JSON(JavaScript Object Notation)格式的字符串,以及将JSON数据解析回等效的Java对象。这个版本号"2.2.4"代表了Gson库的一个稳定发行版...

    android 实现用代码安装apk

    在Android平台上,有时候我们需要在应用程序内部实现安装APK文件的功能,比如更新应用或者安装扩展...记住,始终遵守Google Play政策和Android开发者指南,避免安装未经用户明确许可的第三方APK,以防止恶意软件风险。

    android jni开发指南

    Android 的 JNI (Java Native Interface) 技术允许开发者在 Android 应用程序中调用 C 或 C++ 编写的原生代码,这种混合编程的方式使得开发者能够利用 C 和 C++ 的强大性能优势。本文档将详细介绍如何在 Android ...

    Google.Hacks.探索和利用全球信息资源的技巧和工具——英文版

    ### Google.Hacks:探索和利用全球信息资源的技巧和工具 ...通过以上知识点的介绍,《Google.Hacks》一书为读者提供了全面而深入的Google搜索引擎应用指南,不仅有助于提高搜索技能,还能激发更多创新的应用场景。

    Beginning.Google.Web.Toolkit.From.Novice.to.Professional[www.TopSage.com].zip

    《初识到精通:Google Web Toolkit实战》是针对想要学习和掌握GWT(Google Web Toolkit)的开发者的一本详尽指南。这本书旨在帮助初学者快速理解并熟练运用GWT来开发Web 2.0应用程序。GWT是一款由Google提供的开源...

    selenium使用指南1

    Selenium 是一套开源的 Web 自动化测试框架,支持多种编程语言,如 Python、Java、C# 等。它提供了一个 WebDriver 接口,通过这个接口,我们可以控制浏览器进行浏览、点击、填写表单等操作。WebDriver 兼容多种...

Global site tag (gtag.js) - Google Analytics