稳定高效的服务来自于稳定而合理的数据结构

对于Git 的成功:林纳斯表示:

Git的设计其实很简单,它有一个稳定而合理的数据结构。事实上,我强烈建议围绕着数据来设计代码,而不是反其道而行之,我觉得这可能就是Git如此成功的原因。坏程序员总是担心他们的代码,而优秀的程序员则会担心数据结构和它们之间的关系。
-- 来源: 《MacTalk 跨越边界》 书中

那么如何设计和开发稳定和高效的服务呢?

类比:
我们日常使用的有哪些稳定和高效的服务:Linux、Git、MySQL、Nginx、Redis 等

它们每一个都有自己合理的数据结构去服务自己的服务,Redis 字符串中的SDS、Double-Linked-List 等等

我们日常设计和开发软件的时候本质是不是设计数据流,将数据流走通,我们使用MySQL、Redis进行存储,然后抽象成我们的业务需要,本质上也是在设计数据结构。

数据结构有哪些呢?

数组
链表:单链表、双链表、循环链表
队列:优先队列
栈:单调栈
树:二叉树、二叉搜索树、平衡二叉树、2-3树、B树、B+树
图:

设计评论的架构本质上是不是在设计父子关系的数据流,也就是树的数据结构

有限状态机的变化本质上是不是图的状态的流转

原文地址:https://www.cnblogs.com/zhangpengfei5945/p/15121967.html