趁这个项目还不卷,快试试!
大家好,我是皮鱼。
现在网上有很多播放量巨高的免费编程项目教程,之前我也带大家评测了【瑞吉外卖】、【尚医通】这两个近百万播放的热门项目,很多同学表示挺有收获,但美中不足的是感觉大家都做过。
所以这次我给大家分享一个今年出的、相对较新的项目 —— 硅谷课堂。通过这篇文章,希望能帮大家快速了解和学习这个项目,少走弯路~
介绍
这是一个基于微服务的在线学习平台,包括公众号前台和管理后台。
管理员可以在后台发布视频点播课程和直播信息:
用户可以在公众号查看、购买课程,并了解直播信息:
资料
快速导学视频:https://www.bilibili.com/video/BV1De411L7zG(建议先看这个)
原课程视频地址:https://www.bilibili.com/video/BV13T411372x
项目代码:可以在课程官方的视频评论区下获取
星球 的同学也可以直接获取我整理好的代码 + 学习资料 + 原创笔记 + 简历亮点:https://t.zsxq.com/06e2FIMzb
技术
这个项目用的技术并不复杂,基本都是学习路线上提到的必学技术:
前端
Vue 2 vue-cli 脚手架(包含了 webpack + babel) axios 请求库 Vant 组件库 Eslint 代码校验 Prettier 代码格式化 vue-admin-template 管理员模板(某谷好喜欢用这个) 微信 js-sdk
后端
微服务:
Spring Cloud 和 Spring Cloud Alibaba 框架 Nacos 注册中心 Spring Cloud Open Feign 远程调用 Spring Cloud Gateway 微服务网关 Maven 子父多模块
数据存储层:
MySQL:存储数据 MyBatis Plus:数据访问框架
工具库:
Easy Excel:读写 Excel 文件 weixin-java-mp:对接微信公众号 fastjson:json 序列化 Json Web Token(jjwt):生成 jwt token Joda Time:日期时间操作 httpclient:请求客户端 Swagger + Knife4j 接口文档
技术架构图
下图中,左侧的服务治理部分仅供参考,并没有全部实现。但是可以看到这个项目对接了很多第三方服务:
快速启动项目
请看这个视频:https://www.bilibili.com/video/BV1De411L7zG
项目学习
这是一个侧重后端的项目,也是要从整体理解各微服务模块的作用开始学习。
微服务划分
如下:
common 项目公共代码 service_utils 公共服务,如 swagger 接口文档、全局异常处理器、各种工具类等 model 项目数据模型层(便于公用) service 具体的业务逻辑(微服务) service_client 服务调用客户端(只提供接口,便于公用) service_gateway 微服务网关:负责跨域和请求转发(这个项目没有用到全局登录校验拦截) service_vod 视频点播服务:课程管理、课程分类管理、讲师管理、管理员后台登录、视频管理、视频同步 service_live 直播服务:直播管理、同步直播信息到第三方平台上 service_order 订单服务:支付订单、订单管理 service_user 用户服务:微信登录、获取用户信息 service_wechat 公众号服务:上传文件(上传用户的图片) service_activity 活动服务:优惠券信息的管理(增删改查)
功能模块图:
区分接口类型
这个项目的接口比较多,这里给大家讲一下接口类型划分规则,便于大家理解项目。
本项目接口主要分为:内部接口、管理员后台接口、前台接口。
内部接口:接口路径包含 inner 的均为内部接口,其他服务可通过 feign 客户端来调用这些内部接口。
接口实现一般在 service 的 api 目录下,接口定义在 feign 客户端模块下,如图:
管理员后台接口:一般在 controller 目录下,前缀为 /admin。如图:
前台接口:一般在 api 目录下,前缀为 /api。如图:
聊聊代码
这个项目的代码并不复杂,了解各模块功能后就可以逐个击破。
有同学说微服务代码行数就多?其实这是一个错误的认识,我们可以用 IDEA 的 Statistic 插件来看一下这个项目的代码行数,发现也就 8000 多行。且占用最多行的 MTCloud 文件感觉都是直接粘贴的官方 SDK 的代码,如图:
再看看登录接口的代码,会发现他没有做任何校验,并且就是设置了一个固定的 token。如图:
所以如果你想把这个项目直接上线,还是需要不少时间来完善它的。
学习建议
1、跟上次推荐的尚医通微服务项目比起来,这个项目的坑不算太多,还是比较适合入门的,前后端都可以学习。前端建议至少学完 Vue、后端建议至少学完 Spring Boot 再来看这个项目。
2、业务层面:这个项目的业务流程比较完整,值得学习。本质上也是类商城业务,但是在这方面比尚医通的业务流程更完整,包括:信息发布 => 信息展示 => 领优惠券 => 购买 => 下单支付 => 统计管理。
但是代码实现比较简单、不够完整(比如上面提到的登录功能),也不够细节,甚至有些地方是有点水的。但毕竟课程的时间就这么短,也能理解。建议大家做项目的时候不要完全跟着视频他一行你一行,还是要有一些自己的想法。
3、技术层面:项目的重点不在微服务上,只是象征性地用了下微服务,没有服务治理相关的东西,哪怕你事先没学过微服务,也能做这个项目。
但是,项目重点讲解了微信公众号的开发及相关工具,并使用大量的第三方服务如文件上传、直播、点播等,很适合学习第三方服务的接入。
如果你已经做过类似业务的系统,建议只看自己想学的章节,比如学习如何对接第三方直播平台或者公众号开发。
最后,我在 星球 给大家整理了一些有关该项目的亮点(也是学习重点)、都可以写在简历上,大家可以拿去参考~
项目亮点地址:https://t.zsxq.com/06e2FIMzb
此外,我做过的每个项目、给大家分享的每个项目的亮点也都持续整理在星球的知识库里(已经有 70 多个),帮助大家的简历脱颖而出。
如下图:
感谢大家的阅读,大家还想让我鉴定什么编程项目都可以评论区留言哦~
欢迎学编程的朋友们加入我的 编程知识星球 ,本季度还有 80 个好友优惠名额,可以加我微信 yupi5927,备注【加入星球】和自己的情况优惠加入星球,不备注不通过,非诚勿扰谢谢。
往期推荐