跳到主要内容

3R社区使用指南

这是一个3R教室的快速使用手册,以方便大家快速了解3R教室的社区地图和基本使用方式,更详细的信息请看各个板块的单独页面

success

3R教室会员是买断制而不是订阅制的,也就是一次付费后可以永久学习现有课程及后续所有课程、永久享受所有服务和所有社区资源

📱联系方式

社区中经常会用到的人的联系微信清单如下

名称职责工作联系
@pincman站长3R教室和3R工作室运营、课程创作、一对一咨询服务、
社区会议主持、社区资源对接等
微信: imapincman
@mak社区管理员售前客服、论坛管理、各类群管理、工作室外包咨询等微信: newWorldSpace
@hdilthee社区管理员售前客服、论坛管理、各类群管理、工作室外包咨询等微信: hidlthee_jia
@zhangfengQQ群助教QQ群中的技术课(TS全栈课以及nestjs课)问答服务QQ: 1426715815
@被遗忘的传说QQ群助教与联合创作者QQ群中的技术课(TS全栈课以及nestjs课)问答服务、
nestjs课2025版联合创作者
QQ: 673686754
@cloneable论坛助教论坛技术课问答服务微信: cloneablei

🚚入会流程

请按以下方法购买3R教室会员,并快速融入我们开始学习及使用3R社区

信息

站长、管理员、助教、合作接洽等微信联系方式请查看上述联系方式一栏

  1. 详细查看3R教室的所有页面,确认完全了解3R教室,并确认需要购买3R会员
  2. 如果无需咨询,在3R教室主页底部找到支付二维码,使用微信或支付宝扫码支付购买会员
  3. 如果需要咨询,暂时请直接添加社区管理员@mak@hdilthee微信进行咨询(由于两位会员同学属于社区志愿服务,所以请务必在确认看完所有文档后进行咨询,十分感谢!)
  4. 购买会员后,直接添加站长@pincman的微信并备注”3R会员“或"已购买会员",如果发现付款码被风控导致无法支付等问题,请备注”支付问题“
  5. 如果站长因生物钟错乱没有看到,也可以先添加社区管理员帮忙先操作一下
  6. 让站长或管理员拉你进会员群(用于资源服务)、QQ群(用于学习)。目前会员微信群一满,可进群二
  7. 如果你是海外会员(或者有”润出去”及“海外工作”方面的咨询)/大厂会员(或者有需要内推)/创业会员(或者是天使投资人会员)等,可以让站长或管理员帮忙拉这些小群
  8. 然后站长或管理员会帮你添加git仓库的账户密码、课程文档的密码(视频网盘也在课程文档首页),可自行登录开始学习
  9. 遇到复杂问题,如需开通论坛账户,请联系站长或管理员开通
  10. 如需查看youni等商业项目源码,请联系站长或管理员开通源码克隆权限
  11. 入会后,如果需要“一对一“、岗位招聘、外包找人、融资或找项目投资、好作品/好服务推广等可以联系站长@pincman

🌈创作背景

success

关于”远程自由职业“概念的详细阐述,可参考变现课页面

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

以下是关于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、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全栈开发不仅非常适合现阶段学习,在未来也适合作为主力技术栈为你的编码生涯提供助力的,这也就是我们出这套课的原因所在

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

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

📚课程学习

3R教室的课程和服务有以下特性

  • 为了方便随时更新课程涉及的技术栈和生态的版本、及时处理课程中的BUG,也为了让所有同学保持一个看文档学习的良好习惯,3R教室的后续所有技术类课程都是采用图文+代码仓库的纯文档手册式课程进行教学,不再添加任何视频课。不久的将来,变现课这类非技术课程也会转型为纯文档课
  • 3R教室所有课程是终身滚动式更新的。也就是说会随着这些框架和相关生态的更新不断更新课程文档和代码,也会跟着时代的发展创作更多的新课程!譬如:TS全栈课目前主要是更新及维护当下流行的next.js、hono.js、prisma等ts全栈开发技能,但是,市场对AI大模型的使用和应用级别的开发需求比较大的时候,我们会及时把这部分内容以加入到课程中。又如nestjs课的版本太过老旧,已经两年多没更新,随着新版nestjs和react、node.js的生态越来越成熟,我们就会出个重构版

课程内容包含技术课和变现课两部分,学习和实践方式也不一样。当前教室拥有以下课程

课程名称简称课程状态学习方式主技术栈或内容代码仓库
TS全栈开发实战TS全栈课更新中文档+代码next.js、hono.js、
prisma、tailwind、
shadcn、AI等
classroom/ts-fullstack
nestjs最佳实践nestjs课待升级文档+代码nestjs、typeorm、
redis、bullmq、
ci/cd、运维等
classroom/nestjs2022
classroom/nestjs2023
远程自由职业实战变现课滚动更新期刊制视频
(社区会议、
一对一咨询、
客户谈判记录等)
海外外包、独立应用开发、
远程工作、被动收入、
品牌策划、营销运营、
工商税务、跨境收款等
~

同时,为所有课程以及社区配套了相应的各类服务。实现从技术学习 -> 变现(求职/创业)实践 -> 资源互通的综合性远程自由职业者社区

🔨技术课

技术课程包含两套课程《TS全栈开发实战》(以下简称:TS全栈课)和《nestjs最佳实践》(以下简称:nestjs课)

信息

下面只是两个技术课的简单使用流程说明,详情请务必参考两个课各自的课程页面

TS全栈课是3R教室为即将到来的三周年运营纪念带来的里程碑意义的一套新的学习手册

为了适应日益变化的市场需求和跟上JS/TS生态的更新换代,我们于2024年9月开始策划了这套新课程,并在2025年正式上线更新。旧课程(nestjs课)是以Nestjs框架为主,外加少量React中后台开发的相关内容,定位于企业级node.js后端开发。旧课程的教学目的在于提升会员在远程工作/外企/海外/新兴创业企业等方面的求职能力,所以绝大部分内容是围绕node.js与ts的核心知识和高级开发技能所开展的。而经过几年的发展,3R教室会员的学习目标变得越来越多样化。有因为纯兴趣爱好想学习的,也有想成为远程个人创业者(独立作品开发/外包项目接单/知识付费等)或创意工作者的同学。许许多多的新3R会员并不都完全以求职为目的,这也使得必须出一套新的技术课推倒重来以兼顾多方面的需求

新课程(TS全栈课)不仅仅只专注于node.js后端开发和运维了,也增加了大量前端技术的内容,并包含了大量最新最容易变现的海外/远程市场为主(兼具国内市场)的TS技术栈的深度教学。同时,为了让更多的会员具备快速独立开发的能力,与变现课也能无缝结合,会更加侧重于轻量级全栈开发。课程以TS全栈技术开发内容为主并配合变现课,使得我们在学习技术时,可以真正地尝试利用技术实现变现的实践和探索!

至于为什么要把新课的主技术栈替换成轻量级开发的原因,可以看这里👇🏻

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

  • 相对于php:有着前后端一体化及性能碾压传统fpm(也不亚于swoole、workerman)的优势存在,是php的最完美继承者(但是node.js生态目前相对php还有差距的)
  • 相对于go和rust:前后端一体化易于部署和开发,适合作为go和rust前中期的替代、轻量级的hono.js框架也方便在项目高速发展期把后端随时替换成go或rust与微服务架构以适应业务需求。可以在学习node.js之余,学习rust,因为它在很多场景下用来做node.js的基建。也可以研究golang,因为在后期你可以忽略不计开发成本,不需要前后端一体时,golang明显就是node.js的升级版!
  • 相对于java:java非常强大,拥有者良好的生态,性能中上、适合具有复杂的架构和数据结构的企业级项目,适合团队协作等等优势。但一个字否定:"卷",再加一个字:"慢"(就算spring boot,开发中小型的效率也是如此拉胯),所以没必要继续分析了
  • 相对于python:专业领域不一样,node.js做不了AI,python做web还不如php。唯一的交集可以一起做爬虫😅
  • 相对于.NET:毋庸置疑,.NET好许多,全方位的可以吊打node.js。就算远程/海外/外企求职等求职领域也不输node.js,但架不住node.js可以和前端整合一起玩

站长作为十几年的老码农(专注于delphi、haskell、php、jquery方面的开发),17年因为想使用前后端一体化开发,又会一些rust(rust和node.js基建有一点关联),然后机缘巧合下就转了TS全栈。一直想找一套既拥有php symfony/laravel框架的快速开发体验,又兼具js/ts和node.js生态的IO异步、高并发和前后端一体化的开发组合。实践过大量的方案,比如nestjs+monorepo、react、trpc等,但都不是很理想。虽然有些方案比较接近目标了(旧课中提供了大量的方案),但都是通过各类魔改、自定义命令等乱七八糟的hack方式强硬实现的,维护难度极大且影响开发体验。而尝试过next.js+server action+hono.js+prisma.js之后,站长明白,契机来了。这套技术栈可以认为是目前唯一的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最佳实践》

原来旧课中除了重点的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中后台开发(《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全栈开发/中后台开发感兴趣,也可以先直接学习我们的旧版nestjs课

学习流程

  1. 通过站长(或管理员)提供的账户和密码登录仓库
  2. 按照上述课程表格中的”代码仓库“地址来来克隆课程仓库的源码,比如TS全栈课对应classroom/ts-fullstack这个代码仓库
不会使用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. 实在跑不起来或遇到无法理解的问题时,简单问题可以在QQ群求助助教@zhangfeng@被遗忘的传说;如果他们无法解答,或者问题很长,可以让站长或管理员@mak/@hdilthee开通论坛账户(求助管理员开通),去论坛的问答频道发帖求助论坛助教@cloneable
  4. 如果两位助教均表示是课程代码本身有BUG,可以去课程代码工单中提交BUG;如果是课程文档表述错误,可以去文档代码工单中提交问题,站长都会及时处理
  5. 最后,再温故课程文档,看一下有哪些不理解的。有不理解的可以继续求助群助教或者论坛助教
  6. 课程不用全部学习完,学了一部分之后(根据每个人的不同情况自行决定),可以联系站长或管理员@mak/@hdilthee开通一些客户允许共享的3R工作室商业项目源码权限进行研究。一般推荐研究由@愧怍@opacity几位同学开发的goflashyouni等几个具有代表性的经典案例
  7. 如果想自行修改商业项目并作为自己案例部署到服务器,并用于接单或者求职等需求的话,请务必先联系站长(请参考注意事项)
  8. 你也可以把你写过的一些项目在论坛的分享频道或者群里推广一下
  9. 对于技术学习的规划如果比较迷茫,也可以预约站长进行“一对一咨询”(参考变现课部分

注意事项

  • 商业项目①: 如需修改商业项目作为自己的案例,请务必先联系站长确认。因为这会涉及到侵权问题(部分客户只允许代码可读共享)
  • 商业项目②: 工作室在正常情况下不再需要其他会员加入开发了,因为原有会员已经磨合得比较好了。但是,实在缺人也会从会员群中找新人(非会员勿扰)
  • 商业项目③: 工作室商业项目由工作室的其他会员开发,每个人的代码和部署风格不同,请自行研究,无法提供问答服务(工作室的开发者没有义务提供代码和部署等问答)。早期项目案例的修改成果可以参考@miven同学的网站上的案例
  • 商业项目④: 由于工作室项目的不断增多,很多客户允许共享的新项目是可以共享的(除了1ktiyonote外),具体是否能共享请查看这些项目的详细页面
  • nestjs课①: 由于我们目前重点精力在TS全栈课上。所以nestjs课的代码仓库中的各种生态和版本非常旧,大概率跑不起来了。在2025版出来之前,nestjs课仓库里的代码可能会有错漏,建议自行编写代码。另外,nestjs课目前已过维护期,请勿提交老仓库工单BUG,后续2025版本出来后再使用新仓库的工单
  • nestjs课②: 学习nestjs课的同学,如果需要提升学习成果可以参考@茶汰同学改进后的后台管理系统@被遗忘的传说同学的后台管理系统,都是在站长老版课程的react面板toomejs和nestjs课上整合开发而来,并且已开源

图解

下图中,红色箭头代表课程文档、课程源码、3R官方网站等代码;蓝色箭头代表默认可以共享的商业项目源码

如果想要学习某个商业项目的源码,看点开工作室页面,查看该项目的共享权限。发现允许共享,即可联系站长或管理员开通

🍚变现课

信息

以下是”远程自由职业实践“的简单介绍和使用流程说明,详情请务必参考变现课页面

某些情况下,变现课的价值远大于TS全栈课,建议在学习技术课的同时,并行学习该课程。因为这部分内容已经帮助到许许多多的同学成功实现远程工作、远程创业等目标。技术课学不学,学哪部分,具体需要看自己的兴趣爱好和目标,但严重建议所有会员学习变现课的内容。无论你是 大厂还是小公司/海外还是国内的上班族或远程工作者又或是创业者、投资人等都建议研究一下。因为实践证明,根据站长十多年创业(折腾)经验以及其他会员同学的经验所总结的《远程自由职业实战》课中的内容还是非常有用的

变现课主要是通过“社区会议”和站长个人分享的方式期刊制的滚动更新视频。同时,还有一对一咨询等服务,其详细内容涉及范围可以查看变现课页面。大致涉及推广营销、自媒体和私域运营、外包工作室、远程工作、知识付费、独立作品开发者、被动收入、投资融资、工商税务、跨境收款相关等各方面的知识

变现课并不是一套完整的课程,是一种旗杆制的视频,包含下面几个部分

信息

后续在文档版课程出来后,会有一个正式的目录。目前这些内容分布在社区会议、一对一以及客户谈判记录中

  • 社区会议:是站长每隔一段时间在社区内,直播讲解远程自由职业涉及的一些经验和技巧,有时候也会邀请其他一些实践比较成功的会员作为嘉宾参与。偶尔会邀请一些大厂会员、外企/国企会员、数字游民/数字创客会员、海外会员等作为嘉宾讲述他们的经验。所有录制放在网盘
  • 一对一咨询:一对一咨询是单方面与站长预约时间,通过会议的形式获得职业生涯探讨、远程工作/远程创业等技巧和方法指导、技术方向选择等等。当然,除此之外,你也可以预约站长聊一聊求职等站长不擅长的方面(比如大厂职场、海外求职等)。也许站长对这些方面么有实践过,但是经营了近三年的3R教室,接触过各种会员,有些时候站长的建议也许会有帮助的
  • 客户谈判记录:如果你想做接单,那么可以参考一下,站长是怎么谈下那些海外或国内的高价项目和高质量客户的。在网盘里分享了一些高端客户的谈判聊天记录或语音会议
  • 社区资源互助(请查看社群服务):涵盖招聘求职、发包接单、创业融资、产品推广、分享发现等方面。目前所有这些暂时都在会员微信群中进行,后续会上线"数字创客"平台提供更优质便捷的服务

具体的学习步骤如下

  1. 打开网盘,学习往期社区会议的思路和方法,并根据自身情况选择一种远程自由职业方案以及决定全职或兼职去做
  2. 请务必在实践之前,制作一个自己的官方网站。无论你是卖作品、卖课、接单、找远程工作还是创业,都请务必做一个网站,这很重要。觉得使用TS全栈课中的next.js自己开发比较麻烦,也可以直接使用wordpress、vuepress、typecho这些。或者使用站长的官网源码rowfish以及其他会员同学(如@愧怍@miven等)的官网源码。实在弄不来可以请教站长,也可以查看技术课中的服务器部署哪些章节的内容自行搞定
  3. 如果是接单或者求职的话,还可以把工作室的商业项目修改后部署到你自己的服务器上作为自己的案例以提升竞争力(必须咨询站长,因为这会涉及版权问题),但如何可能的话请务必自行开发一些案例。独立开发或卖课、创业等不一定需要准备案例
  4. 如果是运营外包工作室的方式接单的话,也可以学习我们网盘中的站长与客户的“谈判记录和会议”,这样会增加很多谈判经验以提升成功率。谈判记录只涉及到接单这块,关于被动收入(比如知识付费、app应用开发销售等)重点在于推广获客,而不是谈判
  5. 然后,在社区会议的基础上,寻找到符合自己的方式方法去变现,尽量不要全部照抄
  6. 如果实在无法选择或者因为情况特殊,不知道怎样开始。可以预约站长“一对一”咨询
  7. 在实践过程中,如果遇到问题或者长期无法出成果,也可以再次找站长“一对一”以及时调整方法
  8. 在发展过程中,不断学习往期社区会议以及跟进最新的社区会议内容以获得思路
  9. 有任何成果了,可以与站长和群友分享。尤其是独立开发、知识付费、平台运营等方面,顺带还可以广告一波^v^

🚀社群服务

社群服务为3R社区提供了一个远程资源互助与共享的桥梁,目前我们有以下群供使用

success

除了会员群外,还有一个外部的非会员群,普通网友可以添加管理员微信(不要添加站长微信),让他们拉就进去行

信息

默认只进入QQ群和会员微信群,进其它群的方法是购买会员后让群管理员(@mak@hdilthee)【推荐】或站长拉

QQ群:用于技术课程的问题问答、变现课实践的讨论以及行业交流、技术交流、工作交流、远程工作和远程个人创业等探讨

备注

没有QQ和国内手机号的海外同学,如果有需要可以自行在某宝等处买一个QQ号,也可以只使用论坛及会员微信群

会员微信群(群一已满,新会员进群二)

  • 社区通知:比如站长发布一些活动公告、社区会议直播间地址等
  • 岗位对接:发布远程/坐班岗位的招聘求职信息,急聘的话可以请求站长在两个会员群都发布招聘信息并艾特所有人
  • 外包对接:发布外包需求和接单需求
  • 创投对接:如果正在创业,有融资需求可以联系站长帮忙与投资人接洽(仅限种子或天使轮);如果手上有闲钱,想找好项目投资,也可以联系站长接洽
  • 作品/服务推广:推广自己的收费/免费的作品或服务。也可以在论坛发一些需要长期可看、需要沉淀的东西,用于与其他会员一起探讨和研究

海外会员群/大厂&外企群

  • 海外会员群:由海外会员和海外客户组成的群,可以求助留学/移民的成本和方法、拿工签的办法,以及海外坐班岗位招聘和求职互助等
  • 大厂&外企群:如果是高学历或大厂背景会员需要内推,可以请求本群的同学帮忙内推。本群的同学也可以自己为所在单位发布内推信息寻求人才

如果是一些沉淀类的信息,可以去3R酷论坛发布

其它还有一些小群(根据需要让管理员拉即可),比如

  • 专门用于创业者和投资人对接的“飞鸟创投群”
  • 用来闲聊生活琐事和谈天论地的“3R茶馆群”
  • 一个不需要会员权限的外部“自由职业者交流群”等