跳到主要内容
注意

旧课从22年开始创作,属于古法编程课程。目前随着AI vibe coding的快速迭代和发展,已经不再建议作为主要课程学习,并且也不再更新升级。如果对古法编程感兴趣,自行学习用于提升也可以。目前更加建议学习新课,它是3R教室的主力课程,且会长期更新和维护!

信息

以下"全栈课"指代本课程(即:《TS全栈开发实战》)、"nestjs课"指代《nestjs最佳实践》

📝前言​

时光飞快,3R教室自2022年开始至今已经运营三周年了,成长为一个拥有千人付费会员规模的线上学习和资源互通的IT社区。站长自己也在教学中不断学习,在学习中不断积累,结合自身以往的经验,为社区创造并总结了许多有用的知识,并帮助许多会员朋友获得了一定的成果! 然而,随着时代的发展以及技术、市场日新月异的变化,尤其是AI能力的快速迭代,教室本身也需要新的思维和力量的注入。为此,站长在以往《nestjs最佳实践》课程的基础上,增加了前端部分的内容,重新编写了一套新的课程 - 《TS全栈开发实战》

本课程作为3R教室当前的主力课程,将永久更新与维护!课程是终身滚动式更新的,且会随着市场的变化不断地增删章节以推陈出新!这类似于Ubuntu这类传统的Linux发行版与Arch这类滚动式发行版之间的区别。譬如:在技术课方面,目前课程主要是更新及维护当下流行的next.js、hono.js、nestjs、prisma等ts全栈开发技能。 另外,课程仍然以文档为主+代码为教学模式(而不是传统的视频课程),方便随时升级到最新的生态,也更适合扩展性学习。比如tailwind课程中是v3,而现在v4正式版已经出来,我们就可以方便地增加一篇无痛升级的章节(古法编程课不再升级)

本课程是一套循序渐进的课程。主要技术栈涵盖next.js、hono、nestjs、serverless、CICD和部署运维等。所有这些技术栈都是以远程自由职业这种工作模式作为最高目标的优先级进行教学。但这套技术栈生态不仅适合远程工作求职、远程个人创业者(比如独立应用开发、独立外包接单等)等自由职业的需求,同时也是外企工作/海外工作/创业企业全栈岗位和大厂前端岗位的最优选

总的来说,3R教室无论是技术课还是3R社区的变现学习和实践服务,主要围绕着一个目标 - "远程自由职业"而展开。虽然偶尔社区也会有同学自助地内推、互推一些坐班,也有"大厂会员群"这类群、社区会议中也会有坐班嘉宾分享等等内容。但是整个社区95%以上的内容和服务都是以自由职业为中心的!

为什么选择这套技术栈作为主力课程?

因为,首先3R教室的技术课一直以来都是以TS教学为主,并且我们的3R工作室开发的几乎所有商业外包项目均使用TS技术栈,方便大家学习源码从而进一步加深理解;其次,随着AI的发展,尤其是vibe coding能力的不断进步,自动化编程越来越受欢迎(PS: 2026年10月开更的新课就是纯vibe coding课程)。而在所有编程语言中,AI对TS/JS的支持力度无疑是最佳的。无论是各种AI开发工具(如cursor、antigravity、claude code、codex等)对编写TS代码的支持,还是TS本身去开发AI所使用到的绝大部分Agent工具(如langchain、n8n、vercel ai等),TS永远是和Python处于同一个档位的头等公民。而Python更适合AI底层方向的开发,对于大模型 API 的调用和智能体的开发,TS因为其全栈的可行性,明显是更具优势的。最后,也是最重要的,TS全栈开发在变现方面是最佳的技术栈。在求职方面:无论是海外工作、远程工作、国内外企等岗位,TS几乎都占据了巨大多数份额;而剥离其后端开发的node.js技能,纯粹的react、vue等前端技能以及rn、electron等客户端开发技能,在国内传统的大中小厂中也基本上是唯一选择。在个人或小规模创业方面:TS由于其前后端使用一种统一的编程语言以及成熟的生态,再加上AI头等公民的支持,使其能快速地开发出一些你想到的东西。也因为其部署成本的低廉(serverless等支持),成为远程个人和小团队快速上线MVP产品的首选!以上正好契合了3R教室的"远程自由职业"的理念,使技术课与3R社区的变现学习无缝衔接,相互作用。为此,我们选择了TS全栈作为3R教室的主力课程

以下是一些趣味阅读,朋友们不妨看看

👇关于本课的创作背景

站长从07年开始长期学习与从事php、perl、delphi、haskell等技术的编码工作。在2010年之后,虽然当时也尝试了当时新兴的angular.js 1.0和backbone、gulp这些技术,但由于年代限制,所以也没太深度使用,前端部分一直停留在使用jquery、extjs这些老式技术的阶段。直到17年左右,随着时代的发展和大前端时代的到来,接触到了typescript及其相关的react、vue等生态,接着就一发不可收拾喜欢上了。后来通过前端作为桥梁又接触到了node.js领域以及相关的nestjs等生态,发现使用js/ts开发后端也越来越得心应手,编码体验并不亚于php、 python等技术。随着js/ts生态的慢慢成熟和发展以及各种开源生态和企业/商业应用的出现,js/ts的生态在各个领域不断成长和遍地开花。如今的ts的开发领域几乎涵盖绝大多数常见的领域,比较成熟或常见的使用范围大致覆盖以下领域

  • 使用react等框架可以开发各种普通web应用以及web3应用、chrome插件的前端
  • 使用next.js等框架可以开发SEO友好的SSR网站的前端,甚至轻量的全栈开发
  • 使用node.js以及在其之上构建的nestjs、fastify、hono.js等框架可以构建高性能与高可用的应用后端
  • node.js也是faas/serverless的最佳后端工具,例如结合vercel就可以极速地上线mvp版本的应用,又比如小程序的云函数开发等
  • node.js也适合构建各种命令行CLI工具、区块链以及爬虫等应用,甚至还能在性能不敏感的一些嵌入式应用发挥作用
  • 使用electron、tauri等可以开发跨平台的桌面应用,例如新版的QQ、vscode等就是使用它开发的
  • 使用react native、ionic等可以开发跨平台的移动应用
  • 使用taro、uniapp等可以开发小程序,而原生小程序也是使用JS/TS开发的
  • 使用three.js、babylon.js等框架可以开发web 3d应用

现在,大部分的云厂商SDK和AI的大模型提供了完善的 node API,除了一些极端关注性能的偏底层应用或数据和代码结构超级复杂的企业级应用外,JS/TS以及Node.js基本都能满足大部分场景的开发需求。也就是说,TS作为JS的类型版本,仅学习这一种编程语言,绝大多数情况下能开发各类应用了

然而,每个技术栈都有其特性。

对于web前端而言,无论是spa还是ssr,无论是网站还是各类中后台应用,使用TS开发几乎是唯一选择,因为使用其他如wasm等技术去开发前端目前来说,大多数正常情况下是用不到的。同样地,对于小程序开发来说js/ts也是唯一选择

对于移动客户端和桌面应用来说,虽然在一些性能要求较高且不需要跨平台的场景下,比如手游、PC系统工具等,还是会选择flutter、kotlin、swift、c#等。但现在越来越多的性能和包大小不敏感的应用都会选择TS来解决。比如京东app会使用到react native,腾讯QQ会使用electron... 而react native、electron等框架本身的生态也是已经相当成熟了,各类使用这些技术栈的商业应用层出不穷

对于后端应用而言,node.js相关的各种框架和ORM以及中间件SDK的出现,使得其越来越受新时代开发者的喜爱。这不仅仅只是由于其简单易上手的特性,更是因为它可以与前端一起使用一种语言进行同构,在生态上可以无缝整合。现在,大部分的云厂商SDK和AI的大模型提供了完善的 node API,除了一些极端关注性能的偏底层应用或数据和代码结构超级复杂的企业级应用外,JS/TS以及Node.js基本都能满足大部分场景的开发需求。也就是说,TS作为JS的类型版本,仅学习这一种编程语言,绝大多数情况下能开发各类应用了。但node.js相对于其他技术栈也有其自身的优缺点,没有一种技术是万能的,我们来看看它与其他技术栈的对比

  • 与php相比,虽然异步IO的性能相对于原生的php-fpm(swoole、Workerman等除外)更强一些,虽然生态上还是缺乏一些类似wordpress这种成熟的开箱即用的开源产品。一众node.js框架也远没有达到laravel、symfony这种完善度。但node.js有着前后端一体化的优势,是当下以及未来的php最完美继承者
  • 与python相比,node.js更适合web后端开发,而在AI大模型和科学计算方面等领域虽然不如python,但在爬虫、运维工具、命令行工具等开发方面并不弱于python。而web后端方面,则在性能、便捷性等全方位优于python。且node.js的一众框架也并不输于fastapi、django等框架,还有前后端同构的优势,所以,如果后端开发在python和node.js之间选择,毋庸置疑,肯定选择node.js
  • 与go相比,node.js这种解释性引擎不仅在性能上远弱于即使带了GC的golang,同时,在微服务方面也是非常勉强的。node.js更加无法像go一样胜任云计算的底层开发。而node.js前后端一体化易于部署和开发,适合作为go和rust前中期的替代;轻量级的hono.js、fastify等框架也方便在项目高速发展期把后端随时替换成go或rust与微服务架构以适应业务需求。可以在学习node.js之余,学习rust,因为它在很多场景下用来做node.js的基建。也可以研究golang,因为在后期你可以忽略不计开发成本,不需要前后端一体时,golang明显就是node.js的升级版!
  • 与java相比,node.js的生态几乎是被吊打的。php拥有着非常完美且成熟的开源生态圈,而java则是拥有一个完整成熟的商业生态圈。一个spring全家桶几乎是无敌一样的存在,且nestjs在开发复杂数据结构的企业级应用方面也是无法与java这种重量级的生态相比的。java非常强大,拥有良好的生态,性能中上、适合具有复杂的架构和数据结构的企业级项目,适合团队协作等等优势。但Java在求职和变现方面的"卷"和开发效率的"慢"(就算spring boot,开发中小型的效率也是如此拉胯)是出了名的,所以没必要说太多
  • 与.net相比:.NET同样也可以前后端一体化且性能方面也比node.js更出色,就算远程/海外/外企求职等求职领域也不输node.js。然而node.js的前后端一体化更加全面,且生态方面更加开放和完善,并且使用者数量也多。另外,把自己的技术栈局限于一家公司之内,也许并不是很好的选择

node.js和前端一体化同构以及所有厂商云函数的优先级等巨大的优势是其他所有技术栈无法媲美的。所以,综合来说,node.js作为后端运行时,更加适合于初创期的团队或独立开发者用来构建快速上线的轻量级MVP单体应用。在许多情况下,可以用于替代php和python等解释型语言

比如,使用next.js作为前端,使用hono.js这个node.js作为后端,使用route handler整合后,快速上线一个前后端一体化的web应用。后续随着用户量和并发要求的不断提高,在一个合适的时间段,把后端部分使用golang的gin或者go-fiber等框架或微服务架构进行重构

又比如,使用nestjs+vite+react+monorepo模式开发一个快速上线的中后台应用,然后在后续数据结构越来越复杂,应用规模越来越大时,可以使用spring boot来替换掉nestjs进行重构

总之,node.js作为后端的定位,并不是企业级或者微服务。而是与前端一体化同构,快速上线一个轻量级的应用。从而降低开发成本,让研发者把更多的时间和精力放在产品本身的运营上

除了技术层面的优势,在求职、变现和创业方面,TS全栈开发也表现不俗

比如在求职这块,如果你的目标是求职大厂后端,node.js后端显然不适合,只学习TS的纯前端部分技能即可(许多大厂也会选择node.js作为中间层转发请求)。不过求职大厂,跟技术关系不大,最重要的还是学历😄。而TS全栈相关的react、next.js、node.js等技术栈在求职领域的主场则是在

  • 远程工作
  • 外企求职
  • 海外工作
  • 和国内一些新兴的创业团队等方面

在这些岗位中是占有绝对的需求数量优势的

尤其是远程工作和海外工作方面, TS的岗位需求量几乎占据了近一半以上。从3R这个封闭式的小社区来看,也经常会有比较多的远程岗位和海外本地岗位是ts相关技术栈的,而一些专业提供远程工作的社区或海外的招聘网站则往往有多得多的ts相关的远程岗位

社区内有很多会员都从事着远程工作和远程办公,因为最初3R社区只是一个数字游民的付费学习和交友社区,后来才有越来越多的个人创业者的融入。远程工作方面,目前来说比较具有代表性的如@愧怍同学(base 25k+股权的美国远程工作,技术栈:next.js+vercel ai开发)、@MArtian同学(base 未知+10%股权的澳洲远程工作,技术栈: next.js+wordpress)等

再则TS全栈在外企求职、国内大厂和新兴创业团队甚至国企这种传统企业求职中都占有一席之地,且由于其便捷性和低成本等特点,国内企业对这方面的人才需求也是与日俱增

而在远程个人创业方面,这套技术栈由于其不断成熟的生态、前后台一体同构、性能表现良好、覆盖领域广等优势,使得能快速上线一款不错的产品,也方便随时根据自己的idea不断调整,正在成为个人开发者及初创团队的最爱。非常适合

  • 个人或远程协作小团队的外包接单工作室
  • 独立产品开发者
  • 需要快速上线以验证市场的MVP产品

等工作。比如,我们工作室的绝大部分外包项目几乎都是ts全栈开发的,详情可参考工作室页面

在独立开发方面,TS全栈更是几乎无敌的存在,基本覆盖了所有常见领域的快速开发,可以把大部分时间放在推广和运营上。3R许多独立开发的同学基本都选择react、next.js、node.js这些技术栈来开发自己的应用,比如@王小C同学的知识管理应用、@勇敢的心bbk同学的音乐app等就是很好的例子。使用next.js开发并在极短的时间内上线,然后把精力放在宣传上并获得大量的用户

所以TS全栈开发不仅非常适合现阶段学习,在未来也适合作为主力技术栈为你的编码生涯提供助力的,这也就是我们出这套课的原因所在

但是,往往只从事技术开发,会导致思维限制。因为纯技术从事者,很难去形成一个属于自己的稳固事业,也无法获得一名程序员应有的收入。由于绝大多数编码工作者所从事的工作并不是稳定的国家编制单位,而是一众私企。那么即使求职成功,也可能长期处于担心被裁的焦虑中。这是因为私企肯定是逐利的,这种现象是无可厚非的。而在站长看来最好的解决办法就是远程自由职业。即使有再多的垄断型大厂,高科技企业于打工者而言是没有任何意义的,我们要的并不是集中力量办大事,最后把自己给办了。但如果大厂越来越少,而一部分程序员尝试自己经营小个体户,小微低成本企业越来越多(比如自己写一款销量好的应用实现被动收入甚至拉到投资;拉几个网友成立一个远程工作室接一些创业型的高价外包;或者纯粹一个人卖课等等方式),从而形成属于自己的稳定事业,就不再需要太过担心裁员,失业等现象的发生。即使在生意不好的阶段,也能临时找份远程工作搞一点收入顶一顶或者攒点资金方便下一次创业。这就是站长所推崇的远程自由职业的逻辑

✍️学习​

请详细查看以下内容,以便更好地学习本课程

🔧准备​

在学习本课程前,请务必先学习一下git的安装配置和基本使用以使用我们的课程源码。此外,如果可能的话,最好能有一台macos系统的电脑,这样可以和课程代码的运行环境保持一致。但是如果没有mac,也可以在windows下安装wsl2或者直接装个linux系统来学习。最好不要直接在裸win中装node来跑代码(尤其bun这种工具),后续问题会比较多

如果你是零基础或者其他技术栈的开发者,请在学习本课前提前学习以下资料

🔨流程​

信息

关于社区资源、助教问答等服务的使用方法请查看教室主页的使用指南

一个良好的学习方法,总能达到事半功倍的效果。所以尽量按站长推荐的学习方法和流程学习本课以及正确的使用社区,具体步骤如下

不会使用git克隆的同学请看以下步骤👇
信息

在windows下必须安装wsl2,下面所有linux操作包含Debian系的Linux发行版(Redhat或者Arch系的大同小异)和windows下的wsl2 linux子系统

注意

在windows下所有执行的命令,都是打开windows terminal 进入 wsl子系统后执行的。非要在windows宿主机中打开git bash或者powershell去执行命令,遇到的一切问题不做解答,请自行负责!

MacOS系统

  1. 下载安装iterm2(一个比苹果自带的terminal更好用的命令行工具)
  2. iterm2执行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"命令安装brew(一个包管理工具) 3.(可选步骤)可以自行按需配置iterm2使他变得更好看,怎么配置请自行谷歌搜索,不配置也不影响使用
  3. 执行brew install git以安装git
  4. 下载并安装docker桌面版,请尽量在(设置 -> General)里设置开机启动,以免开机后手动启动

Windows系统

  1. 打开App商店的Windows Terminal,点击"install"按钮安装Windows Terminal
  2. 打开Windows Terminal,点击标签栏的向下箭头按钮选择"Windows Powershell"
  3. 输入wsl --install以安装wsl2
  4. 关闭windows terminal并重新打开,点击标签栏的向下箭头按钮选择"ubuntu"子系统(即进入wsl)
  5. 在wsl子系统中先执行sudo apt-get update && sudo apt-get upgrade -y升级包,然后执行sudo apt-get install -y git 命令以升级系统包和安装git
  6. (可选步骤)可以把wsl作为windows terminal默认打开的窗口以及做一些其他的美化,请自行谷歌搜索"windows terminal配置"等
  7. 下载安装docker桌面版,并整合wsl(点击顶部的设置图标 -> Resources -> WSL integration),请尽量在(设置 -> General)里设置开机启动,以免开机后手动启动

Linux系统

你都这么屌了,我就不多说了(建议manjaro系统) 先安装docker,桌面发行版安装docker desktop,远程服务器安装docker EC 然后安装git

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y git
# redhat系,fadora/centos等
# sudo yum update && sudo yum upgrade -y
# sudo yum install -y git

# arch系,manjaro/arch等
# sudo pacman -Syy
# sudo pacman -S yay
# yay Syu
# yay -S git

克隆仓库

信息

新手请注意:这里的~符号是默认指向用户目录

一、生成ssh key 打开命令窗口,执行以下命令,不停按回车生成,不要输入密码什么的

ssh-keygen -t rsa -C "随意填一个邮箱地址"

二、添加密钥 打开刚才生成的密钥,位置在~/.ssh/id_rsa.pub 可以通过cat命令来输出内容,并复制

cat ~/.ssh/id_rsa.pub

然后使用站长给你提供的账户及密码登录我们自建的git代码托管平台,点这个链接,点"增加密钥",把刚才复制的key内容添加进去(名称随意填写或默认即可)并添加

三、克隆代码 打开命令窗口,使用以下命令克隆文档

git clone git@git.3rcd.com:classroom/ts-fullstack.git 3rapp

在克隆或拉取更新代码时如果遇到以下问题 请使用命令code ~/.ssh/known_hosts(~为当前用户目录)打开known_hosts,并删除其中那些带有git.3rcd.com的行 后续请关注QQ群,如果课程有更新消息,请通过以下命令更新

cd ~/3r && git pull origin main
  1. 本课程是纯文档课(类似手册,不过26重构版上线开始我们将重新添加一些视频)。在学习课程前或学习过程中,如果对技术和变现方向比较模糊,可以预约站长进行"一对一"会议咨询
  2. 通过课程文档学习课程,并自行手动复现每节课的代码
  3. 在遇到代码跑不通或其他问题时,请克隆仓库中的课程源码,与文档进行对比学习
  4. 如果遇到实在无法解决的问题,在问题比较简单的情况下可以在QQ群求助站长,我和其他会员同学帮你搞定
  5. 如果是课程本身BUG或复杂问题,可以到论坛(已废弃)发帖提问。请在帖子最后艾特几位助教及站长,我们会抽时间处理
  6. 在学习完主体部分课程的“全栈入门”篇后,应该做的是尝试规划一个属于自己的项目,然后利用TS全栈技术去开发。在遇到需要用到的某项技术时,如果自己不会并且网上资料不多,恰好“高级技能篇”又有,这时再来查询该独立篇章里面这部分技术相关的内容会事半功倍了。因为该篇章的所有功能直接使用AI开发,所以,你只需要了解该篇章用到的TS生态是干什么,怎么用即可。现在已经不需要事事都古法编程了!另外,该篇章中的AI开发的技能建议学习一下,这可以给你的开发效率提升不少。由于课程是长期维护的,所以经常会对源码和内容进行更新。在学习每一节课程之前,请务必先查看一下"升级指南"中是否有对该节课内容的更新指南。如果有的话,请务必先了解相关生态的升级和更新
  7. 在完成你自己的第一个TS全栈web项目的情况下,你可以尝试学习一下同样是TS的electron或者react native(推荐expo框架),然后去开发一款桌面或移动应用,这会加深你的技术的掌握广度和深度。当然,也可以尝试taro这些小程序开发,因为ts能做的事情太多了...这些都不需要你去系统性的再学习了。因为你只要掌握了前19节课(即“全栈开发”篇)的TS基本全栈开发技能和生态图谱,后续所有功能都可以借助codex、claude等工具进行vibe coding了。
  8. 如果感兴趣的话,也可以研究一两个工作室商业项目源码。部分项目可以修改作为自己的案例用于接单或求职需求
  9. 学习技术课的同时,也可以学习3R社区的内容,并按自己的想法和方向尝试结合学习的TS全栈开发技能实践变现。可以尝试远程工作的求职以及远程个人创业等方向,踏入远程自由职业者的行列;也可以尝试求职一些好的坐班工作。另外,请注意多多关注QQ和微信群里的消息,有时候会有社区会议。当然,如果没时间参与,也可以查看录制
  10. 如果需要求职、招人、接单、融资、合作、售卖作品或服务等,可以关注微信会员群。当然,也可以自己发布消息(岗位招聘和外包找人除外,这些消息必须通知站长过滤后由站长发布),这就是我们3R的"资源互助"方式
注意

工作室的商业项目源码由工作室的开发者(教室长期合作的古早期老会员)开发,绝大部分并不是由站长或者助教开发的。所以,在部署、修改及二开方面我们并不能给予太多的帮助,请自行研究。

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

  • 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开发

如图

📚大纲​

本课程以TS全栈开发为核心,主技术栈是next.js+hono+nestjs。主要包含react、next.js、node.js、hono.js、prisma、typeorm、服务器运维部署和CICD、等知识与技能。本课程课不仅仅只专注于node.js后端开发,也包含了大量react前端技术的内容,并包含了许多以最新、最容易变现的海外/远程市场为主(兼具国内市场)的TS技术栈深度教学。同时,为了让更多的会员具备快速独立开发的能力,与3R社区的服务和资源也能无缝结合,会更加侧重于轻量级全栈开发。课程以TS全栈技术开发内容为主并CI/CD、部署等独立开发必备的知识,使得我们在学习技术时,可以真正地尝试利用技术进行实践和探索。所以,本课程不仅仅适合求职远程工作、外企坐班、海外岗位以及国内许多创业新兴企业的岗位,也十分适合独立开发以及个人创业!

课程分为两个篇章

  • 入门篇: 使用next.js+hono+prisma开发一个简单的个人网站系统(包括前后端、redis、认证等)以及如何使用CICD和PM2、Docker等工具进行部署和运维。网站麻雀虽小,但五脏俱全(实际上后续将作为3R教室的新官网使用),几乎涵盖了大部分react前端和node.js后端开发以及运维部署的常用生态和知识点。课程中通过学习前端react、next.js和后端的hono、prisma以及better-auth用户认证等技能,掌握整个ts web全栈开发的基本流程和架构。最后,通过运维部署的学习,打通一个简单的全栈应用从开发到上线的整个流程,为后续的深入学习打下坚实的基础。
  • 进阶篇:这个篇章就是22年的古早期课程《nestjs最佳实践的》23年整理版。以nestjs+typeorm为主的技术栈。虽然浅度学习还是可以比较轻松地掌握,但是和大量外部定位企业级node.js开发的nestjs课程(比如做个案例或按官网文档重复一遍做成视频教程等)那种点到为止或免费或收费的课程不大相同,会大面积深入一些框架和类库本身核心源码的定制、扩展或者涉及到大量服务端生态、底层构建工具开发、命令工具开发、自动化运维和部署等各种基本前后端开发知识之外的东西,学习曲线就会变得非常陡峭。这会造成许多基础差甚至零基础的会员同学长期无法学会的现象。所以只推荐已经有相当经验的python、php、java、.net等后端开发者转node.js技术栈,以及对JS/TS编程掌握非常熟练且拥有一定的node.js后端开发基础的前端开发者转全栈而学习。如果基础较差或零基础,我个人建议先学习《入门篇》。其实没有特殊提升需求,《入门篇》也足够用了。

并且随着时代的进步和技术的日新月异,我们不仅会不断地维护跟进这套技术最新的生态和 API,也会增加更多的新内容,使本课程越来越趋于健壮和强大(不会维护升级了,现在直接推荐学新课程)

同时,在学习技术课的同时,你不仅可以学习我们工作室成品的商业项目源码,还可以结合3R社区中的社区会议和经验分享等内容学习,然后尝试对求职、独立开发、外包接单等方向进行变现实践!

🚚入门​

本篇讲解一些ts全栈开发的入门级别和工程构建的知识,包括node.js、react、react hooks、next.js、状态管理等。然后使用next.js+hono+prisma+postgresql+redis开发一个简单的个人网站博客系统,带有可供客户端使用的后端 API,并涵盖常见的SEO、页面动效、better-auth用户认证等功能。最后讲解用多种标准化的方式,把网站部署上线并进行可靠的运维工作。学习完本部分课程,可以尝试远程工作或者远程个人创业。建议边学习后续课程边尝试求职、接单或开发自己的独立作品或网站了。此外,你还可以利用本篇中学到的TS知识去尝试自行拓展学习其他的相关生态,比如RN编写移动应用、Electron编写桌面应用、Taro编写小程序、vite+react编写chrome插件、Node.js编写爬虫等。

本篇的知识图谱如下

课程所涉及到的大致知识点和内容结构以及服务如下

危险

注意:下图老旧,是原来的《TS全栈开发实战》的知识结构图,请忽略。当前最新的课程《TS+AI全栈开发实战》的知识点请查看本文中的课程大纲

以下是课程的一些属性信息

篇章名称《TS+AI全栈开发实战》
开更时间2025年2月15日
创作及服务团队创作及助教:站长@pincman
学习时长2个月左右(零基础计算到全部学完)
课程定位TS中小型全栈应用开发、敏捷式个人开发,AI应用开发;适用于坐班/远程工作求职、独立作品开发、个人外包工作室运营等
课程进度已完结
课程目标让学习者成为一名js/ts全栈开发者,并实现自己的高薪求职、远程工作、个人创业等目标
适合学者独立产品开发者、外包工作室运营者、技术创业者等各类个人创业者;
远程、外企、海外、国内中小团队/创业企业等岗位的求职者;
所有对JS/TS全栈开发、AI开发感兴趣的编码爱好者
学习要求零基础、其他行业转码或
其他技术栈开发者(如Java、PHP、Python、Swift等)转技术栈/前端开发者转全栈
主要技术React(使用Next.js框架)用于前端及全栈开发
Node.js(使用Hono框架)用于后端API开发以及简单的轻量运维部署
教学模式手册文档+课程源码+工作室商业项目源码+群问答+论坛问答(论坛暂时已废弃,用QQ群替代)等
源码仓库classroom/ts-fullstack
技术清单typescript、node.js、bun.js、react、next.js
postgresql、prisma.js、typeorm、yargs、monorepo、
class-validator、class-transformer、zod、tailwindCSS、shadcn/ui、antd、
better-auth、dayjs、orpc、bullmq、redis、openapi(swagger)、vercel部署等

  1. node.js环境搭建及应用初始化: zsh配置、node版本管理、tsconfig配置、biome配置、断点调试等
  2. next.js应用初始化: next.js初始化、stylelint配置、css modules、整合shadcn与antd、turbopack、图标库等
  3. react内置Hooks的使用与自定义详解
  4. next.js中使用zustand进行状态管理详解:以明暗皮肤为例
  5. next.js核心概念及应用构建: 动态路由、路由组、并行路由、拦截路由、假数据、客户端与服务端组件、server action、表单提交等
  6. server action+prisma+bun全栈开发入门
  7. markdown编辑器与自研MDX渲染实现
  8. pgsql使用、用户体验改进与SEO优化: prsima+pgsql、元数据、骨架屏、响应式、表单验证等
  9. next.js+hono实现全栈开发
  10. hono整合OpenAPI(Swagger)+Zod实现接口类型安全与可调试
  11. prisma数据表关联与无限级嵌套及博客布局实现: prisma数据表无限级嵌套和数据关联、客户端api分片、dayjs时间库的封装、博客布局、面包屑和下拉式手风琴挂件实现等
  12. 使用motion+magicui添加网站动效与Landing Page
  13. 使用better-auth实现用户认证及资源保护: next.js中间件、hono中间件、better-auth的session认证等
  14. 使用redis+bullmq实现异步消息队列发送验证码: 腾讯云异步发送邮件和短信实现用户注册、密码找回、以及发送频率控制等功能
  15. 使用vercel serverless实现轻量级部署

🛸进阶​

信息

本篇就是开始于2022年的《nestjs最佳实践》课程,现在作为本课程的进阶篇呈现。本篇课程比较老旧,可作为TS全栈开发的进阶参考学习。

备注

这个篇章配套的站长自行开发的中后台UI面板 - toome 因为 react 版本过旧已无参考意义,如果要对接 API,可以用@茶汰同学或antd pro等其他开源后台面板代替

随着时间的推移,2022年出的《Nestjs最佳实践》这套课程中的许多生态和框架已经严重跟不上时代(虽然2023年努力尝试打补丁的方式修复),并且由于其模仿java以企业级开发为核心,这并不符合node.js更擅长于轻量级单体应用的理念,所以越来越与市场需求脱节。但不得不承认的是,在部分高薪远程、外企、海外、初创甚至国企岗位中,仍具有巨大的面试入职优势。

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

但值得注意的是:本篇章是以Nestjs框架为主,定位于高级node.js后端开发。目标在于增加求职优势,所以绝大部分内容是围绕node.js与ts的核心知识和高级开发技能所开展的。而经过几年的发展,3R教室会员的学习目标变得越来越多样化。有因为纯兴趣爱好想学习的,也有想成为远程个人创业者(独立作品开发/外包项目接单/知识付费等)或创意工作者的同学。许许多多的新3R会员并不都完全以求职为目的。再加上本篇的内容与外部那种点到为止或免费或收费的nestjs课程不大相同,属于源码级别的学习。所以学习曲线非常陡峭和抽象,只适合经验丰富的前端转全栈或者java等老后端转技术栈。为此,除非你的目标纯粹就只是想增加求职优势(部分Node.js岗位要求会nestjs),基础也比较好,那么,推荐学习本篇。否则我们更加建议直接放弃本篇,而只学习全栈篇。或者等后续TS开发能力比较成熟后,再根据需要学习本篇亦可!

这个篇章适合不喜欢入门这种轻量级且AI自动化开发友好的技术,纯粹处于兴趣,热爱古法编程的朋友。学习这个篇章前,首先确认你具备以下能力之一,否则不适合学习本篇而建议学习入门篇

- 经验比较丰富的java/php/.net等后端技术栈开发者转node.js或全栈开发

- 经验比较丰富的前端开发者(熟悉ts/vue/react等),至少会自行运维部署,并且会一些简单的node.js框架开发,比如express,koa等,想转真正的TS全栈开发人员

以下是课程的一些属性信息

篇章名称进阶篇-Nestjs最佳实践
开更时间2022年7月10日
创作及服务团队创作和助教:本课程只有站长@pincman自行助教
学习时长2个月左右(只适合有一定经验的开发者)
课程定位nestjs/node.js后端开发
课程进度现存版已基本更完
课程目标增加学习者的求职成功率和薪资水平以及TS全栈和node.js后端开发能力
适合学习者高端远程、外企、海外等岗位的求职者
学习要求其他技术栈的web后端开发者(如Java、PHP、Python、Golang等)转node.js开发、前端开发者转全栈
教学模式文档课程+源码+群问答+论坛问答
源码仓库classroom/nestjs2023、classroom/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测试、monorepo等

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