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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏