正交思维与软件工程
文章目录
什么是Orthogonal?
orthogonal表面意思是正交的,直角的。
平面几何的坐标系的x轴与y轴就是正交关系。
在软件工程中Orthogonal常常表示两个组件相互独立,无耦合或低耦合。
什么是Orthogonal Thinking?
Orthogonal Thinking对应中文翻译:正交思维。
其核心思想是在处理问题或寻找创意方案时,采取与传统思路正交的新视角。具体包括:
-
从多个维度或角度来审视问题。
-
突破既定思维模式,换个角度看问题。
-
跳出刚性思维的框架,以更宽广的视野看待事物。
-
组合看似不相关的概念,形成创新点子。
-
找到问题的本质,抛开表面的假设。
-
突破当前状态下最明显的限制。
-
发散思维,打开思路,再进行融合。
Orthogonal Thinking能帮助我们跳出思维定势,发现更多可能性,获得整体性的视角。它常被用于科技创新,商业策略,艺术创作等领域的创意思考中。正确应用此思维方式,能增强我们的创造力和解决问题的能力。
Orthogonal Thinking与软件工程
先看Orthogonal Thinking的应用:
- 系统架构设计: 采用分层架构、微服务架构等,实现高内聚低耦合
- 模块和组件设计:模块之间功能独立,通过API连接交互
- 数据库设计: 数据库表结构的分割,遵循最小化冗余的原则
- 前后端分离:前后端职责分明,可独立选择技术栈
- 系统拆分和重构:将庞大系统拆分为互不依赖的子系统
- 代码重构:函数内部控制流程的独立性改造
- 团队组织: 按功能划分团队
- 测试驱动开发: 测试代码与业务代码分离,两者正交并重
- 代码review流程: reviewer与开发者角色正交,提高代码质量
- DevOps理念: 开发与运维正交合作,提高交付效率
- 集成环境管理:开发、测试、生产环境分离,正交而独立
- 持续集成和持续交付:频繁小版本迭代与独立运行环境正交
- 容错和容灾设计: 主系统与备系统正交而容错
- 日志和监控系统: 应用日志及监控系统独立而不耦合
Orthogonal Thinking提高了软件系统的内聚性,灵活性,可维护性。
内聚性(低耦合):
- 正交的模块和组件职责单一,避免不必要的依赖关系
- 将易变部分与稳定部分隔离,减少变更带来的连锁反应
灵活性:
- 正交的组件可由不同人或团队开发
- 通过正交隔离变化点,组件更新的同时可以很好做到不影响其他的组件
- 便于通过新组件的方式引入新技术
- 测试代码与功能代码分离,利于
可维护性:
- 正交组件易于进行隔离测试,利于提高测试效率,及时发现问题
- 正交的组件和模块相对独立,一个组件的变更不会造成连锁反应,降低变更风险
- 职责单一的组件代码易于理解和修改,明确职责边界,提高代码可读性
- 多个开发人员可同时在不同模块作业,提高修复效率
- 新人可先关注独立模块,无需理解全部系统,便于新人上手
- 可在保持旧有系统稳定的前提下进行扩展,容易进行扩展,不需要侵入式修改
在软件工程利用Orthogonal Thinking的要点:
-
对系统需要具备对系统全局的思考,不能只盯着某一点,要考虑不同组件的关系和交互
-
需要学会切换视角,对系统展开多角度多维度的思考
-
组件设计要通过良好的封装和抽象做到边界设计合理,接口清晰
-
合理设计系统关注点,关注点要正交,如坐标系的x轴与y轴那样,能够组合表示所有的平面向量
-
在大型重构要分阶段进行
-
要以业务为导向应用正交思维,实现clean架构
总结
组件(模块)是正交的方式,正交是组件(模块)的原则。
正交思维体现了SOLID设计原则的单一职责原则和隔离原则。
文章作者 沉风网事
上次更新 2019-07-21