2部分敏捷设计
拙劣软件设计的 7 种特性:
- 僵化性:设计难以被改变
- 脆弱性:设计易于遭到破坏
- 牢固性:设计难以被重用
- 粘滞性:难以做正确的事情
- 不必要的复杂性:过分设计
- 不必要的重复:过多的拷贝
- 晦涩性:混乱的表达
比较好的原则
- 里氏替换原则
- 依赖倒置原则
- 单一职责原则
- 接口分离原则
- 开放封闭原则
什么是敏捷设计
源代码就是设计..
僵化性
单一的改动导致了有依赖关系的模块的连锁改动,这种设计就是僵化的。
脆弱性
进行改动的时候,很容易出现新问题,而且这种问题与改动的地方没有概念上的关联。
牢固性
设计中包含了对其他系统有用的地方,但是将它剥离出来需要付出的努力和风险比较大
粘滞性
就是说面临选择的时候,人们会去选择比较容易的破坏原来设计的事情,因为保持系统的设计往往是复杂的
不必要的复杂性
如果目前设计包含了当前没有用到的东西,那就是包含着不必要的复杂性。为过多的可能性做准备,很可能致使结构中包含了绝不会用到的结构,从而变得换乱
不必要的重复
晦涩性
就是说代码要保持清晰和富有表现力
为什么会软件腐化
就是非敏捷的环境,改动急迫的,开发人员对原始设计并不熟悉,于是他们可能会违反原始的设计。必须找到一种方法使得设计对于变化具有弹性。
遵循敏捷实践去发现问题。
应用设计原则去诊断问题。
运用适当的设计模式去解决问题。
敏捷设计是一个过程,是持续应用原则,模式来改进软件的结构和可读性的过程。
单一职责原则
一个类,应该只有一个引起他变化的原因。
每个职责都是一个可能会变化的轴线,一个类承担了多于一个的职责,那引起它变化的原因就会有多个。
多于一个动机去改变一个类,那这个类就被多于一个的职责。
开放封闭原则
软件实体应该是可以扩展的,但是不可修改的。
只收一次愚弄,就是说变化被击中第一次之后,我们就要阻止被第二次击中。我们可以通过快速的迭代,以及尽早的,经常性的发布软件,来触碰到那些变化。
其实就是抽象的能力
里氏替换原则
子类型必须能够替换 掉他的父类型。
这种替换其实很难区分的,因为很多是违背常识的。比如说正方形是长方形,但是我们使用正方形并不能替代掉长方形。原因在于这两个对象的行为方式才是软件真正关注的问题。
就是说派生类要比基类的前置条件低。后置条件相等。
依赖导致原则
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com
文章标题:2部分敏捷设计
文章字数:838
本文作者:泽鹿
发布时间:2019-08-28, 16:45:23
最后更新:2019-08-28, 16:45:23
原始链接:http://panyifei.github.io/2019/08/28/读书笔记/敏捷软件开发/2部分敏捷设计/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。