刚组装电脑的时候会感觉到很神奇,随便买的一个硬件,连上去就能用。

后来毕业之后,逐渐组装电脑,渐渐的就开始遇上了瓶颈,比如硬盘数量不够,PCLE接口不够,后来内存条买了很多个之后,发现只能插满也就是4根。

再后来,知道了CPU的PCLE通道数上限,知道有些CPU,不插显卡不能运行,知道主板的局限性,顾此失彼。知道了一个主板上,最多只能支持那么多的硬件。

如果说对计算机的使用的分叉和普通人开始有区别的时候,我想应该是这个时候,计算机的性能是存在瓶颈的。从单机系统,过度到了多机协同。

比如硬盘不够用了,可以专门组装一台装硬盘的机器,叫做NAS,性能不需要很好,只需要能够支持文件服务就好,也不需要显卡。

再后来,会开始有一个概念,叫做一台机器只负责一个模块,这样拆分出来的结构,很稳定,不会因为某一个模块坏了,就都不能用了。

为了达成这个目的,我又在局域网里做了好几台VM虚拟机,有的用来给挂在腾讯云上网站做备份,有的是Linux的,挂载一些基础服务和测试。还有一些是不同版本的windows系统,以防在需要测试兼容性的时候,找不到对映的电脑。

虽然现在通过DDNS +mstsc,基本上实现了互联,但和现在通用的远程SSH Coding来说,还是有些笨重,不过可能是因为还有大量的我需求,都需要通过主电脑来进行实现的缘故。


顺序执行,协程,多线程,多进程隔离,多机协同。

模块的划分,自然就存在不同的优势。

顺序执行的时候,逻辑没有问题就行。协程要考虑IO,多线程 对象上下文。

多进程之间的调度和多台电脑之间区别不大,只是一个是软件层面,一个是硬件层面,都是socket通讯。

因为单台电脑的性能限制,导致了多机器交叠式开发成了必然,当涉及到多机器之间的协同的时候,复杂度就上升了。

多人协作也是同理,其效率必定比单人要低,因为存在对接层的开发,给整个系统增加了许多的工作量。但是多人协作的速度是要高于单人的,因为对接层的存在,让双方都可以只负责自己的那一块地方。

这个模型可以无限制拆分吗?理论上是可行的,但是当复杂度到了一个点之后,对接层会出现大量的工作要做。

常规来说目前的最常见的对接层是前端和后端的json数据流。

编译器也是常见的对接层。