跳到主要内容
success

3R教室三周年纪念版 -《TS全栈开发与变现实践》正式上线,欢迎新老会员朋友食用

信息

以下“全栈课”指代本课程(即:《TS全栈开发实战》)、“nestjs课”指代《nestjs最佳实践》、“变现课”指代《远程自由职业指南》

📝前言

时光飞快,3R教室(社区)自2022年开始至今已经运营有三周年了,成长为一个拥有近900人付费会员规模的线上学习和资源互通的IT社区。站长自己也在教学中不断学习,在学习中不断积累,结合自身以往的经验,为社区创造并总结了许多有用的知识,以及帮助许多会员朋友获得了一定的成果 。然而,随着时代的发展以及技术、市场的日新月异之变化,教室本身也需要新的思维和力量的注入。为此,抱着"不破不立"的精神,站长选择了推倒重来,重新编写一套新的课程 - 《TS全栈开发实战》(与其说是课程,不如说是一本"技术手册")

本课程作为3R教室当前最重要的课程,将永久更新与维护!课程是终身滚动式更新的,且会不断地从站长和其他会员的长期实践与经验中吸取知识并推陈出新!这类似于Ubuntu这类传统的Linux发行版与Arch这类滚动式发行版之间的区别。譬如:在技术课方面,目前课程主要是更新及维护当下流行的next.js、hono.js、prisma等ts全栈开发技能。但是,由于市场对AI大模型的使用和应用级别的开发需求比较大,所以我们会及时把这部分内容以加入到课程中 。另外,课程中的技术部分仍然以文档+代码为教学模式(而不是传统的视频课程),方便随时升级到最新的生态,也更适合扩展性学习。比如tailwind课程中是v3,而现在v4正式版已经出来,我们就可以方便的增加一篇无痛升级的章节

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

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

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

👇关于本课的创作背景

站长从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、workman等除外)更强一些,虽然生态上还是缺乏一些类似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全栈开发不仅非常适合现阶段学习,在未来也适合作为主力技术栈为你的编码生涯提供助力的,这也就是我们出这套课的原因所在

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

👇后端选择hono而不是nestjs的原因

随着时代的发展以及技术、市场的日新月异之变化,以及3R社区整体方向的不断调整,站长在2024年底规划出了这套新的课程-《TS全栈开发实战》,并于2025年正式开更。全栈课与nestjs课的区别在于,全栈课的技术栈(next.js+hono.js+prisma+ai应用开发+serverless等)是一套轻量级的应用开发技能,不仅只适合于远程工作求职,同时,也是个人远程创业者(比如独立应用开发、独立外包接单等)的开发利器。这是一套非常适合“远程自由职业”的技术栈

全栈课是一套主打实用性的JS/TS全栈开发教程,重在快速学会、快速上手。主要目标在于独立自由地开发自己的作品、从事远程个人创业及轻量级的远程工作求职。所以,课程中会涉及大量前端技能(因为初创产品最重要的是让用户或客户看到所见即所得的UI),对后端部分全部采用轻量级开发技术。如果你只专注于高薪远程工作求职并且有非常良好的其它技术栈的经验基础,想找一套研究型的node.js后端开发课程,从而更加深入地掌握ts及node.js方面的高级技能和知识,我建议你看看我们即将重构的《nestjs最佳实践》这套课程(此课程是3R起步的课程,我们后续会抽时间对其进行重构到最新生态!)

全栈课虽然是纯技术课程,但是与变现课一样,都是为实现“远程自由职业”这个目标而创作的。所以,两者结合在一起学习并实践,效果会更好

此外,在技术层面上,相对于nestjs课,全栈课的学习曲线更加平滑,学习难度也低很多,稍微有些前端或后端的开发基础即可快速掌握。所以,全栈课的目标不仅仅只是帮助会员快速地掌握web领域的前后端开发,同时,也可以通过全栈课可以尽快地学会react、node.js等整个javascript和typescript生态的大多数技能。这样就可以在之后,快速地去融会贯通相关生态的一些其它类型应用的开发。比如react native移动应用、electron桌面应用等

而nestjs课以nestjs+typeorm为主的技术栈,虽然浅度学习还是可以比较轻松地掌握,但是3R的nestjs课和大量外部定位企业级node.js开发的nestjs课程(比如做个案例或按官网文档重复一遍做成视频教程等)那种点到为止或免费或收费的课程不大相同,会大面积深入一些框架和类库本身核心源码的定制、扩展或者涉及到大量服务端生态、底层构建工具开发、命令工具开发、自动化运维和部署等各种基本前后端开发知识之外的东西,学习曲线就会变得非常陡峭。这会造成了许多基础差甚至零基础的会员同学长期无法学会的现象。所以只推荐已经有相当经验的python、php、java、.net等后端开发者转node.js技术栈,以及对JS/TS编程已经非常熟练掌握且拥有一定的node.js后端开发基础的前端开发者转全栈而学习

以上就是我们开更这套全栈课的技术层面上的原因。在变现层面上,[全栈课][fullstack]和nestjs课则各有优缺点。全栈课更侧重于远程个人创业方面,技术栈更加全面,并且学习曲线比较平滑。而在远程工作(包括国内工作、海外工作、外企工作等)求职方面,虽然next.js和react这种偏前端的全栈岗位会比nestjs这种偏后端的全栈岗位多得多,但是会的人也多,学起来也简单。这就导致会求职的时候会卷得多,薪资差距也会非常大,偏后端的TS全栈(比如nestjs应用开发)求职会容易很多而且薪资上会高出许多(但这不代表全栈课就无法求职远程工作,反而用全栈课这套技术栈做远程工作的开发者是主流)。此外,实际开发中,我们很少用到用到nestjs这么重的框架去做一些轻量级快速上线的个人应用作品或web网站。并且,一个后端框架就花费巨大的学习时间成本,对于快速掌握ts的其他多端生态(比如小程序、移动app、web前端、桌面应用、命令行工具等)开发也是非常不利的。为此,全栈课的快速学习和敏捷开发在数字个体创业领域也十分受欢迎

总之,在"远程自由职业"这个范围内,全栈课兼容独立应用开发、外包接单等个人创业模式和远程工作求职两者,但更侧重于个人变现能力,是为结合变现课而创作。nestjs课则更加专注于高薪远程工作及各类坐班求职

✍️学习

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

🔧准备

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

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

🔨流程

信息

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

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

不会使用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. 本课程是纯文档课(类似手册)。在学习课程前或学习过程中,如果对技术和变现方向比较模糊,可以预约站长进行"一对一"会议咨询
  2. 通过课程文档学习课程,并自行手动复现每节课的代码
  3. 在遇到代码跑不通或其他问题时,请克隆仓库中的课程源码,与文档进行对比学习
  4. 如果遇到实在无法解决的问题,在问题比较简单的情况下可以在QQ群求助助教@zhangfeng,他和其他会员同学帮你搞定
  5. 如果是课程本身BUG或复杂问题,可以到论坛发帖提问。请在帖子最后艾特助教@cloneable,他会抽时间处理
  6. 在学习完一部分课程后(按课程大纲和你的目标需求来),可以先不用一直学,因为大部分基础的TS全栈开发你已经掌握了。这时候,你应该做的是尝试规划一个属于自己的项目,然后利用TS全栈技术去开发。在遇到需要用到的某项技术时,如果自己不会并且网上资料不多,恰好课程里又有,这时再来学习后续课程里这部分技术相关的内容会事半功倍了
  7. 在完成你自己的第一个TS全栈web项目的情况下,你可以尝试学习一下同样是TS的electron或者react native(推荐expo框架),然后去开发一款桌面或移动应用,这会加深你的技术的掌握广度和深度。当然,也可以尝试taro这些小程序开发,因为ts能做的事情太多了...
  8. 如果感兴趣的话,也可以研究到一两个工作室商业项目源码。部分项目可以修改作为自己的案例用于接单或求职需求
  9. 学习技术课的同时,也可以学习变现课的内容,并按自己的想法和方向尝试结合学习的TS全栈开发技能实践变现。可以尝试远程工作的求职以及远程个人创业等方向,踏入远程自由职业者的行列;也可以尝试求职一些好的坐班工作。另外,请注意多多关注QQ和微信群里的消息,有时候会有社区会议。当然,如果没时间参与,也可以查看录制
  10. 如果需要求职、招人、接单、融资、合作、售卖作品或服务等,可以关注微信会员群或论坛的消息及帖子。当然,也可以自己发布消息(岗位招聘和外包找人除外,这些消息必须通知站长过滤后由站长发布),这就是我们3R的"资源互助"方式
注意

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

如图

📚大纲

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

课程内容是循序渐进的,其中“基础”和“实战”两个部分是使用next.js+hono+prisma写一个cms网站系统。此系统麻雀虽小,但五脏俱全,几乎涵盖了大部分react前端和node.js后端开发的常用生态和知识点,以及从开发到利用vercel部署上线的整个web开发生命周期的内容。学习后基本上能达到独立开发或求职的水平,开发后的CMS网站修改后亦可作为自己的个人网站上线。然后结合该部分内容学到的web开发知识,自己再开发一些作品(因为JS/TS的生态都是通用的,所以利用学到的TS知识不仅可以开发web应用,也可以自行研究一下RN或者Electron来开发一些移动或桌面应用)。而“进阶”部分则是对这个网站系统不断地扩展,成为一个多用户权限的社区系统,涉及到CICD、运维部署、进程线程等更多深入化的东西以及一些如ai应用开发等新技能。这部分内容不一定要完全学习,在开发自己应用的时候正好遇到这部分课程里涉及的章节,按需查询学习即可

并且随着时代的进步和技术的日新月异,我们不仅会不断的维护跟进这套技术最新的生态和api,也会增加更多的新内容。比如AI篇(近期):AI大模型和智能体开发。这会使本课程越来越趋于健壮和强大

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

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

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

课程名称《TS全栈开发实战》
课程别名React+Nextjs+Hono+AI全栈开发实战
开更时间2025年7月1日开更,永久维护及更新迭代
创作及服务团队创作:站长@pincman;群问答助教:@zhangfeng;论坛问答助教:@cloneable
学习时长5个月左右(零基础计算到全部学完)
课程定位TS中小型全栈应用开发、敏捷式个人开发,适用于坐班/远程工作求职、独立作品开发、个人外包工作室运营等
课程进度更新中
课程目标让学习者成为一名js/ts全栈开发者,并实现自己的高薪求职、远程工作、个人创业等目标
适合学者独立产品开发者、外包工作室运营者、技术创业者等各类个人创业者;
远程、外企、海外、国内中小团队/创业企业等岗位的求职者;
所有对JS/TS全栈开发感兴趣的编码爱好者
学习要求零基础、其他行业转码或
其它技术栈开发者(如Java、PHP、Python、Swift等)转技术栈/前端开发者转全栈
主要技术React(使用Next.js框架)用于前端及全栈开发
Node.js(使用Hono框架)用于后端API开发
运维部署、devops(ci/cd)等、AI应用开发相关
教学模式手册文档+课程源码+工作室商业项目源码+群问答+论坛问答等
源码仓库classroom/ts-fullstack
涉及知识typescript、node.js、bun.js、react、next.js
postgresql、prisma.js、typeorm、yargs、monorepo、
class-validator、class-transformerzod、taiwlindCSS、shadcn/ui、antd、
better-auth、rbac(casl.js)、dayjs、sse、
websocket、bullmq、redis、openapi(swagger)、tdd/e2e测试
ai应用开发、支付接口、腾讯云sdk、markdown/mdx、流媒体、性能优化/缓存/日志、
Linux服务器部署运维、Devops(只涉及CI/CD)、monorepo等

本篇章内容分为三部分章节:基础(1-5节)、实战(6-20节)、进阶(21-35)

🚚基础

本篇讲解一些ts全栈开发的一些入门级别和工程构建的知识,包括node.js、react、react hooks、next.js、状态管理等。

  1. node.js环境搭建及应用初始化: zsh配置、node版本管理、tsconfig配置、Eslint配置、断点调试等

  2. next.js应用初始化:next.js初始化、stylelint配置、css modules、整合shadcn与antd、turbopack、图标库等

  3. react内置Hooks的使用与自定义详解

  4. next.js中使用zustand进行状态管理详解:以明暗皮肤为例

  5. next.js核心概念及应用构建:动态路由、路由组、并行路由、拦截路由、假数据、客户端与服务端组件、server action、表单提交等

🚄实战

本篇讲解使用next.js+hono+prisma+postgresql+redis开发一个简单的个人网站博客系统,带有可供客户端使用的后端api并涵盖常见的SEO,页面动效、better-auth用户认证、RBAC动态权限、websocket、全文搜索等知识。最后学习一下使用vercel+neno快速简单地部署用用。学习完本部分课程,可以尝试远程工作或者远程个人创业。建议边学习后续课程边尝试求职、接单或开发自己的独立作品或网站了。此外,你还可以利用本篇中学到的TS知识去尝试自行拓展学习其它的相关生态,比如RN编写移动应用、Electron编写桌面引用、Taro编写小程序、vite+react编写chrome插件、Node.js编写爬虫等。

信息

站长建议:如果只是兴趣类学习、中低端远程工作或坐班求职或个人创业(比如接单、独立开发等)需求,可以暂时学完本章即可。后续课程可以暂时不学习而作为自行开发时查询使用。同时,建议着手开发自己的网站方便拓展业务。然后在开发项目时,用到哪个功能后续课程如果已经制作了,可以作为参考整合到自己的应用或外包项目中

  1. server action+prisma+bun全栈开发入门
  2. markdown编辑器与自研MDX渲染实现
  3. pgsql使用、用户体验改进与SEO优化:prsima+pgsql、元数据、骨架屏、响应式、表单验证等
  4. next.js+hono实现全栈开发
  5. hono整合OpenAPI(Swagger)+Zod实现接口类型安全与可调试
  6. prisma数据表关联与无限级嵌套及博客布局实现:prisma数据表无限级嵌套和数据关联、客户端api分片、dayjs时间库的封装、博客布局、面包屑和下拉式手风琴挂件实现等
  7. 使用motion+magicui添加网站动效与Landing Page
  8. 使用better-auth实现用户认证及资源保护:next.js中间件、hono中间件、better-auth的session认证等
  9. 使用redis+bullmq实现异步消息队列:腾讯云异步发送邮件和手机号实现用户注册、密码找回、用户验证等功能
  10. jwt与oauth2第三方登录功能实现:移动端无状态登录、github/谷歌/微信登录
  11. 基于casl.js的rbac动态权限功能实现
  12. 使用MeilliSearch实现全文搜索
  13. 数据操作功能优化:批量操作及软删除(回收站)功能实现
  14. WebSocket实现消息广播与即时通讯功能
  15. 使用vercel serverless实现轻量级部署

🚀进阶

本篇内容是对前面部分课程的扩展和发散充,力求在求职和独立开发时拥有更大的优势。包括管理后台开发、devops(ci/cd)、服务器部署运维、支付接口和电商开发、AI相关开发、测试、进程线程并发等知识点。目标是在学习完毕后,一个人能做一个小团队的事情。本篇在原有的博客网站上添加上各种功能,使其变成一个社区网站,并在这个过程中学习各种TS全栈相关的进阶知识和技能,以此来更加深入的掌握TS的前后双端开发的多种生态。大多数时候,本篇章作为用到某个知识点时的查询使用即可,没必要非得全部学完而耗费大量时间

信息

如果是有高级求职需求(尤其是高端远程工作、外企、海外本土工作等),建议学习本篇,并开发一些自己的作品案例。然后结合变现课尝试求职一份比较好的TS全栈或node.js后端或react前端工作了,后续的学习按兴趣来自己安排即可。

  1. 深入理解node.js进程、子进程、线程、并发处理以及cluster、fork等概念
  2. 使用Turborepo+pnpm workspaces构建monorepo应用
  3. yargs命令行工具编写及安装包开发
  4. 生产环境下静默启动以及PM2 API的使用
  5. 使用Linux服务器+Nignx部署应用
  6. 使用Gitea+Drone自建CICD平台
  7. s3规则云存储使用详解:图片视频上传、裁剪与懒加载、转码与断点续传、流媒体播放等
  8. 支付宝和微信支付接口的使用与付费文档系统实现
  9. 多国语言与其他社交功能(点赞、收藏、关注等、用户中心等)开发
  10. 使用vite+Antd构建应用后台框架
  11. 结合AI开发简易后台:首页及系统设置、用户与权限管理、内容管理、订单管理开发
  12. nextjs的日志、缓存与性能优化
  13. 使用Jest和Vitest编写TDD测试以及E2E测试编写
  14. AI基础知识解说:llm、mcp server、ai agent、n8n等
  15. 使用langchain构建ai智能体应用