软件架构的本质
本质 软件架构
2023-09-14 09:07:22 时间
0. 引子
本文是一篇强调实践、注重实效、轻量级、面向开发者的软件架构指南。你将从中学到:
- 软件架构的本质;
- 为什么软件架构角色应当包含编码、指导与合作;
- 如何用简单的草图让你的软件架构可视化;
- 软技能。
1. 软件架构的本质
软件架构词汇图谱
在不同的人眼里“架构”一词的意思大相径庭,互联网上对架构的定义也多如牛毛。过去几年里我问过上百人同一个问题,在他们看来“架构”意味着什么。得到的答案概括如下(排名不分先后):
模块、连接、依赖和接口;
大局观;
改变成本很高的事情;
难以改变的事情;
更加兼顾全局的设计;
接口而非实现;
审美(比如:艺术般的整洁代码);
概念模型;
满足非功能需求/质量属性;
每件事都有“架构”;
沟通能力(抽象、语言、词汇);
计划;
一定程度的严格和可靠性;
蓝图;
系统、子系统、交互和接口;
管理;
战略决策的产出;
必要的约束;
结构(组件和交互);
技术方向;
战略和愿景;
结构单元;
实现目标的过程;
标准和准则;
整个系统&
相关文章
- Spring实战2:装配bean—依赖注入的本质
- Atitit.工作流系统的本质是dsl 图形化的dsl 4gl
- 通过gmail进行C2控制——看了下源码,本质上和dropbox c2架构一样,都是去轮训邮件,将c2攻击的东西以邮件形式发送,结果也发到邮箱里
- dnscapy使用——本质上是建立ssh的代理(通过dns tunnel)
- HMM(隐马尔科夫模型)——本质上就是要预测出股市的隐藏状态(牛市、熊市、震荡、反弹等)和他们之间的转移概率
- ledisDB底层实现——本质上就是用leveldb这样的底层存储,和ssdb一样,meta里存的是hash、list等的元数据
- Facebook图片存储系统Haystack——存小文件,本质上是将多个小文件合并为一个大文件来降低io次数,meta data里存偏移量
- ES doc_values介绍2——本质是field value的列存储,做聚合分析用,ES默认开启,会占用存储空间
- 时间序列数据库选型——本质是列存储,B-tree索引,抑或是搜索引擎中的倒排索引
- Docker----容器名互联link技术及其本质
- C++中继承与虚继承本质之优秀
- 递归的本质(栈:后进先出)