上一周入手一本大作,敏捷软件开发原则、模式与实践,刚开始接触这本书的时候,书中第一部分敏捷开发的相关介绍我只是快速地扫过,因为我还没有一各统筹计划的能力,我更关心地是如何写出优美的程序,所以我的关注点集中在开发实践上。
我将会把我看到的关于本书的内容以及部分java源码做个读书笔记,一方面加深自己的理解,另一方面,下次需要时可以快速找到相关理论。本书的源码后期将会上传到github上。
下面把书中关于敏捷设计方面的内容做个简单介绍:
敏捷开发:是以微小增量方式去迭代开发,在本书中采用测试驱动开发。
一个不好的软件会带来的问题如下:
僵化性:设计难以改变
单一的改动会导致有依赖关系的模块中的连锁改动
脆弱性:设计易于遭到破坏
在进行一个改动时,程序的许多地方可能就会出现问题
牢固性:设计难以重用
设计中包含对其他系统有用的东西,但是将其分离出来,难度大
粘滞性:难以做正确的事情
需要对原有设计进行破坏,才能进一步开发
不必要的复杂性:过分设计
包含有当前没有用的组成部分
晦涩性:混乱的表达
模块难以理解,代码不够清晰
不必要的重复
复制粘贴导致系统构建在许多重复的代码片段上
在我们设计软件过程中,有时候没有良好设计,也没有一次次去迭代,大部分时候是为了完成工作而工作,所以我参与以及接触的项目或多或少都有以上问题,给后期维护带来很大麻烦。
为解决上述软件开发过程中可能出现的各种各样问题,有一些原则可以遵循。
1.单一职责原则SRP
2.开放封闭原则OCP
3.Liskov替换原则LSP
4.依赖倒置原则DIP
5.接口隔离原则ISP
后续将会将这本书的内容一一详尽,接下来会对各个原则进行说明。