跳到主要内容

TS全栈开发课

success

3R教室《TS全栈开发系列》两周年重构版新课全新上线,已于2024年8月正式上线开更!

经过了几个月的新课规划,3R新技术课正式与大家见面。新的3R教室通过将全栈课和变现课并配合相应的社区服务来更加系统化的为会员们提供高质量的服务

信息

本页为技术课页面,只介绍与阐述《TS全栈开发系列》课程,其它板块的介绍可以查看3R教室的首页介绍或每个板块各自的详情页

🎓前言

聊聊TS全栈这个技术栈的优缺点和其在变现和求职方面的适合领域

站长从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相关的远程岗位

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

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

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

等工作

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

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

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

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

长期以来,在创作课程的同时,站长也会根据自己十多年的自由工作和小微创业经验经常会分享一些方法和思路。另外,随着3R教室本身资源的不断增加,我们也有了一个可以为大家提供优秀资源的圈子。所以,除了课程及相关问答服务之外,我们提供了变现课和[社区服务][forum]一些其它额外区服务项以帮助大家学以致用!

📄介绍

教室的旧版TS全栈课程以Nestjs框架为主,外加一些React中后台开发的相关内容。但为了适应日益变化的市场需求和跟上JS/TS生态的更新换代,我们于2024年9月开始重新开更一套新课程。旧版课程的主要教学目的在于提升会员在远程工作/外企/海外/新兴创业企业等方面的求职能力, 所以绝大部分内容是围绕后端node.js部分开展的。而经过几年的发展,3R教室会员的学习目标变得越来越多样化。有因为纯兴趣爱好想学习的,也有想成为自由工作(独立作品开发/外包项目接单/知识付费等)或创意工作者的同学。许许多多的新3R会员并不都完全以求职为目的,这也使得旧版本的技术课必须要推倒重来以兼顾多方面的需求。并且为了配合变现课和[社区服务][forum]服务,让更多的会员获得更多的通过技术变现的思路和方法,新版课程也增加了大量前端部分内容,使大家能真正的具备独立开发和变现的能力。

重新的制作的TS全栈系列课程分为两部分,他们的定位和方向不同

  • 《Next.js+Hono.js+Prisma全栈开发实战》(以下简称“新课”): 轻量级全栈开发
  • 《React+Nestjs全栈开发实战》(以下简称“旧课”):企业级全栈开发

这两套课程的技术内容和职业方向也是不同的,大致如下

  • 新课:兼顾求职、自由工作和独立开发者的轻量级全栈开发课程。以js/ts、react、node.js等基础知识为核心,围绕next.js+hono.js+prisma这套技术栈进行讲解。从开发一个全栈个人网站起步,通过一步步演化,最终实现一个强大的社区网站
  • 旧课:适合纯求职类的TS全栈开发课程,也是旧版课的升级课程。nestjs是一个比hono.js更复杂的企业级node.js后端框架。而前端部分则使用比next.js更底层的vite+react来编写。目标是是使用nestjs+react+typeorm开发一套类似无头CMS的通用中后台管理系统

目前重点更新和推荐的是新课,而旧课暂时处于维护期,也可以学习。旧课会在新课更完后(2025年初左右)重构一套升级版(纪念版)上线

新旧课的作用和目标人群是不同的。简单来说,前者兼顾自由工作者和求职者,后者只面向求职者。下面详细的介绍一下两套课程的区别以及为没什么要制作新课的原因,以方便各位朋友有个清晰的思路

Details

👇篇幅过长过隐藏,强烈建议查看 关于《Next.js+Hono.js+Prisma全栈开发实战》

《Next.js+Hono.js+Prisma全栈开发实战》是站长的新作,也是后续3R教室最重要、创作优先级最高的教学内容。该课程用于和变现课相结合,更加适合绝大部分会员的需求

为什么要出这套课?

首先,我们需要明白,node.js在后端开发方面的定位(因为前端部分不用考虑,99%以上都是js/ts开发)。node.js虽然拥有IO异步、高并发、多线程、cluster集群等优点。但最大的优点还是前后端一体化,即和前端柔和在一起共用类型(ts)、函数、生态等。正常情况下,不是特别秀逗不会去使用node.js写微服务、超大型复杂企业级项目的后端。因为超高性能的后端领域是属于rust和go的,而超复杂企业级项目的后端领域是属于java的。我们不能使用一个技术去做他不擅长的领域。所以,自然而然,得出node.js作为后端的擅长领域以及定位:开发需要快速出产并且对性能有一定要求的中小型单体应用,具体可以查看上述前言部分所述内容。

站长作为十几年的phper老码农一直想找一套既拥有php symfony/laravel框架的快速开发体验,又兼具js/ts和node.js生态的IO异步、高并发和前后端一体化的开发组合。实践过大量的方案,比如nestjs+monorepo、react、trpc等,但都不是很理想。虽然有些方案比较接近目标了(旧课中提供了大量的方案),但都是通过各类魔改、自定义命令等乱七八糟的hack方式强硬实现的,维护难度极大且影响开发体验。而尝试过next.js+server action+hono.js+prisma之后,站长认为契机已来。这套技术栈可以认为是目前唯一的php最佳新生代替代品。。。几乎兼具了所有轻量级快速开发和高性能的优点

相对于旧版的nestjs+react全栈开发课来说,这套课或者说这套技术栈有着非常多的亮点,比如

  • 十分轻量:next.js、hono.js、prisma orm都是轻量级框架,非常适合开发中小型项目
  • 简单易学:不需要太多的后端基础或前端经验,也没有太多的抽象和逻辑。边学边做即可掌握,有种现代版PHP的既视感
  • 开箱即用:不需要去手动搭建并不断调整monorepo这种多层次的架构和类型、库共享等方面,也不用像纯react那样自己去封装前端路由,没有多少心智负担
  • 体验优秀:这套技术栈就站长当前的实践来说有着非常良好的开发体验。目前而言,虽然hono这类新兴的微型node.js框架的生态没有nestjs等一些老牌大型框架成熟。但也在不断发展并且已经有许多生产级别的项目在使用了。另外,由于是新框架,完全没有nestjs这类的历史包袱。如hono天然就支持各种serverless平台、支持esm、针对bun优化、超高性能和并发支持等等。最重要的是和next.js无缝整合,用于替代next.js默认的server action模式
  • 性能强劲:hono.js作为轻量后端框架,由于其原生支持bun并且不做路由检索以及内核很小等原因,性能和并发支持在所有node.js框架中是顶级的存在(相对而已,nestjs即使用fastify适配器,也是没法比的)
  • ...

除了技术层面,这套技术栈在自由工作和求职等变现方面同样是非常适合和优秀的

  • 独立开发者而言:该套技术栈非常容易掌握,开发效率和一体化程度也很高,特别适合快速实现自己想要的作品投入市场并做后期迭代
  • 外包项目(这里的外包专指海外客户和创业项目客户):开发效率、维护及二开难易是首要考虑的,另外,并发测试数据的漂亮也很重要,而这套技术栈全部满足
  • 求职方面:next.js+node.js全栈开发的岗位需求数量非常多(包括远程工作、国内创业企业、外企以及海外本地offer也很多),就3R这么一个小社区的资源群,也经常会有这类招聘需求

关于《Nestjs+React全栈开发》

原来旧课中除了重点的nestjs框架后端开发的教程之外,早期还制作了一些react+vite中后台开发的课程,并以站长编写的中后台应用toomejs作为基石进行整个react后台面板的开发讲解。但是随着时间的推移,很多事情在不断变化,2024年的情况与2022年已经变得完全不同。首先,无论远程还是坐班工作,无论国内还是海外,纯前端的工作(尤其是中后台开发类)变得越来越卷。这是因为,有越来越多或个人的或企业的开源中后台方案可以选择,根本不需要你去开发。就拿3R教室这个小圈子来说,有很多会员同学在原来react课程源码-toomejs这个面板的基础上,开发出了一堆开源的后台面板。大部分时候,如果对自己开发后台感兴趣,仅需要学习一下react或vue,然后下一个别人开源的后台面板,研究一下代码就知道编写的思路和方法了,然后改一改就变成自己的了^v^。而很多所谓的TS工作,尤其薪资高一点又不是特别卷的,基本都侧重node后端领域的深度,对B端的中后台领域都仅限于使用现成的开源改了。或是rn、next.js这种千变万化的C端的前端及客户端领域了。这使得,后台管理这一部分的课程显得如此的无足轻重

再来说分析一下nestjs。相对于node.js这种更适合轻量级的后端开发来说,nestjs强制性走了一条不适合它的道路。用了大量反射、容器、依赖注入等方式来构建框架,非常笨重。站长认为node.js对于后端的定位应该是类似一个青春版的golang。也就是在不需要上微服务和超高性能时,使用node.js构建轻量级的单体应用后端无可厚非。一旦业务流上去了,则适合使用golang替换。然而无论golang或者node.js,都比较适合现代化后端开发。现代化后端开发最流行的都是轻量级开发框架,比如gin、echo、gofiber、express、koa、fastify、hono.js、elysia等等。而nestjs尝试去走一条本就不适合node.js的企业级开发之路。这个领域在国内向来应该是属于Java的,在海外也基本属于Java和.NET两者的。在一些性能要求不高的项目中,就连PHP都比node.js更适合去做企业级开发(毕竟有laravel、symfony等一系列成熟的生态),nestjs做了本该不是node.js做的事情。甚至它还支持微服务,这就更不属于node.js的领域了,用golang做不好吗?所以,长期以来nestjs处于什么都想支持,但是什么都支持不到位的一个半成品的尴尬境地。需要正经使用,必须要做大量的魔改和订制。比如,他的配置模块几乎不是人类可以使用的,所以站长为了提升大家的开发体验,不得不在课程里自行开发一个配置模块。与各种ORM的匹配(比如课程里的typeorm)也是随便一搞,根本没有深度整合,甚至根据动态配置实现数据迁移等都需要自己魔改。虽然站长在课程里都写了解决方案,但是,这样大的心智负担和学习曲线,去学习和使用一个本不属于它自己领域的技术,这应该并不是使用TS一种语言做全栈的初心所在了。另外,Nestjs框架由于其生态的历史包袱原因,官方无法完全支持ESM,也无法默认支持bun(虽然课程里站长都经过魔改支持了,但肯定不如官方支持的框架)。这就导致很多新兴的js/ts生态无法使用,以及性能方面的各种问题。还有最麻烦的是与前端的一体化整合开发方面,课程里使用的pnpm workspaces+turborepo的monorepo方案,但这种方案的确非常恶心,因为你需要关注的东西不断增加。比如turborepo升级后API改了,比如你想用bun了,比如前后端通讯使用trpc和rest之间纠结等等

但从3R社区两年的运营经验来看,在求职方面,掌握nestjs的优势显然比next.js加其他node.js框架求职成功的概率高出许多。站长发现,许多会员同学使用站长的nestjs+react课程找到了心仪的工作。有远程、有外企也有海外同学的在当地找到的工作,甚至还有用这套求职国企成功的

这也是站长打算继续保留React+Nestjs中后台开发这套课程的原因。根据大部分求职成功的会员同学的反馈,使用React+Nestjs求职的流程和模式大概是这样

  1. 在3R资源群或者其他社区或平台上发现Node.js招聘岗位,但绝大部分并没有特别指定要求掌握Nestjs,反而对前端React会有”熟练掌握优先“的关键词
  2. 开发者去面试,由于使用node.js的面试和笔试的远程/坐班(外企、创业团队、海外企业为主)大概率不会像Java一样有一堆八股,极少涉及算法方面,一般只看你掌握的深度。而Nestjs代表了Node.js在web后端开发领域的企业级标准也是最强大和复杂的框架。所以熟练掌握Nestjs框架,并且还自己开发的中后台面板搭建了一套自己的中后台管理系统。然后对各方面掌握的比较熟练,面试的时候非常容易脱颖而出。笔试基本就是做个小案例,用nestjs做出来远比其它node.js小框架做出来更容易得到认可
  3. 反而入职后,让你使用的后端框架大概率会是express、koa、fastify这类或过时或非常简易的微框架

以上流程是站长咨询了非常多的从事node.js全职开发的会员得出的结论,即:面试造飞机,入职打螺丝。但无论入职后用什么,能否入职才是最重要的,而nestjs几乎成为入职node.js的敲门砖了。因为next.js这种以前端为主并且封装好路由的全栈框架以及fasfity、hono.js这种微框架太过简单,以至于太容易学会。这样导致了,虽然react前端、node.js后端、js/ts全栈的岗位看似很多,薪资也挺高,但会这套的人更多,卷得一批(这也是上面说的新课更适合自由工作的原因)。而nestjs更像是java那一套,非常强大,但又没有java那么成熟。所以很多东西需要自己魔改、封装,对开发者的技术深度和动手能力要求极高。这就在求职市场上大放异彩了!

但无论怎么说,node.js更适合于中小型应用的后端开发,以及与前端的一体化。总而言之,言而总之,nestjs并不符合node.js的定位,也无法跟上时代的潮流。同样的,react+react router自己封装后台,也并不实用,需要经常维护更新,一般人没这个精力。但他两在js/ts和node.js的前端、后端、全栈求职领域,仍然是王者的存在

综上所述,这就是我们仍然决定重构一套“升级版”旧课的目的,但此课程的优先级肯定会比较低,目前计划是2025年初再出。但如果你对react+nestjs全栈开发/中后台开发感兴趣,也可以直接学习我们的旧课

🗝方法

一个良好的学习方法,总能达到事半功倍的效果。所以尽量按站长推荐的学习方法和流程学习本课

请务必先学习一下git的安装配置基本使用以使用我们的课程源码

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

正确的学习流程如下

  1. 先提前学习以上入门类资料
  2. 通过课程文档学习课程,并自行手动复现每节课的代码
  3. 在遇到代码跑不通或其他问题时,请克隆仓库中的课程源码,与文档进行对比学习
  4. 实在无法解决,也可以参考视频课程
  5. 如果视频课程也无法解决你的问题,可以在会员QQ群或论坛的问答频道联系助教@onOil求助
  6. 如果是课程本身BUG问题,请到课程的代码仓库(classroom/fullstack)中提交工单,站长会抽时间处理
  7. 在学习完课程50%以上内容时,也可以参考我们工作室的一些商业项目的源码学习,以提升真正商业项目的开发能力
  8. 在吃透一到两个工作室商业项目源码后,可以修改作为自己的案例用于接单或求职需求

在学习时,也请注意以下几点

  • 请务必以文档+源码为重要学习对象,实在搞不定再看视频或者直接问助教
  • 视频课程的更新较文档和源码来说会滞后,没做完10节课出一批视频
  • 目前来说,由于历史原因,工作室里使用next.js+hono.js+prisma开发的商业项目基本没有。但是纯前端的next.js小项目,next.js+nestjs+typeorm的大型项目、中型项目很多,可以先学习这些项目的源码。后续,工作室的新项目也会改用新课的技术栈了,敬请期待!
  • 工作室的商业项目源码由工作室的开发者(教室长期合作的古早期老会员)开发,绝大部分并不是由站长或者助教开发的。所以,在部署、修改及二开方面我们并不能给予太多的帮助,请自行研究。一些修改后部署的线上效果可以参考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开发

如图

📚大纲

以下课程大纲中的新课(《Next.js+Hono.js+Prisma全栈开发实战》)正在更新中,旧课(《React+Nestjs全栈开发实战》)旧版本大致更新完毕。但是旧课主要集中在nestjs后端部分的讲解,react前端部分直接使用站长自行开发的toomojs后台面板,而没有具体实现方面的课程。25年将制作的“升级版”旧课将会包含react前端部分如何手动编写vite+react后台方面的内容。旧课现存版学习曲线陡峭,目前推荐直接学习新课,等旧课升级版开更后再看自己兴趣确定是否学习!

📝新课

本课程的内容整体脉络如下

先讲解一些基本的react和node.js知识以及应用的搭建。然后从使用next.js编写一个简单的CRUD个人博客开始,不断的增加拓展和优化,让应用变得原来越健壮,最终成为一个带有多用户付费功能的社区系统。在这个渐进式的学习过程中,我们会掌握以ts+react(next.js)+node.js(hono.js)+prisma orm全栈开发为主线脉络并涉及几乎绝大部分js/ts常用生态。另外,我们还将在课程中掌握一些基本的服务器运维和优化,devops方面的知识。希望大家喜欢!

信息

2024年9月后购买会员后的学习进度正好与新课更新进度匹配。因为旧课暂时已不再维护,没有特殊必要,无需再学习旧课。对纯react以及nestjs感兴趣的同学,建议在旧课“升级版”上线后再学习。老会员如果需要温故,直接看“现存版”旧课即可

课程名称《Next.js+Hono.js+Prisma全栈开发实战》
开更时间2024年8月11日,预计于2024年12月全部完成,维护及回滚迭代至2027年8月11日
创作及服务团队创作:站长@pincman;群问答助教:@onOil;论坛问答助教:@cloneable
学习时长4-6个月左右(以零基础或没接触过JS/TS的开发者学习时间计算)
课程定位TS中小型全栈应用开发
课程目标让学习者成为一名js/ts全栈独立开发者
适合学者独立产品开发者、外包工作室运营者、技术创业者等各类自由工作者;
远程、外企、海外等岗位的求职者;
所有对JS/TS全栈开发感兴趣的编码爱好者
学习要求零基础、其他行业转码或
其它技术栈开发者(如Java、PHP、Python、Swift等)转技术栈/前端开发者转全栈
主要技术React(使用Next.js框架)用于前端及全栈开发;
Node.js(使用Hono.js框架)用于后端API开发;
Prisma.js ORM用于数据库开发;
Tailwind+Shadcn-ui+Antd用于编写UI界面样式等
教学模式文档课程+源码(主)/ 视频课程(辅)/ 群问答+论坛问答
源码仓库classroom/fullstack
涉及知识typescript、node.js、bun.js、react、next.js、prisma.js、
zod、postgresql、taiwlindCSS、shadcn/ui、antd、
jwt+oauth2(passport.js)、rbac(casl.js)、dayjs、sse、
websocket、bullmq、redis、openapi(swagger)、tdd/e2e测试、
gptapi、支付接口、腾讯云sdk、markdown/mdx、流媒体、性能优化/缓存/日志、Linux服务器部署运维、Devops(只涉及CI/CD)、monorepo等

课程知识点分布图如下

  1. Node.js开发环境搭建及应用开发入门
  2. Vite+React+Tailwind+Antd应用初始化
  3. React入门与常用Hooks详解
  4. Zustand状态管理详解
  5. Next.js+shadcn/ui应用初始化
  6. Next.js核心概念及应用构建
  7. Server Action+prisma全栈开发入门
  8. Markdown编辑器与MDX渲染实现
  9. 用户体验(表单验证、Loading效果、错误页面等)与SEO优化
  10. Next.js+Swr整合Hono.js实现全栈开发
  11. 构建Open API(Swagger)接口文档
  12. primsa.js实现无限级数据结构(分类、评论)与软删除功能
  13. 使用MeilliSearch实现全文搜索
  14. JWT用户认证与用户注册、修改密码功能开发
  15. 环境变量与配置系统实现以及dayjs时间库的封装
  16. 使用腾讯云COS上传图片与视频
  17. Landing首页以及导航页的实现
  18. 明暗皮肤、多国语言实现与整体样式优化
  19. 使用framer-motion+magicui添加网站动效
  20. 流媒体与视频播放器功能开发
  21. 图片剪裁压缩功能实现
  22. OAuth2(Github等)第三方登录功能实现
  23. 找回密码、绑定邮箱和手机号等验证功能实现
  24. 使用Redis+BullMQ实现异步消息队列
  25. 基于casl.js的RBAC动态权限功能实现
  26. websocket实现即时聊天及消息离线存储功能
  27. 使用sse方式调用chatgpt api实现自动写帖子
  28. 点赞、收藏、关注等社交功能与用户中心开发
  29. 支付功能与订单系统实现
  30. 收费功能与会员文档系统实现
  31. 使用Antd搭建建议后台框架
  32. 后台首页及系统设置开发
  33. 后台用户与权限管理、内容管理、订单管理开发
  34. 日志中间件、应用缓存与性能优化详解
  35. E2E测试及Jest TDD测试编写
  36. 使用Yargs编写安装包
  37. 在vercel一键部署你的网站
  38. Linux+Nginx服务搭建与运维
  39. 使用PM2+Cluster部署应用
  40. 利用Github实现CICD网站热部署
  41. 使用Gitea+Drone实现CI/CD热部署

📜旧课

success

旧课有一定难度,非常抽象,学习曲线陡峭,比较耗费时间。如不是老会员温故也无特殊需求,建议学习完新课后更具兴趣和需求决定是否需要学习升级版!

注意

旧课“升级版”目前暂定时未开更,暂定计划于2025年初开更,如果有需要请先学习“现存版本”。旧课是纯文档课程,适合有丰富经验的其他技术栈同学转TS全栈

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

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

为此,站长计划,在我们的新课程全部更新完毕后,对整套课程重构一遍(大概定于2025年初)。把一些太过时的生态(比如typeorm等)去掉换成新的生态,对框架的API做一定的升级。这套课程与新课不一样的是,我们将长期维护升级下去,这就是3R教室一直所坚持的 - 不忘初心!

课程名称《React+Nestjs全栈开发实战》
开更时间现存版已基本更完,升级版暂定于2025年初开更并永久更新维护
课程定位React+Nestjs企业级中后台开发
课程目标增加学者的求职成功率和TS全栈企业级开发能力
教学服务创作:站长@pincman担任;问答助教:@onOil
学习时长6个月左右(不适合零基础学习)
适合学者高端远程、外企、海外等岗位的求职者
学习要求其它技术栈的web后端开发者(如Java、PHP、Python、Golang等)转技术栈/全栈、前端开发者转全栈
主要技术React用于前端开发;Nestjs用于后端API开发; MikroOrm用于数据库开发; Antd用于编写UI界面样式等
教学模式文档课程+源码+群问答+论坛问答
源码仓库classroom/admin(升级版,暂无代码)、classroom/nestjs2023classroom/nestjs2022
classroom/toomejs(该库已弃,请直接查看@茶汰同学的完善版即可)
涉及知识typescript、node.js、bun.js、react、vite、mkiroorm、class-validator、class-transformer、mysql、taiwlindCSS、antd、
antd chart、tanstack-query、axios、react-router、jwt+oauth2(passport.js)、rbac(casl.js)、dayjs、sse、websocket、
bullmq、redis、openapi(swagger)、tdd/e2e测试、腾讯云sdk、markdown/mdx、monorepo等

  1. Node.js开发环境搭建
  2. Nestjs+Eslint+SWC应用初始化及断点调试
  3. 装饰器与反射详解
  4. Nestjs核心概念
  5. 无懈可击的Linux服务器构建
  6. 使用Turborepo+pnpm workspaces构建monorepo应用
  7. 使用Gitea+Drone自建CICD平台
  8. 使用Docker以及PM2部署应用
  9. Nestjs整合MikroORM实现基本的CRUD操作及分页数据查询
  10. 请求数据的验证和响应数据的序列化
  11. 数据关联与树形嵌套结构的分类和评论的实现
  12. 自定义全局的验证管道,拦截器和过滤器
  13. 自定义数据验证约束及约束中的依赖注入
  14. 批量操作及软删除(回收站)功能使用
  15. 数据库与MeiliSearch的全文搜索
  16. 数据操作代码的抽象化
  17. 整合bun与pm2实现开发环境与生产环境免编译和自启『兴趣课,可选或略过』
  18. 自建配置系统实现
  19. 嵌套路由与Swagger文档实现
  20. 使用Yargs构建命令行工具
  21. 生产环境下静默启动以及PM2 API的使用
  22. 数据迁移功能的实现
  23. 数据填充命令实现
  24. 用户模块开发以及使用Passport实现JWT认证和无痛刷新
  25. 基于CASL的RBAC动态角色及权限系统实现
  26. 组织架构等数据结构编写
  27. 使用BullMQ实现异步验证短信与邮件发送
  28. WebSocket实现消息广播功能
  29. 用户角色与权限管理功能实现
  30. 使用Antd搭建后台基本框架
  31. 后台皮肤、语言配置组件实现
  32. React Router+Zustand封装
  33. 菜单与面包屑组件实现
  34. KeepAlive功能实现
  35. 图标组件与多种样式的雪碧图实现
  36. Tanstack+Axios封装及整合
  37. 整合nestjs与React并对接前后端
  38. 使用Antd Chart实现首页仪表盘
  39. 基础配置与系统设置模块开发
  40. 组织结构管理模块开发
  41. 文章管理模块开发
  42. Vitest使用及TDD与E2E测试