`
java-xb
  • 浏览: 126486 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于代码重构的 读书笔记 (一)

阅读更多

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等。

 

分享到:
评论
6 楼 java-xb 2010-03-06  
li445970924 写道
我看看了那本书 感觉是在测试 觉得很没意思....但一些大牛很推崇这本书
这是为什么呢

这本书主要不是讲技术的,而是将怎么写出优秀的代码,减少bug,教你如何优化自己的代码和重构你的代码,等你学到一定程度再看这本书就有意思了。
5 楼 qingfengjushi1 2010-03-04  
敏捷开发最重要的部分是TDD, 但我还没体会到其精髓, 一直没有养成开发功能前先写测试程序的习惯, 可能是工作环境所致, 也希望多了解写这方面的东西, 感谢LZ.
4 楼 xiongbin 2010-03-04  
好东西要多多,希望LZ继续写下去
3 楼 li445970924 2010-03-04  
我看看了那本书 感觉是在测试 觉得很没意思....但一些大牛很推崇这本书
这是为什么呢
2 楼 java-xb 2010-03-04  
多谢,我会一章一章写的
1 楼 quxiaoyong 2010-03-04  
呵呵,不错,希望楼主多写点。

相关推荐

    [免费高清PDF]31天重构系列笔记.rar

    《31天重构系列笔记》是一本专注于C#编程语言重构技术的教程,该资源以免费高清PDF的形式提供。重构是软件开发过程中的一种重要实践,它旨在改进代码结构,提高可读性和可维护性,而不会改变外部行为。在31天的时间...

    代码整洁之道读书笔记.zip

    个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...

    代码质量-读书笔记

    9. **重构**:定期进行代码重构,去除重复代码,简化复杂逻辑,可以提高代码质量并降低维护成本。 10. **编程哲学**:最后,像YAGNI(You Aren't Gonna Need It)和KISS(Keep It Simple, Stupid)这样的原则提醒...

    重构笔记

    现代IDE(集成开发环境)如IntelliJ IDEA、Eclipse等通常内置了重构工具,支持自动化的代码重构操作,如重命名、移动、提取接口等。这些工具极大地提高了重构的效率,并降低了出错的可能性。此外,版本控制系统如Git...

    重构-第3章 代码的坏味道-读书笔记

    《重构-第3章 代码的坏味道》是软件开发领域的一本经典著作,由Martin Fowler所著。这本书深入探讨了如何识别并消除代码中的不良设计模式,以提高代码质量、可读性和可维护性。在第三章中,作者详细列举了多种"代码...

    《重构》----学习笔记

    《重构》是一本深入探讨软件开发过程中的代码优化与改进的经典著作。重构,简单来说,是在不改变软件外部行为的前提下,对其内部结构进行改进,以提高代码的可读性、可维护性和可扩展性。这一过程并非依赖于个人天赋...

    《重构_改善既有代码设计》观后感PPT

    【美】马丁福勒 著 是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发方法的创始人之一 重构_改善既有代码设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄

    重构_改善既有代码的设计.rar

    《重构:改善既有代码的设计》是由马丁·福勒(Martin Fowler)所著的一本经典IT著作,由侯捷翻译成中文。这本书详细阐述了重构这一关键的软件开发实践,旨在提高代码的质量、可读性和可维护性。在编程领域,重构是...

    《重构-改善既有代码的设计》电子书以及总结的书中源码

    这些笔记对于理解和实践重构会有很大的帮助,它们可以作为阅读电子书的补充,帮助读者更好地吸收和应用书中的知识。 另外,"Refactoring"这个文件可能是一个代码库,包含书中用作示例的源代码。这些代码示例是实际...

    代码整洁之道-----读书笔记

    在阅读这本书的过程中,我们可以学到很多关于代码整洁性的关键概念。 1. **命名规范**:书中的一个重要部分强调了有意义的命名对于代码可读性的重要性。好的命名应该简洁明了,能够准确反映变量、函数或类的用途。...

    练习项目的笔记和代码

    在IT行业中,实践是提升技能的关键,而"练习项目的笔记和代码"正体现了这一核心理念。这个资源集合可能包括了作者在完成各种编程项目时所记录的笔记、编写和调试的代码,以及对相关技术的深入理解。这些资料对于个人...

    代码整洁之道幻灯片笔记

    9. **重构**:持续进行代码重构,优化代码结构,消除重复,提升可读性。重构不改变代码的外部行为,但可以使内部结构更清晰。 10. **代码审查**:通过同行评审,发现并修正潜在问题,分享知识,提高团队整体代码...

    《Python编程金典》读书笔记

    ### 《Python编程金典》读书笔记知识点梳理 #### 1. 绪论 绪论部分通常会介绍Python的历史背景、特点以及为什么选择Python作为学习和使用的编程语言。此外,还会涉及Python与其他编程语言的区别,以及它在不同领域...

    c++读书笔记程序以及源码

    这些笔记可能涵盖调试技巧、代码重构、性能调优、异常处理等多个方面。 总之,这个C++读书笔记程序及源码资源为学习者提供了宝贵的实践材料,通过阅读和理解源码,不仅可以深化对C++语言的理解,还能掌握数据库和...

    关于那些阅读源代码技巧

    文章提供了关于阅读源代码的技巧和方法,其中涉及多个方面,包括目的、工具、知识准备、笔记制作和实用技巧等。 首先,阅读源代码的目的可以多种多样,包括纯粹为了学习、添加新功能、重构代码以及修复Bug。不同的...

Global site tag (gtag.js) - Google Analytics