Skip to content

浅谈 Serverless 和 DDD

Serverless

🌟 是什么

Serverless 直译为“无服务器”,但是容易被误解,并不是说代码运行就不需要在服务器上跑了。

它的意思是,未来的开发,无需关注服务器这种比较底层的设施,代码将会直接跑起来。这些资源将变得不可见。

几个缩写

IaaS: 基础设施即服务,比如服务器的购买、搭建,与虚拟化、容器等技术息息相关

PaaS: 平台即服务,比如操作系统、虚拟机,以及在其之上的业务弱相关的基础组件

SaaS: 软件即服务,一般是集中式部署的服务提供者

目前大部分公司业务发展到这个阶段,以下是未来的发展趋势

BaaS: 后端即服务,公司为移动应用开发者整合云后端的边界服务

FaaS: 功能即服务,函数服务化,和 Severless 密切相关,提供了更加细分和抽象的服务化能力

一些变化

在这种模式下,很多职业都将产生变化。

运维工程师:被淘汰,只需要操作配置后台,就能获取稳定、安全、便宜的主机

后端开发:需求变小,不再需要复杂的逻辑,只需要关注业务逻辑

前端开发:向全栈发展,利用丰富的前后端模块拼接应用

在时代的浪潮中,个体总是容易被抛弃的,我们毫无疑问已经进入了终身学习的年代

未来的程序员

平台开发工程师:搭建云 Severless 平台,保证基础设施的完善

插件功能工程师:按照平台的规则开发相应的功能,享受售卖的提成

业务开发工程师:从海量的功能组件中,寻找积木,搭建产品

借助 AI 的能力,有可能业务开发工程师也会被淘汰,由产品经理直接通过对话式编程生产页面

Serverless 一旦普及,会把大部分工程师带向不归路

但是由于各大厂商并不是共同体,他们会自己定规范,相互竞争和攻击,也有另一个可能性:

天下大势,分久必合,合久必分,大厂的霸道可能会造成众叛亲离,造成一定程度上的技能回归

DDD

  • Domain-Driven Design:领域驱动设计,是一种软件设计方法

  • 例如电商网站:

  • 领域:商品、用户、订单,每个方面都有各自的规则和特点

  • 模型:需要建立一个模型,来把这些业务映射成计算机能理解的代码,比如创建表示商品的类或属性

  • 战略设计:在电商业务中可能有很多的子系统,比如商品管理、用户管理,战略设计能帮助我们划分这些子系统,确保他们的独立和协同

  • 战术设计:每个子系统内部需要考虑具体的实现,例如购物车、订单的流转,涉及到具体的业务实现

  • 模式:领域驱动设计引入了通用的设计模式,比如聚合,把商品和他的库存信息、评价信息组合成一个整体,更方便读取、管理和操作。

  • 持续演进:领域驱动设计强调持续的沟通和调整,确保系统能适应变化

  • 通过领域驱动设计,我们可以更清晰地理解业务,有针对性地构建如软件系统,从而提高系统的质量和可维护性