前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >趁这个项目还不卷,快试试!

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

作者头像
程序员鱼皮
发布2022-11-07 16:01:14
6270
发布2022-11-07 16:01:14
举报
文章被收录于专栏:鱼皮客栈鱼皮客栈

大家好,我是皮鱼。

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

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

介绍

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

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

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

资料

快速导学视频:https://www.bilibili.com/video/BV1De411L7zG(建议先看这个)

原课程视频地址:https://www.bilibili.com/video/BV13T411372x

技术

这个项目用的技术并不复杂,基本都是学习路线上提到的必学技术:

前端
  • 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、技术层面:项目的重点不在微服务上,只是象征性地用了下微服务,没有服务治理相关的东西,哪怕你事先没学过微服务,也能做这个项目。

但是,项目重点讲解了微信公众号的开发及相关工具,并使用大量的第三方服务如文件上传、直播、点播等,很适合学习第三方服务的接入

如果你已经做过类似业务的系统,建议只看自己想学的章节,比如学习如何对接第三方直播平台或者公众号开发。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员鱼皮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 资料
  • 技术
    • 前端
      • 后端
        • 技术架构图
          • 微服务划分
          • 区分接口类型
          • 聊聊代码
      • 快速启动项目
      • 项目学习
      • 学习建议
      相关产品与服务
      云直播
      云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档