跳到主要内容
备注

本课程正在升级中,目前可以学习旧版课程预热或者先学习《TS全栈开发实战》,在不久的将来新的2025重构版将会上线与大家见面

信息

本文为《nestjs最佳实践》课程的详细介绍页,关于本课程的具体学习和使用步骤,建议查阅社区使用指南

success

本篇内容下所有的关于“远程工作”的概念只是一个概括说法,也包含了远程工作、海外工作、外企工作、创业型企业的工作等坐班类岗位

📝前言

本页面的介绍为《nestjs最佳实践》(以下均简称“nestjs课”)的概述,在了解本课程前,请先阅读以下信息

  • 本课程以nestjs+typeorm为主的技术栈。虽然浅度学习还是可以比较轻松地掌握,但是和大量外部定位企业级node.js开发的nestjs课程(比如做个案例或按官网文档重复一遍做成视频教程等)那种点到为止或免费或收费的课程不大相同,会大面积深入一些框架和类库本身核心源码的定制、扩展或者涉及到大量服务端生态、底层构建工具开发、命令工具开发、自动化运维和部署等各种基本前后端开发知识之外的东西,学习曲线就会变得非常陡峭。这会造成了许多基础差甚至零基础的会员同学长期无法学会的现象。所以只推荐已经有相当经验的python、php、java、.net等后端开发者转node.js技术栈,以及对JS/TS编程已经非常熟练掌握且拥有一定的node.js后端开发基础的前端开发者转全栈而学习。如果基础较差或零基础我个人建议先学习《TS全栈开发实战》(以下均简称“全栈课”)
  • 本课程目前正处于重构升级前的策划期,但是有旧版本可供学习。旧版和后续的新重构版在整体内容上大同小异。旧版本在各种生态的版本上会比较老旧,可能会导致课程源码跑不起来的现象。这类现象可以通过询问助教、自行研究或者暂时跳过复现以理解为主,全部理解完后等待我们后续的重构版也不失为一种好办法
  • 由于现在优秀的开源react中后台面板太多了,所以后续重构上线的新版nestjs课不再涉及react中后台面板开发相关前端知识,只专注于后端和node.js生态。在接口对接方面,我们会直接选取一套比较优秀的开源后台进行接口对接。对于前端的react代码如果不熟悉,可以多研究一些中后台面板源码,或者可以学习一下我们的全栈课

本课程的技术栈只适合目标位求职薪资20k-30k范围的远程工作(包括各类坐班)的学习者,并不适合想从事个人创业方向的朋友。如果你只想求职10-20k左右甚至更低薪资的工作以及兼职工作、或者想自己远程创业成为数字创客(比如独立应用开发者、开发一个收费社区运营、外包接单者等),我推荐学习更为轻量级的全栈课

🦔准备

首先确认你是以下人员,否则不适合学习本手册而建议学习全栈课

  • 经验比较丰富的java/php/.net等后端技术栈开发者转node.js或全栈开发
  • 经验比较丰富的前端开发者(熟悉ts/vue/react等),至少会自行运维部署,并且会一些简单的node.js框架开发,比如express,koa等,想转真正的TS全栈的开发人员
  • 平时使用macos或linux等系统进行开发工作(wsl2/远程服务器+windows写起来不够爽的^_^)

✍️学习

本课程目前源码仓库有多个仓库,分别nestjs-2022nestjs-2023monoapp(所有仓库请用你的3R会员登录,否则打开时404错误),但是都已不在维护期,不一定完全能跑起来。目前来说,仓库代码可以作为课程文档的补充。等到我们后续的2025重构升级版之后才会有文档和代码的重新匹配。

当前旧版的学习流程如下

备注

站长自行开发的后台管理面板:toome因为react版本过旧已无参考意义,如果要对接API,可以用@茶汰同学@被遗忘的传说同学(你可以加他微信获取地址)或antd pro等其他开源后台面板代替

  1. 在学习课程前或学习过程中,如果对技术和变现方向比较模糊,可以预约站长进行”一对一“会议咨询
  2. 学习课程文档并学习,同时克隆下来上述三个代码仓库
  3. 在不理解的地方对比仓库学习,以理解为主,不一定要把仓库代码跑起来也不需要复现
  4. 把文档理解的同时,自己启动一个nestjs项目,并学习完一篇就根据所学到的技能发散思维做个小应用
  5. 有问题去QQ群问@被遗忘的传说或者3r酷论坛发贴并艾特@cloneable提问解决
  6. 遇到框架本身的bug可以去nestjs官方的github issue提问
  7. 选择一套vue或react的开源后台管理面板和你自己开发的API对接实现一个中后台通用管理系统
  8. 学习并参考3R工作室的开源项目源码,主要学习其后端nestjs部分
  9. 最后,学习变现课中远程工作求职相关内容,并尝试找到一份适合自己的远程工作(或者更好的坐班),踏入远程工作者的行列
注意

工作室的商业项目源码由工作室的开发者(教室长期合作的古早期老会员)开发,绝大部分并不是由站长或者助教开发的。所以,在部署、修改及二开方面我们并不能给予太多的帮助,请自行研究。一些修改后部署的线上效果可以参考miven同学的个人网站

可共享的商业项目源码有五个,我们默认开通了以下项目的源码

  • Goflash:一个美国的购物返利网站,使用next.js+antd pro+nestjs开发
  • Youni: 一个加拿大的类似校园口袋一样的校园社交移动网站,使用next.js+vben+nestjs开发
  • Kuromi:一个加拿大的移民网站,使用next.js+antd pro+nestjs开发
  • XiaoWen:一个法国的网络工作室官网(纯静态),使用next.js开发
  • Ryzz【默认不开通,有需要联系助教开通】:一个芬兰的仿小红书移动应用,使用react native+antd pro+nestjs开发

如图

📚大纲

success

本课程"升级版"目前未开更,暂定计划于2025年开更,如果有需要请先学习"现存版本"。由于本课程非常抽象,学习曲线陡峭,适合有丰富经验的其他技术栈同学转TS全栈。如不是老会员温故也无特殊需求,建议学习完新课后根据兴趣和需求决定是否需要学习“重构版”!

随着时间的推移,2022年出的《Nestjs最佳实践》这套课程中的许多生态和框架(比如nestjs、react后台开发等)已经严重跟不上时代(虽然2023年努力尝试打补丁的方式修复),并且越来越与市场需求脱节。但不得不承认的是,在部分高薪远程、外企、海外、初创甚至国企岗位中,仍尤其巨大的面试入职优势。

另外,这套课程作为3R教室的起点,具有非常重要的,值得纪念的里程碑意义。他曾帮助许许多多的3R会员同学在远程工作、海外工作、外企工作甚至国企工作中求职成功。也曾帮助我们的3R工作室实现了许许多多项目,使工作室辉煌过。虽然此课的技术栈和开发模式可能有点不适合未来的趋势和远程自由职业中的个人创业方向,但其作为js/ts全栈企业级开发的价值始终存在,尤其是远程工作方面非常受用

为此,在我们的新课程的应用部分更新完毕后,后续将会由@被遗忘的传说同学对整套课程重构一遍。把一些太过时的生态去掉换成新的生态,对框架的API做一定的升级后重新发布更新,并长期维护

课程名称《Nestjs最佳实践》
开更时间现存版已基本更完,升级版暂定于2025年开更并永久更新维护
课程定位nestjs/node.js后端开发
课程目标增加学者的求职成功率和薪资水平以及TS全栈和node.js后端开发能力
教学服务创作:站长@pincman(新版@被遗忘的传说联合创作);问答助教:@被遗忘的传说@cloneable
学习时长3个月左右(不适合零基础学习)
适合学者高端远程、外企、海外等岗位的求职者
学习要求其它技术栈的web后端开发者(如Java、PHP、Python、Golang等)转技术栈/全栈、前端开发者转全栈
教学模式文档课程+源码+群问答+论坛问答
源码仓库classroom/admin(升级版,暂无代码)、classroom/nestjs2023classroom/nestjs2022
classroom/toomejs(该库已弃,请直接查看@茶汰同学的完善版即可)
涉及知识typescript、node.js、nestjs、bun.js、typeorm、class-validator、
class-transformer、mysql、postgresql、yargs
jwt+oauth2(passport.js)、rbac(casl.js)、dayjs、sse、websocket、
bullmq、redis、openapi(swagger)、tdd/e2e测试、腾讯云sdk、monorepo等

注意

以下是旧课大纲,重构版(2025版)目前还在策划中

信息

旧课少量内容已佚散,后续重构版会加上去。另外,以下虽然看上去涵盖的内容全栈课也都涉及到了,但涉及上全栈课只包含了应用层面的东西,而本课会更加深入原理层面以帮助大家更深度的掌握node.js和nestjs

  1. Node.js开发环境搭建
  2. Nestjs+Eslint+SWC应用初始化及断点调试
  3. 装饰器与反射详解
  4. Nestjs核心概念
  5. 无懈可击的Linux服务器构建
  6. 使用Turborepo+pnpm workspaces构建monorepo应用
  7. 使用Gitea+Drone自建CICD平台
  8. Nestjs整合Typeorm实现基本的CRUD操作及分页数据查询
  9. 请求数据的验证和响应数据的序列化
  10. 数据关联与树形嵌套结构的分类和评论的实现
  11. 自定义全局的验证管道,拦截器和过滤器
  12. 自定义数据验证约束及约束中的依赖注入
  13. 批量操作及软删除(回收站)功能使用
  14. 数据库与MeiliSearch的全文搜索
  15. 数据操作代码的抽象化
  16. 整合bun与pm2实现开发环境与生产环境免编译和自启『兴趣课,可选或略过』
  17. 自建配置系统实现
  18. 嵌套路由与Swagger文档实现
  19. 使用Yargs构建命令行工具
  20. 生产环境下静默启动以及PM2 API的使用
  21. 数据迁移功能的实现
  22. 数据填充命令实现
  23. 用户模块开发以及使用Passport实现JWT认证和无痛刷新
  24. 基于CASL的RBAC动态角色及权限系统实现
  25. 使用BullMQ实现异步验证短信与邮件发送]
  26. WebSocket实现消息广播功能
  27. 深入node.js进程、子进程、线程和并发处理
  28. toomejs react后台面板源码分析
  29. 前后端对接构建完整后台管理系统