一、软件发展趋势
- 模块化(Modular)
模块化编程是在20世纪60年代末和70年代提出的解决方案。它是
从类到更粗粒度的代码单元显式定义的演变。 编程语言以不同的显式等级实现模块化。
例如,JAVA中默认级别意味着类只在其package中可见,而public意味着类在其package内外都可见。一直到JDK9, 模块化直接作为重大特性发布。其实就是 将JDK中类,模块化拆分。
例如,JAVA中默认级别意味着类只在其package中可见,而public意味着类在其package内外都可见。一直到JDK9, 模块化直接作为重大特性发布。其实就是 将JDK中类,模块化拆分。
- 组件化(Componentized)
组件是另一种模块化风格。组件是按照业务领域划分的模块。理想情况下,它们是可以组成应用的独立的“应用程序”。微服务可以理解为应用的组件。
组件化,也是早在 20 世纪 60 年代末就已经存在了。
二、现代单体架构
2.1 单体架构介绍
相信大部分程序员接触的第一个程序都是:一个工程中,一个文件,打印 "Hello World ! "。当初的喜悦仿若还在身边。实际上这就是一个单体架构。
如今,单体架构意味着代码被部署并作为单个节点上的单个进程运行。有可能进行初步的模块化拆分(类级别),但由于整个工程一起打包部署,所以还是一个组件。如下图所示: