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