初识Nestjs:一个融合了多个优秀设计原则的Nodejs Server端开发框架

我们的项目需要搭建一个后端的服务,目标是从区块链上同步数据存放到自己的数据库中,并对外提供api服务,以提升钱包用户的体验。

经过调查后,发现 Nestjs 是一个不错的Nodejs server端开发框架,它集合了多个优秀的设计原则,我们可以通过结合Nestjs与SOLID来说明。

SOLID是由Robert C. Martin (Uncle Bob) 在 2004年左右提出的5个设计原则的缩写:

  1. S: Single Responsibility Principle,简称SRP,单一职责原则
  2. O: Open-Closed Principle,简称OCP,开放-闭合原则
  3. L: Liskov-Substitution Principle,简称LSP,里氏替换原则
  4. I: Interface Segregation Principle,简称ISP,接口隔离原则
  5. D: Dependency Inversion Principle,简称DIP,依赖反转原则

S:单一职责原则

单一职责原则说的是,一个模块应该只对一类行为者负责。

Nestjs中定义了多个组件,它们只需要对一类行为负责,比如:

  • @Controller:接收请求并返回响应,只处理路由的请求,也就是只对路由这一类行为者负责。
  • @Middleware:路由处理程序之前调用的函数,可以访问请求和响应对象。只对HTTP这一类行为者负责。

@表示装饰器(decorator),可以说是 Nestjs 的核心组成,Nestjs中提供的这些强大的功能都是通过装饰器来实现的。简单解释一下,装饰器是typescript提供的一个功能,可以用来扩展函数和类的功能。

还有Nestjs中对于模块的定义也算是单一职责原则,每个模块需要定义在一个文件夹内,对某一类行为负责。

后面四个原则与Nestjs的联系,我后面慢慢更新,这里先把这四个原则的介绍放进来。

O:开放-闭合原则

开放-闭合原则说的是软件的设计要易于扩展(对扩展保持开放),而尽量不要修改现有设计(对修改保持闭合)。

L:里氏替换原则

里氏替换原则说的是一个基类型可以被它的子类型进行替换,而不会改变程序的行为。

I:接口隔离原则

接口隔离原则不应该强迫客户端依赖他们不用的方法。这样看来,多个单独的互相隔离的接口要优于一个通用的大的接口。

D:依赖反转原则

依赖反转原则说的是所有的模块都应该依赖于抽象,而不是具体的实现。比如typescript中的interface就是一种抽象。

你可能感兴趣的:(初识Nestjs:一个融合了多个优秀设计原则的Nodejs Server端开发框架)