原来的课程是以文档和代码驱动的,但是为了让基础比较差的同学也能尽快入门,目前新课我们已开始直播课并剪辑成用于配套文档的视频以供大家学习,但建议还是以 "文档"+"代码"+"discord问答"为主的方式进行学习,这样更能提高你的自学能力!
我们直播课的时间为 技术课: 周六晚18点、掘金课: 周日晚18点,所有直播均有录制并会提供剪辑好的视频给大家,以方遍没时间参加直播课的同学学习!
代码请登录代码仓库请使用@pincman
或@玛卡巴卡
给的账号密码登录(没有登录将呈现404页面)后获取!
掘金课目前不需要文档,参加直播或看录制视频即可
✏️提前准备
如果在学些"提前准备"知识时遇到难题请在discord中@Cloneable
或者@愧怍
解决
建议学习的顺序是先Nestjs然后再React,最后再Nextjs.每一部分学习前请提前学习该部分的准备知识!
在开始课程之前你需要准备以下知识
🐣必需
以下知识是必须提前准备的,准备好能帮助你更快地学习我们的课程
- Javascript的ES6+的基本用法,可通过菜鸟教程的ES6教程快速学习
- Typescript的基本语法,可通过Typescript入门教程快速学习
- 请掌握好
this
,call
,apply
和bind
,可以阅读这篇文章 - [仅nestjs部分] TS装饰器与反射详解建议在学习课程之前先学习一下
- [仅nestjs部分] Mysql的基本使用方法可以参考菜鸟教程
- [仅React部分] 掌握基本的html5与css3,不会的话建议看一下这个手册
- [仅React部分] 学习React的官方快速入门教程
🐥可选
部分内容直接学习我们的直播课即可
以下内容是可选的,也许在我们课程中用到时结合着学效果会比先学好更好!另外还有一些文档可供查询之用
- 建议学习一下基本的Linux/Macos操作,这可以帮助你快速成长为一名优秀的程序员,花少量的时间学习却对后续的技术增长非常有帮助。如果你是windows,我推荐使用虚拟机而不是wsl2!入门非常简单,学习一下高建龙的vim教程(稍微会用就行)以及开个虚拟机学习OS运维的教程尝试自己搭建一下lnmp环境,最后装个manjaro系统,知乎上找几篇相关的文章学习一下使用,差不多对各种命令和方法就熟练了,然后无论你使用MacOS或是Linux,都会习惯它们的目录结构,基本命令等。但这不是课程要求的,Windows装环境特别简单,下载一个phpstudy就啥都有了,然后下载一个node.js包点击安装就行,并不影响学习与开发,但是可能会遇到少量不知名的BUG^v^
- 阮一峰的ES6用于查询ES6+语法使用
- Typescript手册用于查询TS语法使用
- Redis,Rabbitmq,Websocket等工具的基础概念,这些在菜鸟教程上直接搜索就行(这些在学习中用到的时候再去看就行)
- Jwt授权及OAuth2认证流程,可通过学习阮一峰的JWT文章以及理解OAuth2.0快速掌握(这些在学习中用到的时候再去看就行)
📒课程目标
TS全栈课程不讲所谓的“高并发处理”,“云原生架构”,“大型某某项目”,“年薪百万企业级”等等相关内容,如果你喜欢这类课程请自行某课购买或B站搜索!我们更倾向于制作小而美以及极客式的,以引导你获得更好的编码学习方法,并帮助你解决实际问题,减少你的爬坑时间为主的课程.
课程最终的目的是面向远程/坐班求职,海外项目开发等,是编写一套通用的开发框架,在此基础上你可以不断地修改并随时开发出你自己的应用。另外一个目的是帮助你数量掌握各种通用的TS生态,以便可以触类旁通的随时使用相关的其他框架,比如electron
写桌面应用,taro
写小程序,rn
写移动应用,写node
爬虫等等。
本课程并不是带你简单的浏览一遍语法塞给你一个项目和一套PPT讲课视频带你入个门,也不是随便搞个简单源码然后臆想出来的所谓"商业案例"让你照着抄一遍,案例方面我们直接向你提供我们项目组的商业案例源码,那会比臆想出来的"学院派商业项目"更可靠,并且我们所有的项目(只要是TS
的)都是基于我们课程里的框架和知识开发的!
而掘金课根据同学们的不同想法来实现不同的目标,但是必须清醒的是,3R教室的营销课只是教你方法,是无法保证你百分百成功的。
因为无论求职还是自由职业的薪资和收入高低都是跟每个人的运气,机遇和领悟力有关的,所以这需要你自己做一个权衡
- 学会Nestjs框架的核心概念,原理以及使用方法
- 完成一个自行魔改后的兼具nestjs模块化和laravel敏捷式的后端框架
- 在魔改后的框架上完成一个弹性可扩展的CMS系统后端
- 为CMS系统后端手动开发一个基于React的后台管理系统
- 使用Nextjs为CMS系统开发一个强大的SSR网站
- 使用monorepo整合API后端,React后台以及Nextjs前台
- 使用Gitea+Drone+Nginx+PM2实现自动化构建及热部署
- 学会个人网站的开发以及个人品牌的建设
- 指导想找远程工作找到第一份适合你的海外远程工作
- 帮助已经习惯远程办公,但是996远程的同学换一份更轻松的远程工作
- 承接海外远程项目并且获得一定的渠道客户,从而实现自由职业或自己的工作室
- 通过销售你开发的订阅制应用或者你的网站广告与VIP获得长期稳定的被动收入
- 通过学习网课制作销售获得财富的快速增长
📗助教团队
我们目前拥有专业的助教团队,他们分别是
@玛卡巴卡
: 报名咨询及学习指导@Cloneable
: 基础问答@愧怍
: 实战课问答和商业项目的后端问答@欧欧
: 商业项目的前端问答
🎓学习方法
💡课程源码的使用方式是,
- 使用
@pincman
给的账号登录git仓库并添加你的ssh key - 克隆仓库(
git clone git@git.3rcd.com:class/仓库名.git
) - 运行vscode的
code ./app.code-workspace
命令打开工作空间来学习
正如前面所言,你需要先学习基础知识,然后再学习课程,但是可以利用我们3R项目的优势来实操学习,达到更好的效果,最后可以通过我们的掘金课成长为自由职业者或者数字游民!
具体学习方法和流程请查看介绍页,这里不再赘述
📝知识点
因为学习3R的TS全栈课程,相信您必定已经了解了JS/TS,React以及Node的优势与劣势,正如你所想的,优势是,使用这些技术的供求比很低,也就是职位需求量大,但开发者远远没有达到市场需求的饱和状态,不仅仅是海外远程,国内使用的企业也在快速增多,这与php和.net(仅国内)岗位稀缺的情况或者java岗位虽多如牛毛,但求职者是其岗位的好几倍的情况不同,应该说好得多。但是劣势是生态真的差到极点,nestjs是其中唯一可以看得过去的,那么你要做的就是只能慢慢的打磨nestjs,把他打磨的像其他语言的框架一样顺手,而不是只学习一下官网的基本使用方法,这对接单海外项目和求职远程工作帮助并不大,所以需要投入大量的精力和时间来磨平学习曲线,加油!
我们的课程结构大体是这样的:
- 首先默认你已经完成上面的"提前准备"知识
- 学习完毕后进入"正式课程"学习
- 如果零基础的话可以周末参加我们的基础直播课,直播课主要讲解基础部分,这部分目录随时变动,为零基础的同学铺平学习之路
- Nestjs部分的课程是先简单的做一个文章管理系统的API
- 然后就开始构建一个非常好用的弹性可扩展架构和CLI命令这些(这是由于nestjs等一众node.js框架并不像spring boot,laravel或是rails那样是非常成熟的成品框架,他是把各种库通过模块整合的方式集合起来的,但是一些模块本身没有做的很完善,尤其是配置系统这类核心的东西,所以我们需要定制架构,这部分对于前端开发者来说稍难,对于后端开发者来说基本没难度,无非就是反射+封装)
- 接着不断地给这个架构上追加Auth,短信邮件发送,实时通讯,动态权限,流式文件下载等功能来实现一个强大可扩展的CMF架构的API
- React部分的课程则负责为这个强大的CMF框架开发一个完美的管理后台,手动复刻Antd,vben等常用后台面板的优秀功能
- Nextjs部分的课程开发一个SSR网站来匹配前两套课实现一个比较Fushion的现代化SSR网站
- 最后教学一下性能优化及自动化构建与部署,以及简单的运维知识等
- 掘金课则与其它课程内容分开,每周直播,并且有录制,可以在学习每一节知识后进行实操
📚课程目录
3R后端课
主要内容: Node.js/Nestjs/CI/CD与运维等 Nestjs版本号: 9 更新至: 第十六节
- 『基础入门』Typescript+Eslint+Prettier搭建Nestjs工程及断点调试
- 『基础入门』Nestjs核心概念
- 『内容模块』Nestjs整合Typeorm实现基本的CRUD操作及分页数据查询
- 『内容模块』使用Fastify驱动以及请求数据的验证和响应数据的序列化
- 『内容模块』数据关联与树形嵌套结构的分类和评论的实现
- 『内容模块』自定义全局的验证管道,拦截器和过滤器
- 『内容模块』自定义数据验证约束及约束中的依赖注入
- 『内容模块』批量操作及软删除(回收站)功能使用
- 『内容模块』使用ElasticSearch及Mysql两种方式实现全文搜索
- 『核心框架』实现一个CRUD框架以抽象化代码
- 『核心框架』自建动态配置系统,动态模块构造器及解构化应用实例
- 『核心框架』构建配置式路由与Open API文档
- 『CLI工具』Yargs构建命令行工具以及数据迁移的实现
- 『CLI工具』数据填充命令及数据工厂的实现
- 『用户与权限』用户模块开发以及使用Passport实现JWT认证和无痛刷新
- 『用户与权限』数据表动态关联及内容作者
- 『用户与权限』使用OAuth2实现Github等第三方登录
- 『用户与权限』用户注册,登录,找回密码绑定邮箱和手机号等验证功能实现
- 『用户与权限』使用Redis+BullMQ实现基于消息队列的异步短信及邮件验证
- 『用户与权限』websocket实现即时聊天及消息离线存储功能
- 『用户与权限』基于CASL的RBAC动态角色及权限系统实现
- 『文件模块』Fastify驱动下的文件上传下载导出及图片流式加载实现等功能的实现
- 『文件模块』图片的自动剪裁及压缩实现实现
- 『文件模块』整合腾讯云SDK实现文件的云存储
- 『运维与测试』整合Log4j2实现日志功能
- 『运维与测试』Nestjs应用的缓存与性能优化
- 『性能与运维』使用Gitea+Drone实现自动化CI/CD
- 『性能与运维』Cluster均衡负载及Fork进程详解及LNMP+PM2的服务器生产环境配置
- 『性能与运维』使用Jest编写TDD测试以及E2E测试编写
3R前端课
主要内容: React/TailwindCSS等 React版本号: 18 更新至: 第三节
中后台开发
- 『基础入门』Vite+TS+React+Tailwind+Antd应用构建
- 『基础入门』TailWindCSS的使用详解
- 『基础入门』常用Hooks详解及实践-以Antd与Tailwind的暗黑模式动态切换及Antd多国语言切换为例
- 『基础入门』高级API及Hooks使用方法
- 『状态及存储』Zustand和Immer的使用详解
- 『状态及存储』Zustand+Immer的封装实现
- 『状态及存储』使用LocalForage实现持久化存储组件
- 『数据加载』使用Axios操作后端API及其封装
- 『数据加载』Swr.js的使用以及与Axios的整合
- 『数据加载』整合后端实现OAuth登录
- 『路由与菜单』React Router v6(6.4+)路由实现教学
- 『路由与菜单』封装React Router实现动态导入
- 『路由与菜单』路由懒加载及Loadding的实现
- 『路由与菜单』Svg组件与基于Ionify的图标组件的封装
- 『路由与菜单』使用路由生成动态菜单
- 『路由与菜单』分别实现客户端权限路由和服务端权限路由
- 『重要技能』React-Spring动画库的使用详解
- 『重要技能』React-DND拖动库的使用详解
- 『重要技能』Keep Alive和多标签功能的实现
- 『重要技能』多语言国际化实现
- 『后台管理』Antd响应式布局实现
- 『后台管理』websockets和消息广播的实现
- 『后台管理』Pro components的表单使用详解
- 『后台管理』Pro components的表格使用详解
- 『后台管理』文章分类等内容管理与用户权限管理的实现
- 『后台管理』基于echarts的可视化组件的封装
- 『其它知识』React中如何编写TDD及E2E测试
- 『其它知识』Jotai,vialtio等其它常用库的基本使用
网站开发
主要内容: Next.js等 React版本号: 13 更新至: 即将更新
- Nextjs+TS+React+Tailwind+MUI应用构建
- Nextjs13的App目录,路由与页面构建详解-初始化第一个应用
- redix-ui与shadcn/ui使用
- 在Nextjs13中使用MUI与css-in-js
- Nextjs数据流方案
- Nextjs13的客户端和服务端组件详解
- 使用Lerna.js整合Nextjs与Nestjs实现Menorepo
- Nextjs应用的测试编写
- 网站布局与基本样式编写
- 首页构建与Swiper轮播库使用
- Jwt登录与用户注册
- 使用谷歌,github等OAuth2的第三方登录实现
- 通过短信或邮件注册,登录以及找回密码
- 实时的私信和广播功能的实现
- 文章功能与无限级分类的UI实现
- 实现前台文章的CRUD功能
- 实现文章的点赞,收藏,置顶等功能
- 关于,项目展示等独立页面的编写(一)
- 关于,项目展示等独立页面的编写(二)
- 自动化构建与部署
- 域名绑定与Nginx反代
3R掘金课
主要内容: 远程工作求职指导/海外外包接单渠道拓展/被动收入与自由职业实现/网站搭建和服务器知识/图片设计及视频剪辑等 更新至: 第四节
- 应用软件的订阅制销售渠道和方法实践
- 网课的制作与营销方法详解
- 海外接单渠道发掘与客户谈判技巧
- 远程工作求职方法与准备
- 网站与服务器架设
- AI与PS图片设计,Final cut pro/Motion视频剪辑等
- 使用Screenflow与Camtasia制作网课
- 通过网站售卖VIP资源或广告盈利的引流方法
- 被动收入与自由职业的浅析与结语