敏捷设计简单说明

来源:互联网 发布:哪个软件可以写日记 编辑:程序博客网 时间:2024/04/29 19:19

上一周入手一本大作,敏捷软件开发原则、模式与实践,刚开始接触这本书的时候,书中第一部分敏捷开发的相关介绍我只是快速地扫过,因为我还没有一各统筹计划的能力,我更关心地是如何写出优美的程序,所以我的关注点集中在开发实践上。

我将会把我看到的关于本书的内容以及部分java源码做个读书笔记,一方面加深自己的理解,另一方面,下次需要时可以快速找到相关理论。本书的源码后期将会上传到github上。

下面把书中关于敏捷设计方面的内容做个简单介绍:

敏捷开发:是以微小增量方式去迭代开发,在本书中采用测试驱动开发。

一个不好的软件会带来的问题如下:

  1. 僵化性:设计难以改变

    单一的改动会导致有依赖关系的模块中的连锁改动

  2. 脆弱性:设计易于遭到破坏

    在进行一个改动时,程序的许多地方可能就会出现问题

  3. 牢固性:设计难以重用

    设计中包含对其他系统有用的东西,但是将其分离出来,难度大

  4. 粘滞性:难以做正确的事情

    需要对原有设计进行破坏,才能进一步开发

  5. 不必要的复杂性:过分设计

    包含有当前没有用的组成部分

  6. 晦涩性:混乱的表达

    模块难以理解,代码不够清晰

  7. 不必要的重复

    复制粘贴导致系统构建在许多重复的代码片段上

在我们设计软件过程中,有时候没有良好设计,也没有一次次去迭代,大部分时候是为了完成工作而工作,所以我参与以及接触的项目或多或少都有以上问题,给后期维护带来很大麻烦。

为解决上述软件开发过程中可能出现的各种各样问题,有一些原则可以遵循。

  • 1.单一职责原则SRP

  • 2.开放封闭原则OCP

  • 3.Liskov替换原则LSP

  • 4.依赖倒置原则DIP

  • 5.接口隔离原则ISP

后续将会将这本书的内容一一详尽,接下来会对各个原则进行说明。