软件开发

软件开发记录了一些在学习软件开发中的心得体会。主要是关于敏捷开发,极限编程(XP),测试驱动开发(TDD)方面的内容。其中也有一些我在开发中用到的开发方法和流程。

  • 实现模式读书摘要-模式实践2

    Tags: 实现模式

    实现模式:类

    数据的变化比逻辑要频繁的多,正是这种现象让类有了存在的意义。每个类其实就是这样一个声明:这些逻辑应该放在一起,它们的变化不像他们所操作的数据那么频繁;这些数据也应该放在一起,它们的 变化频率差不多,并且由与之相关的逻辑来负责处理。 … more

  • 实现模式读书摘要-模式实践1

    Tags: 实现模式

    实现模式:局部化影响

    组织代码结构时,要保证变化只会产生局部化影响。如果这里的一个变化会引起那里的一个问题,那么变化的代价就会急剧上升了。把 影响范围缩到最小,代码就会有极佳的沟通效果。它可以被逐步深入理解,不必一开始就要鸟瞰全景。

    因为实现模式背后一条最主要的动机就是减少变化所引起的代价,所以局部化影响这条原则也是很多模式的形成缘由之一。

    实现模式:最小化重复 … more

  • 实现模式读书摘要-一种编程理论

    Tags: 实现模式

    每个模式都承载着一点点理论。但实际编程中存在一些更加深广的影响力,远不是孤立的模式所能概括的。本章将会讲述这些贯穿于编程中的横切概念,它们被分为两类:价值观和原则。

    价值观是编程过程中的统一支配性主题。珍视与其他人沟通的重要性,把代码中多余的重复性去掉,并保持开放的心态,这才是我们工作状态最佳的表现。 … more

  • 实现模式读书摘要-模式

    Tags: 实现模式

    绝大多数程序都遵循一组简单的法则。

    更多的时候,程序都是被阅读,而不是被编写。

    没有“完工”一说。修改程序的投入都远大于最初编写程序的投入。

    程序都由一组基本的语句和控制流概念组合而成。

    程序的阅读者需要理解程序——即从细节上,也从概念上。有时候从细节开始,逐渐理解概念;有时候从概念开始,逐渐理解细节。 … more

  • 实现模式读书摘要-实现模式的价值

    Tags: 实现模式

    沟通、简单和灵活的价值观应当被所有开发人员所铭记。局部影响、最小化重复、将逻辑与数据捆绑等原则同样是通用性的指导思想,比价值观更贴近编程场景,在价值观和模式之间搭建了桥梁。 … more

  • 提高代码可测试性的准则

    Tags: 代码可测试性, 隔离依赖, 注入依赖

    在用测试驱动开发的方式写代码时,我们实际上是在做设计,而这些设计会直接影响代码将来的友好程度。在编写代码前先写测试能够提高代码的可测试性。但如果遵循下列的设计准则,将能解决代码不可测试的问题。

    多用组合少用继承

    避免使用static关键字,以及Singleton模式

    隔离依赖(Isolate dependencies)

    注入依赖(Inject dependencies) … more

  • 测试夹具(Fixture)介绍

    Tags: TDD, 单元测试, 测试驱动开发, 测试夹具

    什么事测试夹具

    测试夹具是测试的上下文。是测试类中所有测试方法的共有初始条件。从本质上来说,夹具是整个运行时的状态,而并非仅只测试类的成员变量,或相关对象内部状态。

    为什么需要夹具?因为夹具能够帮助我们消除重复,使测试更加紧凑。

    追求优良的设计是重视夹具的备份原因。夹具把多个测试共享的状态移至一处,有效的消除了重复。但是我们也需要在消除重复和测试的可读性之间做出平衡。 … more