巧了,我又做過(guò)這個(gè)項(xiàng)目!
掃描二維碼
隨時(shí)隨地手機(jī)看文章
現(xiàn)在網(wǎng)上有很多播放量巨高的免費(fèi)編程項(xiàng)目教程,很多學(xué)編程的同學(xué)可能都看過(guò),就導(dǎo)致大家可能寫(xiě)在簡(jiǎn)歷上的內(nèi)容都差不多。
于是就有了下面這張圖:

那么這些 “明星” 項(xiàng)目到底怎么樣?是否還值得去做?我們又該怎么學(xué)習(xí)呢?
為了快速解決這些問(wèn)題,魚(yú)皮決定帶大家一起學(xué)習(xí)和鑒定一些網(wǎng)絡(luò)熱門(mén)編程項(xiàng)目,希望能幫大家更快地選擇適合自己的項(xiàng)目,少走彎路~
本次是第 2 期,也是我 星球 里呼聲相對(duì)比較高的項(xiàng)目 —— 尚醫(yī)通(網(wǎng)上的視頻教程總播放量過(guò)百萬(wàn))。
介紹
這是一個(gè)在線預(yù)約掛號(hào)項(xiàng)目,包含 3 個(gè)系統(tǒng):
- 預(yù)約掛號(hào)系統(tǒng)前臺(tái):用戶可以選擇醫(yī)院、科室、時(shí)間來(lái)預(yù)約掛號(hào)、支付訂單并獲得就醫(yī)提醒。
- 預(yù)約掛號(hào)系統(tǒng)管理員后臺(tái):管理員可以設(shè)置醫(yī)院、設(shè)置數(shù)據(jù)字典、管理訂單等。
- 外部醫(yī)院管理后臺(tái):相當(dāng)于醫(yī)院自己維護(hù)的系統(tǒng),通過(guò)簽名校驗(yàn)的方式調(diào)研我們提供的接口來(lái)管理醫(yī)院數(shù)據(jù)。
系統(tǒng)間關(guān)系如下圖:

快速導(dǎo)學(xué)視頻:https://www.bilibili.com/video/BV1eV4y1T7uS(建議先看這個(gè))
項(xiàng)目視頻:https://www.bilibili.com/video/BV1V5411K7rT
項(xiàng)目代碼:可以在課程官方的視頻評(píng)論區(qū)下獲取
星球 的同學(xué)也可以直接獲取我整理好的代碼 + 學(xué)習(xí)資料 + 原創(chuàng)筆記 + 簡(jiǎn)歷亮點(diǎn):https://t.zsxq.com/06EEiyfq7
預(yù)約掛號(hào)系統(tǒng)前臺(tái):


預(yù)約掛號(hào)系統(tǒng)管理員后臺(tái):

醫(yī)院接口模擬平臺(tái):

技術(shù)
大概用了以下這些,核心是 Spring Cloud 微服務(wù):
前端
- Vue
- vue-admin-template 管理員模板
- VueQriously 二維碼生成庫(kù)
- babel
- webpack
- nuxt 服務(wù)端渲染
- element ui
后端
微服務(wù):
- Spring Cloud Alibaba 框架
- Nacos 注冊(cè)中心
- Spring Cloud Feign 遠(yuǎn)程調(diào)用
- Spring Cloud Gateway 微服務(wù)網(wǎng)關(guān)
- Maven 子父多模塊
- Docker(部署項(xiàng)目、安裝服務(wù))
數(shù)據(jù)存儲(chǔ):
- MongoDB:負(fù)責(zé)存醫(yī)院基本信息(性能更高)
- MySQL:存儲(chǔ)用戶、訂單、預(yù)約等關(guān)系信息
中間件:
- Redis:緩存、存儲(chǔ)驗(yàn)證碼
- RabbitMQ:應(yīng)用解耦、消息通知
- Nginx:部署項(xiàng)目
工具庫(kù):
- easy excel:讀寫(xiě) Excel 文件
- Json Web Token:生成 jwt token
- Joda Time:日期時(shí)間操作
技術(shù)架構(gòu)圖
看起來(lái)很復(fù)雜,但其實(shí)本項(xiàng)目主要編碼的就只有圖中間的網(wǎng)關(guān)和服務(wù)集群部分:

項(xiàng)目啟動(dòng)
請(qǐng)看這個(gè)視頻:https://www.bilibili.com/video/BV1eV4y1T7uS
項(xiàng)目學(xué)習(xí)
本項(xiàng)目的學(xué)習(xí)重點(diǎn)
-
微服務(wù)的思想、劃分以及實(shí)現(xiàn)方式,以及相關(guān)技術(shù)的用法:
-
- 注冊(cè)中心
- 客戶端調(diào)用
- 微服務(wù)網(wǎng)關(guān)
-
熟悉一個(gè)完整的業(yè)務(wù)流程(信息發(fā)布 => 信息展示 => 購(gòu)買(mǎi) => 下單支付 => 統(tǒng)計(jì)管理)
-
登錄認(rèn)證機(jī)制,包括手機(jī)號(hào)登錄、微信掃碼登錄、OAuth、JWT 等知識(shí)
-
如何運(yùn)用合適的數(shù)據(jù)庫(kù)來(lái)解決問(wèn)題?比如 MySQL 存儲(chǔ)關(guān)系型數(shù)據(jù)、Redis 用于緩存、MongoDB 存儲(chǔ)一些非關(guān)系型的數(shù)據(jù)(提高訪問(wèn)速度)、RabbitMQ 來(lái)實(shí)現(xiàn)異步通知和應(yīng)用解耦。
-
調(diào)用第三方 API 來(lái)解決實(shí)際問(wèn)題,比如微信接口、OSS、SMS
-
學(xué)習(xí)項(xiàng)目的目錄結(jié)構(gòu)及編碼規(guī)范,比如通用返回對(duì)象、全局異常處理器、ContextHolder 等
-
提升前端開(kāi)發(fā)的經(jīng)驗(yàn),比如 Nuxt 框架的使用,了解服務(wù)端渲染
如何學(xué)習(xí)微服務(wù)項(xiàng)目
對(duì)于微服務(wù)項(xiàng)目的學(xué)習(xí),大家可以遵循以下步驟,也就是從整體到局部的思想:
- 了解項(xiàng)目業(yè)務(wù)
- 把項(xiàng)目運(yùn)行起來(lái)
- 走完一套完整的業(yè)務(wù)流程,了解整個(gè)系統(tǒng)做了什么事
- 了解有哪些服務(wù)、以及每個(gè)服務(wù)的作用(做了什么事情)
- 了解服務(wù)之間是如何互相通訊的
- 根據(jù)需求閱讀對(duì)應(yīng)服務(wù)的源碼細(xì)節(jié)
本項(xiàng)目的微服務(wù)劃分
- common 項(xiàng)目公共代碼
- model 項(xiàng)目數(shù)據(jù)模型層(只提供接口,便于公用)
- service 具體的業(yè)務(wù)邏輯(微服務(wù))
- service_client 服務(wù)調(diào)用客戶端(只提供接口,便于公用)
- service_gateway(微服務(wù)網(wǎng)關(guān))負(fù)責(zé)統(tǒng)一校驗(yàn) / 攔截、跨域、請(qǐng)求轉(zhuǎn)發(fā)
- 公共服務(wù):數(shù)據(jù)字典管理,導(dǎo)入導(dǎo)出(公共用的枚舉值)
- 醫(yī)院服務(wù):管理醫(yī)院,醫(yī)院信息、排版信息、醫(yī)院設(shè)置信息的增刪改查
- 短信服務(wù)(SMS):負(fù)責(zé)發(fā)送短信驗(yàn)證碼
- 用戶服務(wù):管理用戶、就診人、用戶登錄
- 訂單服務(wù):支付訂單,訂單(預(yù)約)管理
- 存儲(chǔ)服務(wù):上傳文件(上傳用戶的圖片)
- 統(tǒng)計(jì)服務(wù):分析下單情況
- 定時(shí)任務(wù)服務(wù):每天 8 點(diǎn)就醫(yī)提醒
對(duì)應(yīng)的功能模塊圖如下:

建議大家在設(shè)計(jì)系統(tǒng)、學(xué)微服務(wù)項(xiàng)目時(shí)也可以通過(guò)畫(huà)圖幫助自己理解
學(xué)習(xí)建議
- 這個(gè)項(xiàng)目 更適合后端同學(xué) 。如果你已經(jīng)學(xué)完 SpringBoot、微服務(wù)的大致的知識(shí),可以把這個(gè)項(xiàng)目作為第一個(gè)微服務(wù)的練手項(xiàng)目,學(xué)習(xí)技術(shù)的整合運(yùn)用、接觸更多的業(yè)務(wù)場(chǎng)景。
- 項(xiàng)目非常真實(shí)完整、貼合實(shí)際,學(xué)完這個(gè)項(xiàng)目后,也能搞懂電商平臺(tái)的業(yè)務(wù)流程了,可以不用再做類似業(yè)務(wù)的項(xiàng)目。
- 整個(gè)課程還不錯(cuò),但沒(méi)有那么精華,建議大家根據(jù)自己的需要去學(xué)習(xí)課程。比如你要學(xué)微信登錄或者微信支付,直接去看對(duì)應(yīng)的章節(jié)。此外,后端同學(xué)看視頻時(shí)可以跳過(guò)前端。
- 閱讀項(xiàng)目代碼時(shí),先大致了解業(yè)務(wù)、把項(xiàng)目跑起來(lái)、了解微服務(wù)的每個(gè)模塊做了什么、再去看代碼細(xì)節(jié)
- 項(xiàng)目的坑略多,可以通過(guò)這個(gè)項(xiàng)目來(lái)自己鍛煉自己的 debug 能力(狗頭)??梢钥次业奈臋n來(lái)跑項(xiàng)目、少踩一些坑;還建議多看視頻的評(píng)論區(qū),可能有同學(xué)給出了學(xué)習(xí)建議和問(wèn)題的解決方案。
- 項(xiàng)目用到了微信登錄和支付,這塊的知識(shí)講得不錯(cuò),適合入門(mén)學(xué)習(xí)。但由于只有企業(yè)賬號(hào)才能使用這些微信接口,所以學(xué)習(xí)時(shí)主要是了解流程,實(shí)際開(kāi)發(fā)中再看文檔就好了,不用花時(shí)間折騰。
-
教學(xué)類項(xiàng)目,比較追求快速入門(mén),有些功能的實(shí)現(xiàn)并不完美(比如下單功能沒(méi)有考慮并發(fā)安全問(wèn)題,可能導(dǎo)致超賣(mài))。此外,項(xiàng)目幾乎沒(méi)有用到并發(fā)編程、設(shè)計(jì)模式和自定義的 SQL 查詢,可以自己思考一下如何運(yùn)用這些知識(shí)技能來(lái)優(yōu)化項(xiàng)目。
既然這個(gè)項(xiàng)目那么熱門(mén),很多同學(xué)都做過(guò),那還能不能寫(xiě)在簡(jiǎn)歷上呢?
答案是當(dāng)然可以!只要是你自己親手做過(guò)的、能跟面試官講出來(lái)的項(xiàng)目都可以寫(xiě)到簡(jiǎn)歷上。
只不過(guò)對(duì)于此類熱門(mén)項(xiàng)目,建議大家給它換個(gè)皮,比如改個(gè)名稱、改個(gè)背景、加點(diǎn)功能等等,也不要暴露自己是跟著視頻敲的。
再說(shuō)了,哪怕是同一個(gè)項(xiàng)目,大家寫(xiě)在簡(jiǎn)歷上的內(nèi)容也是各有千秋的。有的同學(xué)可能就簡(jiǎn)單地寫(xiě)自己做了什么模塊,而有的同學(xué)可以刷刷刷寫(xiě)出十幾個(gè)亮點(diǎn)。
那我這里也給 星球 的小伙伴整理了 11 個(gè)有關(guān)該項(xiàng)目的亮點(diǎn)(也是學(xué)習(xí)重點(diǎn))、都可以寫(xiě)在簡(jiǎn)歷上,大家可以拿去參考~
項(xiàng)目亮點(diǎn)地址:https://t.zsxq.com/06EEiyfq7
這里為了防止大家寫(xiě)的都一樣,僅 星球 同學(xué)可見(jiàn),此外,我做過(guò)的每個(gè)項(xiàng)目、給大家分享的每個(gè)項(xiàng)目的亮點(diǎn)也都持續(xù)整理在星球的知識(shí)庫(kù)里了。
如下圖:
