暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

复杂软件开发的设计原则和开发技巧

PiPiD 2020-07-10
502

设计原则

封装和抽象

  • Unix 系统的 “一切皆文件”体现了封装和抽象的设计思想

  • 封装了不同类型设备的访问细节

  • 抽象为统一的文件访问方式

  • 好处:

    • 隔离底层设备访问的复杂性

    • 统一的访问方式能够简化上层代码的编写

    • 代码更容易复用

    • 能有效控制代码复杂性的蔓延,将复杂性封装在局部代码中

    • 隔离实现的易变性,提供简单、统一的访问接口

分层和模块化

  • 模块化

    • 将系统划分成各个独立的模块

    • 聚焦在独立的高内聚模块来开发

  • 分层

    • 计算机领域的任何问题都可以通过增加一个间接的中间层来解决

    • 把容易复用、跟业务关系不大的代码,尽量下沉到下层

    • 把容易变动、跟具体业务强相关的代码,尽量上移到上层

基于接口通信

  • 不同层之间、不同模块之间,通过接口调用

  • 接口设计要隐藏实现,接口从命名到定义都要抽象一些,尽量少涉及具体的实现细节

高内聚、松耦合

  • 修改更聚焦

  • 引入 bug 的风险更小

为扩展而设计

  • 提前思考项目中未来可能会有哪些功能需要扩展,提前预留好扩展点,以便在未来需求变更的时候,在不改动代码整体结构的情况下,轻松地添加新功能

  • 识别代码的可变部分和不可变部分,将可变部分封装起来,隔离变化,提供抽象的不可变接口,供上层系统使用

KISS 首要原则

  • 简单清晰、可读性好

  • 避免过度设计、过早优化

  • 当扩展性和可读性冲突时,首选 KISS 原则,首选可读性

最小惊奇原则

  • The Least Surprise Principle ---- 《Unix 编程艺术》

  • 在做设计或编码的时候要遵守统一的开发规范,避免反直觉的设计

  • 遵从统一的编码规范,所有的代码都像一个人写出来的,能有效地减少阅读干扰


研发管理和开发技巧

1. 吹毛求疵般地执行编码规范

2. 编写高质量的单元测试

3. 不流于形式的 Code Review

4. 开发未动、文档先行

5. 持续重构、重构、重构

6. 对项目和团队进行拆分


Code Review

践行三人行必有我师

摒弃个人英雄主义

能有效提高代码可读性

是技术传帮带的有效途径

保证代码不止一个人熟悉

能打造良好的技术氛围

是一种技术沟通方式

能提高团队的自律性


文章转载自PiPiD,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论