敏捷设计

前言

这周进行第七、八、九章的阅读,这几章介绍什么是敏捷设计,以及引起软件腐化的原因,随后介绍在开发过程中应该遵循的两个原则:单一职责原则(SRP),开放-封闭原则(OCP)。

敏捷设计

在软件设计初始阶段,系统设计总是很清晰,但随着需求不断改变,功能需要不断增加,系统会变得越来越复杂,这时设计就逐渐变得腐化,系统开始变得难以扩展,难以维护。软件开始散发出腐化的气味。

1 软件腐化的气味

1) 僵化性 : 指的是很难对系统进行改动,每个小改动都意味着要更改系统其它更多的地方。

2)脆弱性:指的是对系统的一个地方进行改动,引起了其它地方出现了错误。

3)牢固性:指的是设计中包含了对其他系统有用的部分,但是要把这些部分从系统中出来所需要的努力和风险是巨大的。

4)粘滞性:粘滞性分为两种表现形式,软件的粘滞性和环境的粘滞性。开发人员在面临一个改动的多种方案中,发现那些保持软件设计的改动方法比破坏设计的方法更难用,此时软件设计具有很高的粘滞性。当开发环境迟钝或者低效时候就会产生环境的粘滞性。

5)不必要的复杂性:设计中包含没有用的组成部分。

6)不必要的重复:系统中有很多重复的代码。

7)晦涩性:指软件模块难以理解。

随着时间的推移,软件会逐渐腐化,为了尽量保持好的设计,我们在开发过程中就需要遵循一些原则。

单一职责原则

对于一个类来说,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合到了一起,这样的设计会引起软件的僵化性和脆弱性。因此,我们在开发过程中,需要把相同职责的功能都写到同一个类里面。

开放—封闭原则

1 描述

1.1 “对于扩展是开放的”。这意味着模块的行为是可以扩展的,当应用的需求改变时候,我们可以对模块进行扩展,使其具有满足那些改变的新行为。

1.2 “对于更改是封闭的”。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。

2 关键是抽象

合适的抽象可以使软件设计满足这个原则。

总结

学习敏捷设计和敏捷设计该遵循的原则可以使我思考现有项目中存在的问题和应该采取什么样的措施去改进设计。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这周的任务是《敏捷软件开发》第二部分第7-9章内容,主要介绍了敏捷设计中软件腐化的表现和我们应该遵守的行为,敏捷开...
    张利锋阅读 711评论 0 1
  • Jack Reeves说, 实际上满足工程设计标准的惟一软件文档,就是源代码清单 设计的臭味——腐化软件的气味 当...
    清风流苏阅读 2,087评论 0 2
  • 满足工程设计标准的唯一软件文档,就是源代码清单。 一、软件腐化 在软件项目中最不稳定的就是需求。需求处在一个持续变...
    王加冰阅读 244评论 0 0
  • 第四天-第五天,协同设计阶段 协同设计阶段帮助减少低效沟通消耗掉的时间。让所有团队成员就要解决什么样的问题达成一致...
    koalachen阅读 546评论 0 2
  • 本文是敏捷软件开发第二部分,敏捷设计的阅读笔记,记录一些对自己感触深的想法。为什么需要敏捷,怎么实现敏捷。克服软件...
    pokorz阅读 264评论 0 0