网络热门编程项目导学:尚医通

news2024/11/15 20:22:18

本文作者:程序员鱼皮

免费编程学习 - 编程导航网:https://www.code-nav.cn

现在网上有很多播放量巨高的免费编程项目教程,很多学编程的同学可能都看过,就导致大家可能写在简历上的内容都差不多。

于是就有了下面这张图:

那么这些 “明星” 项目到底怎么样?是否还值得去做?我们又该怎么学习呢?

为了快速解决这些问题,鱼皮决定带大家一起学习和鉴定一些网络热门编程项目,希望能帮大家更快地选择适合自己的项目,少走弯路~

本次是第 2 期,也是我 编程导航 里呼声相对比较高的项目 —— 尚医通(网上的视频教程总播放量过百万)。

介绍

这是一个在线预约挂号项目,包含 3 个系统:

  1. 预约挂号系统前台:用户可以选择医院、科室、时间来预约挂号、支付订单并获得就医提醒。
  2. 预约挂号系统管理员后台:管理员可以设置医院、设置数据字典、管理订单等。
  3. 外部医院管理后台:相当于医院自己维护的系统,通过签名校验的方式调研我们提供的接口来管理医院数据。

系统间关系如下图:

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

项目视频:https://www.bilibili.com/video/BV1V5411K7rT

项目代码:可以在课程官方的视频评论区下获取

编程导航

预约挂号系统前台:

预约挂号系统管理员后台:

医院接口模拟平台:

技术

大概用了以下这些,核心是 Spring Cloud 微服务:

前端
  • Vue
  • vue-admin-template 管理员模板
  • VueQriously 二维码生成库
  • babel
  • webpack
  • nuxt 服务端渲染
  • element ui
后端

微服务:

  • Spring Cloud Alibaba 框架
  • Nacos 注册中心
  • Spring Cloud Feign 远程调用
  • Spring Cloud Gateway 微服务网关
  • Maven 子父多模块
  • Docker(部署项目、安装服务)

数据存储:

  • MongoDB:负责存医院基本信息(性能更高)
  • MySQL:存储用户、订单、预约等关系信息

中间件:

  • Redis:缓存、存储验证码
  • RabbitMQ:应用解耦、消息通知
  • Nginx:部署项目

工具库:

  • easy excel:读写 Excel 文件
  • Json Web Token:生成 jwt token
  • Joda Time:日期时间操作

技术架构图

看起来很复杂,但其实本项目主要编码的就只有图中间的网关和服务集群部分:

尚医通架构图.png

项目启动

请看这个视频:https://www.bilibili.com/video/BV1eV4y1T7uS

项目学习

本项目的学习重点

  1. 微服务的思想、划分以及实现方式,以及相关技术的用法:

  2. 注册中心

  3. 客户端调用

  4. 微服务网关

  5. 熟悉一个完整的业务流程(信息发布 => 信息展示 => 购买 => 下单支付 => 统计管理)

  6. 登录认证机制,包括手机号登录、微信扫码登录、OAuth、JWT 等知识

  7. 如何运用合适的数据库来解决问题?比如 MySQL 存储关系型数据、Redis 用于缓存、MongoDB 存储一些非关系型的数据(提高访问速度)、RabbitMQ 来实现异步通知和应用解耦。

  8. 调用第三方 API 来解决实际问题,比如微信接口、OSS、SMS

  9. 学习项目的目录结构及编码规范,比如通用返回对象、全局异常处理器、ContextHolder 等

  10. 提升前端开发的经验,比如 Nuxt 框架的使用,了解服务端渲染

如何学习微服务项目

对于微服务项目的学习,大家可以遵循以下步骤,也就是从整体到局部的思想:

  1. 了解项目业务
  2. 把项目运行起来
  3. 走完一套完整的业务流程,了解整个系统做了什么事
  4. 了解有哪些服务、以及每个服务的作用(做了什么事情)
  5. 了解服务之间是如何互相通讯的
  6. 根据需求阅读对应服务的源码细节

本项目的微服务划分

  • common 项目公共代码
  • model 项目数据模型层(只提供接口,便于公用)
  • service 具体的业务逻辑(微服务)
  • service_client 服务调用客户端(只提供接口,便于公用)
  • service_gateway(微服务网关)负责统一校验 / 拦截、跨域、请求转发
  • 公共服务:数据字典管理,导入导出(公共用的枚举值)
  • 医院服务:管理医院,医院信息、排版信息、医院设置信息的增删改查
  • 短信服务(SMS):负责发送短信验证码
  • 用户服务:管理用户、就诊人、用户登录
  • 订单服务:支付订单,订单(预约)管理
  • 存储服务:上传文件(上传用户的图片)
  • 统计服务:分析下单情况
  • 定时任务服务:每天 8 点就医提醒

对应的功能模块图如下:

建议大家在设计系统、学微服务项目时也可以通过画图帮助自己理解

学习建议

  1. 这个项目 更适合后端同学 。如果你已经学完 SpringBoot、微服务的大致的知识,可以把这个项目作为第一个微服务的练手项目,学习技术的整合运用、接触更多的业务场景。

  2. 项目非常真实完整、贴合实际,学完这个项目后,也能搞懂电商平台的业务流程了,可以不用再做类似业务的项目。

  3. 整个课程还不错,但没有那么精华,建议大家根据自己的需要去学习课程。比如你要学微信登录或者微信支付,直接去看对应的章节。此外,后端同学看视频时可以跳过前端。

  4. 阅读项目代码时,先大致了解业务、把项目跑起来、了解微服务的每个模块做了什么、再去看代码细节

  5. 项目的坑略多,可以通过这个项目来自己锻炼自己的 debug 能力(狗头)。可以看我的文档来跑项目、少踩一些坑;还建议多看视频的评论区,可能有同学给出了学习建议和问题的解决方案。

  6. 项目用到了微信登录和支付,这块的知识讲得不错,适合入门学习。但由于只有企业账号才能使用这些微信接口,所以学习时主要是了解流程,实际开发中再看文档就好了,不用花时间折腾。

  7. 教学类项目,比较追求快速入门,有些功能的实现并不完美(比如下单功能没有考虑并发安全问题,可能导致超卖)。此外,项目几乎没有用到并发编程、设计模式和自定义的 SQL 查询,可以自己思考一下如何运用这些知识技能来优化项目。


既然这个项目那么热门,很多同学都做过,那还能不能写在简历上呢?

答案是当然可以!只要是你自己亲手做过的、能跟面试官讲出来的项目都可以写到简历上。

只不过对于此类热门项目,建议大家给它换个皮,比如改个名称、改个背景、加点功能等等,也不要暴露自己是跟着视频敲的。

再说了,哪怕是同一个项目,大家写在简历上的内容也是各有千秋的。有的同学可能就简单地写自己做了什么模块,而有的同学可以刷刷刷写出十几个亮点。

那我这里也给 编程导航 的小伙伴整理了 11 个有关该项目的亮点(也是学习重点)、都可以写在简历上,编程导航的同学可以拿去参考~

项目亮点地址:https://www.code-nav.cn/post/1808581478360154114

此外,我做过的每个项目、给大家分享的每个项目的亮点也都持续整理在编程导航的知识库里了。

如下图:

感谢大家的阅读,大家还想让我鉴定什么编程项目都可以评论区留言哦~

更多编程学习资源

  • Java前端程序员必做项目实战教程+毕设网站
  • 程序员免费编程学习交流社区(自学必备)
  • 程序员保姆级求职写简历指南(找工作必备)
  • 程序员免费面试刷题网站工具(找工作必备)
  • 最新Java零基础入门学习路线 + Java教程
  • 最新Python零基础入门学习路线 + Python教程
  • 最新前端零基础入门学习路线 + 前端教程
  • 最新数据结构和算法零基础入门学习路线 + 算法教程
  • 最新C++零基础入门学习路线、C++教程
  • 最新数据库零基础入门学习路线 + 数据库教程
  • 最新Redis零基础入门学习路线 + Redis教程
  • 最新计算机基础入门学习路线 + 计算机基础教程
  • 最新小程序入门学习路线 + 小程序开发教程
  • 最新SQL零基础入门学习路线 + SQL教程
  • 最新Linux零基础入门学习路线 + Linux教程
  • 最新Git/GitHub零基础入门学习路线 + Git教程
  • 最新操作系统零基础入门学习路线 + 操作系统教程
  • 最新计算机网络零基础入门学习路线 + 计算机网络教程
  • 最新设计模式零基础入门学习路线 + 设计模式教程
  • 最新软件工程零基础入门学习路线 + 软件工程教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python之matplotlib (3 坐标轴设置)

写在前面 在说明坐标轴设置之前,我有必要和大家说清楚图像设置的一些方法,避免陷入困扰模糊的地步。前面我们说过,画图的三种方法(python之matplotlib (1 介绍及基本用法)-CSDN博客)。而设置也…

2024年证券从业资格考试题型特点及答题技巧

考试题型、题量、分值 证券从业科目题型题量: 一、单选题(每题0.5分,共40题,共20分) 下列每小题的四个选项中,只有一项是最符合题意的正确答案,多选、错选或不选均不得分。 二、多选题(每题1分,共40题&…

我的Vue2/Vue3知识框架汇总

文章目录 一、前言二、Vue3篇Vue3 相对于 Vue2 做了哪些更新?​Vue3响应式Vue3响应式特点​Object.defineProperty 与 Proxy 的区别​什么是Proxy?​为什么需要 Reflect?(目标对象内部的this指向问题)​Vue3 惰性响应式​Proxy 只会代理对象的…

图片文件比较大怎么办?分享4个简单的在线压缩图片工具

现在经常将图片发布到网上用来展示,但是随着图片质量越高相应的文件也比较大,在遇到图片文件较大问题时,经常会无法正常上传到网站使用,所以一般需要使用图片压缩功能来调整大小后使用。对于经常需要处理图片的小伙伴来说&#xf…

Notion 插件开发入门

Notion 插件开发入门 最近想要用 Notion 记笔记,奈何 Notion 的标签分类功能确实不太好用…… 看了看其它文章中配置多级标签的繁杂流程之后,我觉得还是写一个插件比较靠谱…… 本文主要介绍 Notion 简单的插件开发,编程语言使用 JavaScrip…

打工人的“低成本的高生产力”之ToDesk云电脑

在快节奏的现代生活中,是不是经常觉得钱包瘪得快,但工作压力却大得要命?想要提升效率,又不想掏空腰包?来来来,作为职场老油条, 今儿给你们安利个神器——ToDesk云电脑,简直是咱们打工…

子域名太多如何实现HTTPS?一张通配符SSL证书全搞定

在当今数字化时代,网站安全性已经成为网站运营者以及访问者都非常关注的重要问题。部署SSL证书实现HTTPS加密,确保数据传输安全,防止信息被泄露或篡改,消除浏览器“不安全”提示,提高网站安全性以及可信任度已成为必然…

期权应该怎么及时止损?期权止损有哪些方式?

今天带你了解期权应该怎么及时止损?期权止损有哪些方式?如何在期权的交易计划中设置合适的止损点”是相对简单的事情。 如果自己遭遇了一定的损失,就要及时止损。 一般来说如果亏损接近30%的时候就可以进行止损了。但是不同的投资者资金实力…

集合及数据结构第二节————算法、时间复杂度和空间复杂度

系列文章目录 集合及数据结构第二节————算法、时间复杂度和空间复杂度 算法、时间复杂度和空间复杂度 数据结构和算法的关系.算法的定义算法的特性算法设计的要求算法效率时间复杂度的概念大O的渐进表示法常见时间复杂度计算举例常见空间复杂度计算举例 文章目录 系列文…

关于windows环境使用nginx的一些性能问题

遇到的问题 最近在一个windows环境中部署nginx,遇到了以下问题: 1. nginx启动了九个线程(1master8woekr),但是所有链接都被1个woker接收,其余worker不工作 2. 用户端访问web很慢,登录服务器使…

xcode配置使用摄像头和相册权限,没有Info.plist文件也可以配置,解决Thread 4: signal SIGABRT报错问题

最新的Xcode更改了相册和相机的权限关键字,在进行真机调试,或真正在用户使用的时候需要添加这些权限,否则在程序正确时仍然会产生下面的错误: Thread 4: signal SIGABRT This app has crashed because it attempted to access pri…

【Web APIs】JavaScript 操作元素 ④ ( 修改元素属性示例 | 密码表单标签结构 | 密码输入框样式设置 | 右侧图标按钮设置 | JavaScript 修改元素属性示例 )

文章目录 一、案例需求二、关键要点1、密码表单标签结构2、设置盒子样式3、密码输入框样式设置4、右侧图标按钮设置5、盒子模型右侧图标按钮设置 三、JavaScript 修改元素属性示例四、完整代码示例 JavaScript 中 可以通过 DOM ( 文档对象模型 ) 操作 来 修改网页的 内容 , 结构…

牛客JS题(四十六)斐波那契数列

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; 递归斐波那契数列 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><style>/* 填写样式 */</style></head><body><!-…

宝马销量崩了,不卷价格就卷铺盖

文 | AUTO芯球 作者 | 雷慢 宝马这回真天塌了&#xff0c; 还记得7月初宝马宣布涨价吗&#xff0c; 我当初就劝我那准备宝马i3的同学说&#xff0c; 别急&#xff0c;怎么涨上去的就会怎么跌回去。 这不&#xff0c;一涨价&#xff0c;价格是保住了&#xff0c;但是销量惨…

【获取本机简要配置信息】(bat)

输出结果(示例)如下 如果提示 ‘系统找不到指定的路径’ 请把set Log那行的路径换一下&#xff0c;换成一个存在的路径就行 比如直接放C盘 set LogC:\本机配置信息.txt 如果提示 “客户端没有所需的特权” 请右键后选择 “以管理员身份运行” 上代码 echo off::设置信息保存路…

【17】暴力递归改dp(下)

目录 一.两人玩游戏 二.象棋游戏 三.鲍勃存活 四.凑钱方案数问题 一.两人玩游戏 题目&#xff1a;有一个正整数数组&#xff0c;A和B两个人轮流拿数组的最左或最右的数值&#xff0c;返回最终的最高分数。 暴力递归版本 public static int win1(int[] arr) {if (arr null…

Chat App 项目之解析(三)

Chat App 项目介绍与解析&#xff08;一&#xff09;-CSDN博客文章浏览阅读76次。Chat App 是一个实时聊天应用程序&#xff0c;旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录&#xff0c;还提供了管理员登录功能&#xff0c;以便管理员可以…

webflux源码解析(1)-主流程

目录 1.关键实例的创建1.1 实例创建1.2 初始化 2.处理请求的关键流程2.1 从ReactorHttpHandlerAdapter开始2.1 DispatcherHandler的初始化2.2查找mapping handler2.3 处理请求(执行handler)2.4 返回结果处理 3.webflux的配置装配参考&#xff1a; WebFlux是Spring 5.0框架推出的…

算法的学习笔记—对称的二叉树(牛客)

&#x1f600;前言 在算法的世界中&#xff0c;二叉树是一个极其重要的数据结构。它不仅广泛应用于各种算法的设计中&#xff0c;也是面试中常见的考察点之一。今天&#xff0c;我们将深入探讨一个经典的二叉树问题——对称的二叉树&#xff0c;并且会展示如何通过Java代码来解…

趋动VAICP技术认证全球考试正式上线

8月18日&#xff0c;趋动科技主办的VAICP(VirtAl Certified Professional) Al算力池化专家认证考试正式在 Pearson VUE上线。 即日起&#xff0c;凡参加过VAICP培训的学员&#xff0c;可立即通过Pearson VUE官网注册参加考试&#xff0c;官网链接&#xff1a;https://home.pea…