《测试驱动开发》阅读笔记一

第一部分讲了一个支付系统中支持多币种需求的例子。

作者以很慢的节奏来讲解TDD的过程,这节奏慢到甚至让我有一点难以接受,然而当着个例子

最终完成的时候,回头看看整个开发过程,感觉如作者所述,不觉间竟然已经走出了这么长的

一段距离。个人感觉,假如以传统的先设计再编码的方式开发,除非是非常非常有经验的程序

员,否则很容易会得到不符合需求的设计或者花过多精力在需求之外的设计上编码。

经过这学期的学习,我发现从一开始制定好计划是不切实际的,但是从另一本书《梦断代

码》我学习到:虽然一开始制定计划可能会有很多的不切实际,但是这个计划代表着我们开发

的大方向,我们要随变化而变化的不是方向,而是内容,每一个项目中的总结很重要,他是我

们的财富,是我们成为资深coder的前提,慢有慢的道理,快也有快的方法;在合适的项目里

使用合适的方法最好,这时候经验就很重要;所以,作为年轻人,要多多吸收资深coder的建议。

时间: 06-21

《测试驱动开发》阅读笔记一的相关文章

测试驱动开发笔记【初学者】

[基本步骤及流程]       1. 根据问题进行初始的需求分析,提取出初始而不完备的[to-do]列表:    2. 选择[ to-do]列表中的某个[to-do], 编写相应的测试:    3. 运行测试,发现无法通过:    4. 作出最简单的的改进,并运行测试使之通过:    5. 一小步一小步地重构代码.运行测试,并使之通过:    6. 跳转至[2].        [关键要素]    1.[to-do]列表: 需要完成的任务.当前要做的事情.标识完工.    2. the effe

源码阅读笔记 - 1 MSVC2015中的std::sort

大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格式化,去掉或者展开用于条件编译或者debug检查的宏,依重要程度重新排序函数,但是不会改变命名方式(虽然MSVC的STL命名实在是我不能接受的那种),对于代码块的解释会在代码块前(上面)用注释标明. template<class _RanIt, class _Diff, class _Pr> in

《STL源码剖析》---stl_tree.h阅读笔记

STL中,关联式容器的内部结构是一颗平衡二叉树,以便获得良好的搜索效率.红黑树是平衡二叉树的一种,它不像AVL树那样要求绝对平衡,降低了对旋转的要求,但是其性能并没有下降很多,它的搜索.插入.删除都能以O(nlogn)时间完成.平衡可以在一次或者两次旋转解决,是"性价比"很高的平衡二叉树. RB-tree(red black tree)红黑树是平衡二叉树.它满足一下规则 (1)每个节点不是红色就是黑色. (2)根节点是黑色. (3)如果节点为红色,则其子节点比为黑色. (4)任何一个节

socketserver.py代码阅读笔记

socketserver.py源码阅读笔记 前言 一直想弄清楚一个http server和Web框架的工作原理.但以我目前的实力,阅读一个http server或web框架代码还是太难了.后来又对异步IO.并发产生的兴趣.前几天做一个大作业需要写几个各种不同并发模型的TCP Server,写完才想起Python有现成的socketsever模块可以用,完全不需要自己写.于是对比了一下我写的代码和socketsever.py,发现我写的真没socketsever写的好.我的代码经验还是太少了.于是

2015年秋季阅读笔记计划

1.10月阅读完<需求工程——软件建模与分析> 10日22 :30之前发完第一篇阅读笔记,20日22 :30之前发完第二篇阅读笔记,30日22 :30之前发完第三篇阅读笔记: 2.11月阅读完<探索需求——设计前的质量> 10日22 :30之前发完第一篇阅读笔记,20日22 :30之前发完第二篇阅读笔记,30日22 :30之前发完第三篇阅读笔记: 3.12月阅读完<代码阅读方法与实践> 10日22 :30之前发完第一篇阅读笔记,20日22 :30之前发完第二篇阅读笔记,

【阅读笔记】计算机网络 第五版 阅读笔记(持续更新)

计算机网络 第五版阅读笔记 第一章 概述 1.因特网的组成 边缘部分:由所有连接在因特网上的主机组成 核心部分:由大量网络和连接这些网络的路由器组成 2.计算机之间的通信方式 客户服务器端方式(C/S模式):客户端是服务请求方,服务器端是服务提供方 对等方式(P2P模式):平等,对等连接通信,每一个主机既是客户又是服务器. 3.电路交换,分组交换和报文交换 3.1 电路交换:建立连接(占用通信资源)->通话(一直占用)->释放连接(释放通信资源). 优点:在通话的全部时间内,通话的两个用户始终

Hadoop阅读笔记(五)——重返Hadoop目录结构

常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼,先走外貌协会的路线,打量一番,再通过望闻问切等各种手段获取关于你的大量信息(如谈吐.举止等),以快速建立起对于你的认识. 待人接物如此,搞技术也不例外,起码我是这样的.把玩了一番Hadoop的MapReduce过程,单词计数.去重.单表关联等运行的时候控制台打印出各种我看懂看不懂的信息,有了这些视

IOS测试框架之:athrun的InstrumentDriver源码阅读笔记

athrun的InstrumentDriver源码阅读笔记 作者:唯一 athrun是淘宝的开源测试项目,InstrumentDriver是ios端的实现,之前在公司项目中用过这个框架,没有深入了解,现在回来记录下. 官方介绍:http://code.taobao.org/p/athrun/wiki/instrumentDriver/ 优点:这个框架是对UIAutomation的java实现,在代码提示.用例维护方面比UIAutomation强多了,借junit4的光,我们可以通过junit4的

Camel In Action 阅读笔记 第一章 认识Camel 1.1 Camel 介绍

1.1 Camel 介绍 Camel 是一个为了您的项目集成变得高效有趣的集成框架,Camel 项目在2007年初开始的,相对来说它还比较年轻,但它已然是一个非常成熟的开源项目,它所使用的是Apache 2开源License, 其背后的社区非常强大. Camel主要目的就是简化集成,当您用心读完本书以后,您会很感谢Camel并把它做为您的一个必需技能. Apache Camel这个项目之所以命名为Camel的主要原因是因为简单好记,有一个小道说法是项目创建者之一在吸了一个叫"骆驼"牌的

Yii源码阅读笔记 - 日志组件

?使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category);Yii::trace($message, $category); 两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG: defined('YII_DEBUG') or define('YII_DEBUG', true); Yii::log方法的调用需要指定message的level和category.category是格式为“xxx.yyy.z