写点什么

我的架构设计方法论

用户头像
南冥
关注
发布于: 2 小时前

不管是做架构设计,还是做代码等方面的设计,不同的工程师有不同的方法论。本文记录我自己到现在对各种业务需求、架构设计的方法论。

我认为,架构设计思维路线总共分四步。

第一步:确定边界,描述期望。

不管是大的由多个组件组合的集群,还是小的单一的轮子,第一件要做的事情就是确定边界。边界的重要性不言而明,没有清晰地边界架构就会越来越臃肿,最后面目全非。

描述期望,类似于wish 玩法,就是说这个架构是用来做什么的?我期望它是一个什么样的东西,比如要做什么,应用在那些场景。

比如做 tcp 协议设计,就可以简单的归结为要做全双工的,可靠的,网络层链接。

第二步:问题挑战

大致确定应用在什么场景下,要做什么问题之后,接下来要做的就是大致列出这个场景要做这件事情会有那些挑战?

依旧以 tcp 设计为例,面临的挑战大致如下:

  1. 全双工传输

  2. 需要按照顺序传输数据,且接受数据可能无法一次传输。

  3. 网络会有丢包情况

  4. 接收方可能接受能力有限。

  5. 网络状况未知,可能有阻塞。

  6. 等等

第三部:概念抽象

确定了要做什么,以及做这个事情过程中有可能有哪些挑战之后,下面就是解决问题。解决问题的方式通常是提出抽象的概念来解决问题。

还是以 tcp 为例:

为了解决上述问题,tcp 协议中抽象出了,分片传输,滑动窗口解决流量控制,拥塞策略,解决网络资源利用问题。三次握手四次挥手全双工通信,并且用 ack 等标识,完成分片传输和数据顺序安全。

通过上述 tcp 的例子可以看出,概念的抽象并不是和问题一一对应的,抽象概念是通过一些组件混合,解决问题。

第四部:概念的细化与完成

第三步的概念抽象是初版的抽象,类似于 wish,接下来是概念之间的边界,逻辑关系。共同来完成任务。

用户头像

南冥

关注

君子不器 2018.09.29 加入

曾负责旷世科技私有云研发,现居字节基础架构-混合云团队开发

评论

发布
暂无评论
我的架构设计方法论