编程思想 - OOP|AOP|SOA等术语的理解

OOP

OOP,全称:Object Oriented Programming 面向对象编程,是目前几乎所有主流编程语言都支持的编程方式,主要区别于古老的面向过程编程方式。

AOP

AOP,全称:Aspect Oriented Programming 面向切面编程,最典型的应用就是Java Spring

SOA

SOA,全称:Service-Oriented Architecture 面向服务的架构,我们经常所说的微服务就是应用了这种架构思想,但是SOA与微服务并不是同一概念。

  • 是一种面向通用集成服务的、松耦合的架构实现方式,是web时代服务发展的产物;
  • 使用”分层”理念,比传统的”观察者”模式更高级且更有优势,主要体现在易扩展性和可灾;
  • 适用于大型复杂业务系统的数据共享。

下面是Web电商平台系统比较典型的例子(不全面,但可以帮助理解)

SOA

图中的服务平台可以用不同语言实现,一般大厂多用Java实现,初创公司更偏向于php、python等实现,原因你懂的,比较通用的是RESTFUL接口模式,对于user端,只需明确接口定义,既可以使用HTTP/HTTPS进行通讯,理论上是无限量的。

SOA对于客户端来说极大的简化了开发周期。对于一个特殊需求的出现不会措手不及,更不会大动干戈重构底层,开发者不需要知道具体底层原理即可快速开发实现功能。