現(xiàn)在網(wǎng)上有很多播放量巨高的免費編程項目教程,很多學編程的同學可能都看過,就導致大家可能寫在簡歷上的內容都差不多。
于是就有了下面這張圖:
那么這些 “明星” 項目到底怎么樣?是否還值得去做?我們又該怎么學習呢?
為了快速解決這些問題,魚皮決定帶大家一起學習和鑒定一些網(wǎng)絡熱門編程項目,希望能幫大家更快地選擇適合自己的項目,少走彎路~
本次是第 2 期,也是我 星球 里呼聲相對比較高的項目 —— 尚醫(yī)通(網(wǎng)上的視頻教程總播放量過百萬)。
介紹
這是一個在線預約掛號項目,包含 3 個系統(tǒng):
- 預約掛號系統(tǒng)前臺:用戶可以選擇醫(yī)院、科室、時間來預約掛號、支付訂單并獲得就醫(yī)提醒。
- 預約掛號系統(tǒng)管理員后臺:管理員可以設置醫(yī)院、設置數(shù)據(jù)字典、管理訂單等。
- 外部醫(yī)院管理后臺:相當于醫(yī)院自己維護的系統(tǒng),通過簽名校驗的方式調研我們提供的接口來管理醫(yī)院數(shù)據(jù)。
系統(tǒng)間關系如下圖:
快速導學視頻:https://www.bilibili.com/video/BV1eV4y1T7uS(建議先看這個)
項目視頻:https://www.bilibili.com/video/BV1V5411K7rT
項目代碼:可以在課程官方的視頻評論區(qū)下獲取
星球 的同學也可以直接獲取我整理好的代碼 + 學習資料 + 原創(chuàng)筆記 + 簡歷亮點:https://t.zsxq.com/06EEiyfq7
預約掛號系統(tǒng)前臺:

預約掛號系統(tǒng)管理員后臺:
醫(yī)院接口模擬平臺:

技術
大概用了以下這些,核心是 Spring Cloud 微服務:
前端
- Vue
- vue-admin-template 管理員模板
- VueQriously 二維碼生成庫
- babel
- webpack
- nuxt 服務端渲染
- element ui
后端
微服務:
- Spring Cloud Alibaba 框架
- Nacos 注冊中心
- Spring Cloud Feign 遠程調用
- Spring Cloud Gateway 微服務網(wǎng)關
- Maven 子父多模塊
- Docker(部署項目、安裝服務)
數(shù)據(jù)存儲:
- MongoDB:負責存醫(yī)院基本信息(性能更高)
- MySQL:存儲用戶、訂單、預約等關系信息
中間件:
- Redis:緩存、存儲驗證碼
- RabbitMQ:應用解耦、消息通知
- Nginx:部署項目
工具庫:
- easy excel:讀寫 Excel 文件
- Json Web Token:生成 jwt token
- Joda Time:日期時間操作
技術架構圖
看起來很復雜,但其實本項目主要編碼的就只有圖中間的網(wǎng)關和服務集群部分:
尚醫(yī)通架構圖.png項目啟動
請看這個視頻:https://www.bilibili.com/video/BV1eV4y1T7uS
項目學習
本項目的學習重點
-
微服務的思想、劃分以及實現(xiàn)方式,以及相關技術的用法:
-
- 注冊中心
- 客戶端調用
- 微服務網(wǎng)關
-
熟悉一個完整的業(yè)務流程(信息發(fā)布 => 信息展示 => 購買 => 下單支付 => 統(tǒng)計管理)
-
登錄認證機制,包括手機號登錄、微信掃碼登錄、OAuth、JWT 等知識
-
如何運用合適的數(shù)據(jù)庫來解決問題?比如 MySQL 存儲關系型數(shù)據(jù)、Redis 用于緩存、MongoDB 存儲一些非關系型的數(shù)據(jù)(提高訪問速度)、RabbitMQ 來實現(xiàn)異步通知和應用解耦。
-
調用第三方 API 來解決實際問題,比如微信接口、OSS、SMS
-
學習項目的目錄結構及編碼規(guī)范,比如通用返回對象、全局異常處理器、ContextHolder 等
-
提升前端開發(fā)的經(jīng)驗,比如 Nuxt 框架的使用,了解服務端渲染
如何學習微服務項目
對于微服務項目的學習,大家可以遵循以下步驟,也就是從整體到局部的思想:
- 了解項目業(yè)務
- 把項目運行起來
- 走完一套完整的業(yè)務流程,了解整個系統(tǒng)做了什么事
- 了解有哪些服務、以及每個服務的作用(做了什么事情)
- 了解服務之間是如何互相通訊的
- 根據(jù)需求閱讀對應服務的源碼細節(jié)
本項目的微服務劃分
- common 項目公共代碼
- model 項目數(shù)據(jù)模型層(只提供接口,便于公用)
- service 具體的業(yè)務邏輯(微服務)
- service_client 服務調用客戶端(只提供接口,便于公用)
- service_gateway(微服務網(wǎng)關)負責統(tǒng)一校驗 / 攔截、跨域、請求轉發(fā)
- 公共服務:數(shù)據(jù)字典管理,導入導出(公共用的枚舉值)
- 醫(yī)院服務:管理醫(yī)院,醫(yī)院信息、排版信息、醫(yī)院設置信息的增刪改查
- 短信服務(SMS):負責發(fā)送短信驗證碼
- 用戶服務:管理用戶、就診人、用戶登錄
- 訂單服務:支付訂單,訂單(預約)管理
- 存儲服務:上傳文件(上傳用戶的圖片)
- 統(tǒng)計服務:分析下單情況
- 定時任務服務:每天 8 點就醫(yī)提醒
對應的功能模塊圖如下:
建議大家在設計系統(tǒng)、學微服務項目時也可以通過畫圖幫助自己理解
學習建議
- 這個項目 更適合后端同學 。如果你已經(jīng)學完 SpringBoot、微服務的大致的知識,可以把這個項目作為第一個微服務的練手項目,學習技術的整合運用、接觸更多的業(yè)務場景。
- 項目非常真實完整、貼合實際,學完這個項目后,也能搞懂電商平臺的業(yè)務流程了,可以不用再做類似業(yè)務的項目。
- 整個課程還不錯,但沒有那么精華,建議大家根據(jù)自己的需要去學習課程。比如你要學微信登錄或者微信支付,直接去看對應的章節(jié)。此外,后端同學看視頻時可以跳過前端。
- 閱讀項目代碼時,先大致了解業(yè)務、把項目跑起來、了解微服務的每個模塊做了什么、再去看代碼細節(jié)
- 項目的坑略多,可以通過這個項目來自己鍛煉自己的 debug 能力(狗頭)??梢钥次业奈臋n來跑項目、少踩一些坑;還建議多看視頻的評論區(qū),可能有同學給出了學習建議和問題的解決方案。
- 項目用到了微信登錄和支付,這塊的知識講得不錯,適合入門學習。但由于只有企業(yè)賬號才能使用這些微信接口,所以學習時主要是了解流程,實際開發(fā)中再看文檔就好了,不用花時間折騰。
-
教學類項目,比較追求快速入門,有些功能的實現(xiàn)并不完美(比如下單功能沒有考慮并發(fā)安全問題,可能導致超賣)。此外,項目幾乎沒有用到并發(fā)編程、設計模式和自定義的 SQL 查詢,可以自己思考一下如何運用這些知識技能來優(yōu)化項目。
既然這個項目那么熱門,很多同學都做過,那還能不能寫在簡歷上呢?
答案是當然可以!只要是你自己親手做過的、能跟面試官講出來的項目都可以寫到簡歷上。
只不過對于此類熱門項目,建議大家給它換個皮,比如改個名稱、改個背景、加點功能等等,也不要暴露自己是跟著視頻敲的。
再說了,哪怕是同一個項目,大家寫在簡歷上的內容也是各有千秋的。有的同學可能就簡單地寫自己做了什么模塊,而有的同學可以刷刷刷寫出十幾個亮點。
那我這里也給 星球 的小伙伴整理了 11 個有關該項目的亮點(也是學習重點)、都可以寫在簡歷上,大家可以拿去參考~
項目亮點地址:https://t.zsxq.com/06EEiyfq7
這里為了防止大家寫的都一樣,僅 星球 同學可見,此外,我做過的每個項目、給大家分享的每個項目的亮點也都持續(xù)整理在星球的知識庫里了。
如下圖:





