查看原文
其他

趁这个项目还不卷,快试试!

鱼皮 程序员鱼皮 2022-10-25

大家好,我是皮鱼。

现在网上有很多播放量巨高的免费编程项目教程,之前我也带大家评测了【瑞吉外卖】、【尚医通】这两个近百万播放的热门项目,很多同学表示挺有收获,但美中不足的是感觉大家都做过。

所以这次我给大家分享一个今年出的、相对较新的项目 —— 硅谷课堂。通过这篇文章,希望能帮大家快速了解和学习这个项目,少走弯路~

介绍

这是一个基于微服务的在线学习平台,包括公众号前台和管理后台。

管理员可以在后台发布视频点播课程和直播信息:

用户可以在公众号查看、购买课程,并了解直播信息:

资料

快速导学视频: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,备注【加入星球】和自己的情况优惠加入星球,不备注不通过,非诚勿扰谢谢。

往期推荐

我的学习小圈子

国庆,我要弯道超车!

巧了,我又做过这个项目!

首次公开!我快速做项目的技巧

字节实习转正了,这是我的秘诀

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存