AgileJava 读书笔记 (一)
AgileJava是一本基于测试驱动开发的方法帮助你学会如何雕琢你的Java代码,从而得到稳定的面向对象设计和高可维护、高质量的系统。全书以一个学生管理系统为例子,一步一步教你如何设计你的系统,编写出高质量的代码,重构已有的代码等。
下面是我对本书学习的跟踪记录:
1 需要的软件
IDE或者程序编辑器
IDE:Eclipse、Myeclipse、Borland Jbuilder、NetBeans等
程序编辑器 记事本、TextPad、UltraEdit和SlickEdit等。
Java虚拟机
Java 2 Sdk 版本 5.0
Junit
您可以从Http://www.Junit.org上免费下载JUnit 就是将JUnit.zip文件内容解压缩到硬盘上本书使用的是Junit 3.8.1。
Ant
Ant是一个基于XML的编译工具,Ant现在已经成为了编译和部署Java项目的标准。这个工具可能已经过时了。
2 编写测试类测试环境
第一章 起步
软件开发是一个主要问题是代码维护的高成本:原因之一是匆忙行动或者纯粹疏忽导致的代码混乱。软件开发的主要任务是让软件可以工作,可以通过在编码之前先编写测试代码来应对这个挑战。其次,您的工作要确保代码是干净的。可以通过两种机制来实现
1. 保证在系统中没有重复的代码。
2. 保证代码是干净的,并且富有表现力,可以清晰地体现程序员的意图。
看一个测试代码
Public void testCreate(){
Student student = new Student(“Jane Doe”);
String studentName = student.getName();
assertEquals(“Jane Doe”,studentName);
String secondStudent = new Student(“Joe Blow”);
String secondStudentName = secondStudent.getName();
assertEquals(“Joe Blow” ,secondStudentName);
assertEquals(“Jane Doe”,studentName);
}
第一步 要清除不必要的局部变量:studentName 和 secondStudentName 。它们丝毫无助于对方法的理解,它们可以被studentd对象的查询所替代,就像最后一个assertEquals。
应该改写为: assertEquals(“Jane Doe”,student.getName());
第二步 代码中到处嵌入字符串被视作不良的编程习惯。一个原因是,如果每个字符串所代表的意义不清晰地话,将很难理解这样的代码。在这个例子中,违背了不能有重复代码的准则。每个字符串(JaneDoe)都出现两次。而且这样的可能性意味着,改变了一个,没有改变另一个,从而代码中引入了缺陷。
消除此冗余的方法使用字符串常量代替一个字符串。
final String firstStudentName = “Jane Doe”;
这种开发流程是:
1 编写一个小测试,来断言某些功能正确与否。
2 运行测试,如果结果是失败。
3 编写代码,使测试通过。
4 重构测试和代码,消除重复的概念,确保代码富有表现力。
这样的循环,会很快成为一种根深蒂固、自然地开发流程。
其他注意地方:
1 成员变量和参数使用相同的名字,但是在必要的地方用Java关键字this来调用成员变量。
2 不要把成员变量直接暴露给其他对象。允许其他对象访问成员变量是一个坏注意
class Student {
private String name;
……
3 命名约定:采用驼峰模式命名规则,用名词来为成员变量命名,名字要能描述该成员变量被用作什么或者它表示什么,而不是如何实现。如firstName,trimer,description等。方法通常是动作或者查询:发送消息告诉对象做某件事情,或者您向对象请求获取某些信息。应该使用动词命名动作型方法。如:sell isDoorClosed等。取对象的属性方法一般的命名规则是getXxx这种形式,如取学生的姓名 getName方法。类名使用大写的驼峰模式,应该总用名词表示对象,对象是事物(实例)的抽象,不要使用复数名词作为类名。例如Student,LingList等。
分享到:
相关推荐
《31天重构系列笔记》是一本专注于C#编程语言重构技术的教程,该资源以免费高清PDF的形式提供。重构是软件开发过程中的一种重要实践,它旨在改进代码结构,提高可读性和可维护性,而不会改变外部行为。在31天的时间...
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...
9. **重构**:定期进行代码重构,去除重复代码,简化复杂逻辑,可以提高代码质量并降低维护成本。 10. **编程哲学**:最后,像YAGNI(You Aren't Gonna Need It)和KISS(Keep It Simple, Stupid)这样的原则提醒...
现代IDE(集成开发环境)如IntelliJ IDEA、Eclipse等通常内置了重构工具,支持自动化的代码重构操作,如重命名、移动、提取接口等。这些工具极大地提高了重构的效率,并降低了出错的可能性。此外,版本控制系统如Git...
《重构-第3章 代码的坏味道》是软件开发领域的一本经典著作,由Martin Fowler所著。这本书深入探讨了如何识别并消除代码中的不良设计模式,以提高代码质量、可读性和可维护性。在第三章中,作者详细列举了多种"代码...
《重构》是一本深入探讨软件开发过程中的代码优化与改进的经典著作。重构,简单来说,是在不改变软件外部行为的前提下,对其内部结构进行改进,以提高代码的可读性、可维护性和可扩展性。这一过程并非依赖于个人天赋...
【美】马丁福勒 著 是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发方法的创始人之一 重构_改善既有代码设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄
《重构:改善既有代码的设计》是由马丁·福勒(Martin Fowler)所著的一本经典IT著作,由侯捷翻译成中文。这本书详细阐述了重构这一关键的软件开发实践,旨在提高代码的质量、可读性和可维护性。在编程领域,重构是...
这些笔记对于理解和实践重构会有很大的帮助,它们可以作为阅读电子书的补充,帮助读者更好地吸收和应用书中的知识。 另外,"Refactoring"这个文件可能是一个代码库,包含书中用作示例的源代码。这些代码示例是实际...
在阅读这本书的过程中,我们可以学到很多关于代码整洁性的关键概念。 1. **命名规范**:书中的一个重要部分强调了有意义的命名对于代码可读性的重要性。好的命名应该简洁明了,能够准确反映变量、函数或类的用途。...
在IT行业中,实践是提升技能的关键,而"练习项目的笔记和代码"正体现了这一核心理念。这个资源集合可能包括了作者在完成各种编程项目时所记录的笔记、编写和调试的代码,以及对相关技术的深入理解。这些资料对于个人...
9. **重构**:持续进行代码重构,优化代码结构,消除重复,提升可读性。重构不改变代码的外部行为,但可以使内部结构更清晰。 10. **代码审查**:通过同行评审,发现并修正潜在问题,分享知识,提高团队整体代码...
### 《Python编程金典》读书笔记知识点梳理 #### 1. 绪论 绪论部分通常会介绍Python的历史背景、特点以及为什么选择Python作为学习和使用的编程语言。此外,还会涉及Python与其他编程语言的区别,以及它在不同领域...
这些笔记可能涵盖调试技巧、代码重构、性能调优、异常处理等多个方面。 总之,这个C++读书笔记程序及源码资源为学习者提供了宝贵的实践材料,通过阅读和理解源码,不仅可以深化对C++语言的理解,还能掌握数据库和...
文章提供了关于阅读源代码的技巧和方法,其中涉及多个方面,包括目的、工具、知识准备、笔记制作和实用技巧等。 首先,阅读源代码的目的可以多种多样,包括纯粹为了学习、添加新功能、重构代码以及修复Bug。不同的...