软件构造感悟之面向可维护性的构造技术

面向可维护性的构造技术 {ignore=true}

1. 软件维护

软件维护是软件生命周期中最长的一个阶段,也是最重要的一个阶段,软件维护的目的是为了修复错误、改善性能。

开发周期

维护需要处理来自用户报告的故障/问题,并且在处理之后,还需要对这些修改进行测试,以确保修改后的软件仍然是可靠的。

2. 软件演化

软件演化即对软件及逆行持续的更新。

3. 模块化编程

模块化编程是一种将程序分解为独立的、可重用的模块的方法,这些模块可以被开发人员独立地设计、实现、测试和维护。

模块化编程的目标:高内聚、低耦合

一般从五个方面去评估模块化编程的好坏:

  • 可分解性
  • 可组合性
  • 可理解性
  • 可持续性:发生变化时受影响范围最小
  • 出现异常之后的保护:出现异常后受影响范围最小

模块化编程的五项原则;

  • 直接映射
  • 尽可能少的接口
  • 尽可能小的接口
  • 显示接口
  • 信息隐藏

4. 耦合和内聚

耦合指的是模块之间的依赖关系,耦合越低,模块之间的依赖关系越小,模块之间的独立性越高。

内聚指的是模块内部的联系,内聚越高,模块内部的联系越紧密,模块的独立性越低。

良好的设计应该满足:高内聚、低耦合

耦合和内聚的关系:

耦合和内聚的关系

OO设计原则: SOLID

  • 单一职责原则:不应有多余1个的原因使得一个类发生变化
  • 开放-封闭原则:对扩展开放,对修改封闭
  • Liskov替换原则:子类可以替换父类
  • 依赖倒置原则:依赖于抽象,而不是依赖于具体
  • 接口隔离原则:使用多个专门的接口,而不是使用单一的总接口

5. 语法驱动的构造

利用正则表达式对文本进行分析,从而进行构造。

tips: 一些帮助学习正则表达式的工具:RegexOneregex101
前者是一个交互式的学习网站,能帮助我们学习正则表达式的语法,并配有练习习题,两三个小时就能全部刷完,后者则是一个在线的正则表达式测试工具,可以选择不同编程语言中的正则表达式匹配,并会有每一步的解释,极为清晰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值