最开始想学TDD,在图书馆看到了这本书,便借来看看。我看书有一个习惯,就是顺着主线把所有的例子都自己调试一遍,不管难或简单。毕竟我们是个工学学科么,而且我也是一个励志做一个工程师的人,多写代码才是王道。昨天把前四章的主线都写了,看着不顺眼的地方都是按照自己的编码风格改写的,没有一味的遵照书上的做法。书后的例题木有做,暂时没有时间。

个人感觉这本书讲的很细,对编程基础要求的不高。但是它对于Java的很多特性剖析的很清楚,对TDD也讲的很不错,中间还穿插了一些设计模式和重构的一些东西,“21天全能”哇。这本书最大的好处就是实用,并不是一本停留在理论上的书。个人认为所谓的实践模式和设计模式就是前人的经验总结,把一些经常遇到的场景的最佳实践进行了总结。与其去死记硬背,不如在遇到了之后做一个参考,看看人家是怎么弄得。多做几次就记住了。而且如果不了解模式提出的背景,没有和实践结合起来,恐怕只会画虎不成反类犬。而重构的目的就是为了保证代码的质量,比如:可读性、可扩展性和稳定性。重构的定义大概是说,在不改变代码功能的前提下,对代码质量进行优化。那么它的前提,不改变代码功能就需要测试来支撑了。只有有了足够的测试,我们才能确信我们的重构没有引起功能上的变化。那么对于一个我这样的初级开发人员来说,能自己编写的测试恐怕还是单元测试居多。那么为了保证我们的代码质量,我们势必会编写足够的单元测试。那么在此基础上,TDD并不会带来更多的负担,它只是把编写测试用例的时间提前。在编写代码之前就写测试用例的好处是保证了我们代码的可测试性。这样,势必会降低功能之间的耦合性。

然而,没有银弹。首先TDD对于开发人员的要求势必比糙快猛的开发要求高。其次,功能性的开发可能比较好撰写测试代码,但是对于一些UI方面的东西,我还是压根不知道怎么去测试的。第三,TDD适合在项目开始的时候进行,对于一个已经开始一段时间的项目,我们能做的可能不多。当然在Balto童鞋给我的教导中,我们还是可以从以下几个方面做一些尝试:1.开辟一个独立的功能模块,应用TDD,把握一块是一块;2.推倒重来。

对我来说,编程就是一场修行,很多东西我们知道好,但是不会坚持。要做的其实很简单,把我们知道的好的地方,严格的坚持下来,然后及时总结我们遇到的好或不好的地方,找寻解决方案,就好了。水滴石穿。

agile java_《Agile Java》阅读笔记相关推荐

  1. 关于敏捷开发方法(Agile Software Development)的阅读笔记

    对"敏捷开发"(Agile Software Development)这个词,我是在这学期邹欣老师<现代程序设计>课上第一次听到的,刚听到时并不知道其具体指什么,只是从 ...

  2. thinking in java 阅读笔记 第六章 类再生

    1.介绍了合成和继承,第一章就介绍过,这里详细的介绍了一下. 2.介绍了继承关系初始化构建方法调用顺序,这些东西建议阅读<<深入理解java虚拟机>>讲得更加透彻. 3.到底选 ...

  3. Effective Java 阅读笔记——方法

    38:检查参数的有效性 每当编写方法或者构造器的时候,应该考虑它的参数有哪些限制,在方法的开头处对参数进行检查,并且把这些限制写入文档. 注意: 对于公有方法,应该使用@throws标签在文档中说明违 ...

  4. Effective Java阅读笔记——引言

    "我很希望10年前就拥有这本书.可能有人认为我不需要任何Java方面的书籍,但是我需要这本书." --Java之父 James Gosling 在图书馆找到这本java著作时,首先 ...

  5. hashmultimap java_【Java 学习笔记】 HashMultimap(guava)

    因为项目需要,又开始写Java代码.C++有一套固定的STL,而java的容器则灵活的多,最基本的应该是java.util.*下面的而一些容器,当然在其他的包里也有其他继承了该包为了各自需求实现的一些 ...

  6. gnu java_【Java学习笔记】修饰符

    1.修饰顶层类(不是指在一个类中定义的类)包括abstract.public.final.局部变量只能用final修饰. 2.一个类中,可以访问类本身或内部类的实例的私有成员. 3.abstract修 ...

  7. 《深入理解Java虚拟机 - Jvm高级特性与最佳实践(第三版)》阅读笔记

    <深入理解Java虚拟机>阅读笔记 本repository为<深入理解Java虚拟机 - Jvm高级特性与最佳实践(第三版)>阅读笔记,因为第一章主要讲的是Java的发展历史, ...

  8. 【Java】《Java面向对象编程的三大特性》阅读笔记

    前言 偶然读到这篇文章(<Java面向对象编程的三大特性>),想来这也算论文?这种还不满网络都是?读罢觉得写得还真不错,这里以我愚见,简单点评一二,不足之处还望指教. 阅读笔记 笔记1 文 ...

  9. 《Java修炼指南:高频源码解析》阅读笔记一Java数据结构的实现集合类

    一.Arrays工具类 来自java.util.Arrays,用来处理数组的各种方法. 1.1 List asList(T- a) 用来返回由自定数组支持的固定大小列表,虽然这里返回了一个List,但 ...

  10. Java并发编程艺术阅读笔记(一)

    Java并发编程艺术阅读笔记(一) 1.什么是上下文切换 CPU通过时间片分配算法循环执行任务,执行完一个任务的时间片后就会切换到下一个任务.但是在切换任务之前会保存上一个任务的状态,在切换回该任务, ...

最新文章

  1. MySQL DATE_FORMAT() 函数
  2. 【数据结构与算法】之深入解析“下一个更大元素III”的求解思路与算法示例
  3. 这些器件是电子垃圾?是艺术作品!!!
  4. spring-security-学习笔记-03-spring-security快速上手
  5. 谷歌招聘主管公开八大求职秘诀
  6. qdialog 返回值_c – QDialog exec()并获取结果值
  7. pgsql转储_十六进制转储如何工作
  8. 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
  9. node.js配置oracle,Node.js 安装配置 | 菜鸟教程
  10. DLP和DMD的区别
  11. beini奶瓶-无线网络蹭网破解-简明说明
  12. 【ML37】Bellman Equations
  13. 莫名其妙出现各种syntax error的解决方案
  14. html5对电脑配置要求,bim软件对电脑配置要求高吗
  15. 低频RFID 底层编码
  16. 关于EJB,为什么用EJB?为什么不用EJB?
  17. 【NLP】对比学习——文本匹配(二)
  18. Visual Studio 的问题:unable to locate visual studio installer
  19. linux操作系统第二版张玲课后答案,Linux操作系统(基础原理与应用第2版高等学校计算机专业规划教材)...
  20. 低频量化之 可转债 配债价格表

热门文章

  1. jquery内容过滤器:contains :empty :has(p) :parent
  2. 杭电 -- 2553 N皇后问题
  3. Mybatis编写初始化Dao代码
  4. printk打印机别
  5. struts2.3+spring3.2+hibernate4.2例子
  6. VS2010 自动关闭的问题解决方法
  7. ASP.NET 防止F5刷新页面按钮重复提交
  8. 解决jupyter notebook输出显示不完整问题
  9. [转载] 20个常用Python库及200个第三方库
  10. 通过宝塔webhook,实现git自动拉取服务器代码