软件开发记录了一些在学习软件开发中的心得体会。主要是关于敏捷开发,极限编程(XP),测试驱动开发(TDD)方面的内容。其中也有一些我在开发中用到的开发方法和流程。
实现模式读书摘要-模式实践2
实现模式:类
数据的变化比逻辑要频繁的多,正是这种现象让类有了存在的意义。每个类其实就是这样一个声明:这些逻辑应该放在一起,它们的变化不像他们所操作的数据那么频繁;这些数据也应该放在一起,它们的 变化频率差不多,并且由与之相关的逻辑来负责处理。 … more
实现模式读书摘要-模式实践1
实现模式:局部化影响
组织代码结构时,要保证变化只会产生局部化影响。如果这里的一个变化会引起那里的一个问题,那么变化的代价就会急剧上升了。把 影响范围缩到最小,代码就会有极佳的沟通效果。它可以被逐步深入理解,不必一开始就要鸟瞰全景。
因为实现模式背后一条最主要的动机就是减少变化所引起的代价,所以局部化影响这条原则也是很多模式的形成缘由之一。
实现模式:最小化重复 … more
实现模式读书摘要-一种编程理论
每个模式都承载着一点点理论。但实际编程中存在一些更加深广的影响力,远不是孤立的模式所能概括的。本章将会讲述这些贯穿于编程中的横切概念,它们被分为两类:价值观和原则。
价值观是编程过程中的统一支配性主题。珍视与其他人沟通的重要性,把代码中多余的重复性去掉,并保持开放的心态,这才是我们工作状态最佳的表现。 … more
实现模式读书摘要-模式
绝大多数程序都遵循一组简单的法则。
更多的时候,程序都是被阅读,而不是被编写。
没有“完工”一说。修改程序的投入都远大于最初编写程序的投入。
程序都由一组基本的语句和控制流概念组合而成。
程序的阅读者需要理解程序——即从细节上,也从概念上。有时候从细节开始,逐渐理解概念;有时候从概念开始,逐渐理解细节。 … more
实现模式读书摘要-实现模式的价值
沟通、简单和灵活的价值观应当被所有开发人员所铭记。局部影响、最小化重复、将逻辑与数据捆绑等原则同样是通用性的指导思想,比价值观更贴近编程场景,在价值观和模式之间搭建了桥梁。 … more
TDD-软件中所表示的模型
一、 关联
对象之间的关联使得建模与实现之间的交互更为复杂。 … more
SRP:单一职责原则
提高代码可测试性的准则
在用测试驱动开发的方式写代码时,我们实际上是在做设计,而这些设计会直接影响代码将来的友好程度。在编写代码前先写测试能够提高代码的可测试性。但如果遵循下列的设计准则,将能解决代码不可测试的问题。
多用组合少用继承
避免使用static关键字,以及Singleton模式
隔离依赖(Isolate dependencies)
注入依赖(Inject dependencies) … more
测试夹具(Fixture)介绍
什么事测试夹具
测试夹具是测试的上下文。是测试类中所有测试方法的共有初始条件。从本质上来说,夹具是整个运行时的状态,而并非仅只测试类的成员变量,或相关对象内部状态。
为什么需要夹具?因为夹具能够帮助我们消除重复,使测试更加紧凑。
追求优良的设计是重视夹具的备份原因。夹具把多个测试共享的状态移至一处,有效的消除了重复。但是我们也需要在消除重复和测试的可读性之间做出平衡。 … more
测试驱动开发(TDD)中选择测试的方法
在编写测试的时候,首先需要选择一个测试来进行编码,这时我们需要从一下几个方面做出权衡。
细节和整体
探索未知与轻车熟路
最大限度的获取价值与摘取现成的果实
走通基本功能路劲与先处理出错情况
细节和整体 … more