为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【金秋打卡】第4天 NestJS入门到实战

【金秋打卡】第4天 NestJS入门到实战

2022.11.13 21:47 61浏览

课程名称:NestJS 入门到实战 前端必学服务端新趋势
章节名称:第6章
讲师姓名:Brian

课程内容

本章节将Nest的编程思想

以前端同学的视角看后端项目

前端同学的知识图谱

  • 语言
    • HTML
    • CSS
    • JS
  • 自动化
    • Webpack
    • CI、CD
    • git、npm
  • 框架
    • React、Vue
    • jQuery
    • Bootstrap
  • 环境
    • 浏览器
    • 小程序
    • 混合&原生

后端同学的知识图谱

  • 语言
    • Java、Go
    • PHP、Python
    • JavaScript
  • 自动化
    • CI、CD
    • Docker、K8s
    • Maven、gradle
  • 框架
    • SpringBoot
    • SpringCloud
    • Dubbo、Mybatis等
  • 环境
    • 各种服务器
    • 集群
    • 云、虚拟机

前端看后端:
API:编写逻辑→Web服务(RESTful API、日志统计、安全+性能、权限控制)→数据库(数据库服务、数据校验、数据备份)

编程思想

OOP、FP、FRP代表着编程的范式
函数式编程和面向对象式编程
函数式编程

  • 确定的数据输入、输出;没有“副”作用,相对独立;
  • 引用透明,对IDE友好,易于理解;
  • 如今主流的Vue、React中的书写方式;

面向对象编程

  • 抽象现实生活中的事物特征,对于理解友好
  • 封装性(高内聚低耦合)、低继承性、多态性
  • Java、C#典型的面向对象的编程语言

函数式响应编程

  • 适合需要对事件流进行复杂组合应用的场景
  • 响应式多用在异步的场景
  • 典型案例:rxjs,广告推荐

AOP特点

  • 扩展功能方便,不影响业务之间的逻辑
  • 逻辑集中管理
  • 更有利于代码复用
    AOP能在不破坏封装功能的前提下,额外增加功能

依赖注入和控制反转

IoC是一种思想&设计模式
DI是IoC的具体实现

export interface Phone {
  playGame: (name: string) => void;
}

export class DIStudent {
  constructor(private name: string, private phone: Phone) {
    this.phone = phone;
    this.name = name;
  }
  
  getName() {
    return this.name;
  }
  
  setName(name: string) {
    this.name = name;
  }
  
  play() {
    this.phone.playGame(this.name);
  }
}

控制反转:是一种面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度,其基本思想是:借助于“第三方”实现具有依赖关系的对象之间的解构。
依赖注入:是一种用于实现IoC的设计模式,它允许在类外创建依赖对象,并通过不同的方式将这些对象提供给类。

Nest架构

Nestjs核心概念:

  • Controller层负责处理请求、返回响应
  • Service层负责提供方法和操作,只包含业务逻辑
  • Data Access层负责访问数据库中的数据

使用Module来组织应用程序

  • @Module装饰器来描述模块
  • 模块中有4大属性:imports,providers,controllers,exports

用积木来理解模块:分开是独立的,组合在一起又是一个整体。高内聚,低耦合,减少重复代码,提升代码可维护性

功能模块、共享模块、全局模块、动态模块

  • 功能模块与共享模块是一回事,只是叫法不一样
  • 全局模块通常应用在配置、数据库连接、日志上
  • 动态模块是在使用到模块的时候才初始化(懒)

Injectable装饰器后面会讲,这里理解成一个函数用于实例化AppService,并利用IoC思想,供其他方法使用

课程收获

了解到了Nest大致的架构,尤其是生命周期部分,感觉比Egg的可操作性大很多!

截图

图片描述

点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
3
获赞与收藏
0

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

51篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

151篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消