已經在家隔離兩個多月了,整個人都胖了一圈。自從胖了以後,大家關注的焦點就變成了我的胖,而忽略了我的醜,真好。
靠著微弱的手機網路,我依然堅持在家辦公,下面就說說在家辦公我都做了什麼。
1. 業務需求
在經歷了購物便利性和消費民主化之後,電子商務必然會迎來新的一輪零售變革,這就是內容電商!
內容電商,就是電商的下乙個風口!
咳咳,扯遠了!
教育一直都是常青樹,任何時候教育領域都是乙個不錯的選擇。
猿輔導、學而思、嘰裡呱啦、潘多拉英語、斑馬英語、叫叫閱讀等等,都是兒童教育領域的知名品牌。
當真是程式設計五分鐘,扯淡兩小時,說正題
業務模型是這樣的
2. 技術實現
2.1 基本架構
簡要說明:
1、基本資料存mysql,一些不規則資料(例如:題目、樓層資料)存mongodb,記錄型別的資料存es
2、快取主要用分布式快取和記憶體快取,定時從redis中重新整理記憶體快取。更新redis的方式一般有兩種:mq非同步重新整理和直接方法呼叫同步重新整理。redis注意設定好連線池相關引數。
3、服務之前用dubbo呼叫,注意設定超時時間和重試次數
4、業務閘道器負責使用者身份認證、統一日誌處理、統一異常處理
5、配置用攜程的apollo。當然,用阿里的nacos更好。
6、mybatis plus 很好用,自動生成,基本不需要寫什麼**,幾乎不需要寫sql,自帶的方法足夠使用了
2.2 設計要點
專案結構大概是這樣的:
cjs-commons (常量工具類等)
cjs-repository (所有資料庫操作寫在這裡)
cjs-dependency (所有依賴的服務都寫在這裡)
cjs-inner-api (內部服務呼叫dubbo api)
cjs-inner-service (內部服務dubbo實現)
cjs-api (面向客戶端的dubbo api服務)
cjs-service (面向客戶端的dubbo實現)
cjs-web (面向客戶端的api介面)
cjs-admin (管理後台)
約定優於配置。專案結構、命名規範是大家共同達成的約定,定了以後遵守就完了。
2、課程是虛擬內容,有的課程帶教具,因此下單時候就是乙個虛擬商品訂單和乙個實物商品訂單。實物訂單就要考慮運費、物流等資訊
(虛擬商品沒有庫存、沒有物流。虛擬訂單也是有sku的)
3、題目型別眾多,且每種題目之間差異比較大,答案選項也是固定,這種資料就不用想了,直接放mongodb
4、首頁展示的商品是通過首頁樓層配置的,樓層資料最好也放mongodb
5、答題記錄、課程學習記錄、星星記錄這種資料量太大了,就直接放到elasticsearch中,主要是檢索快
6、單元小結、學習報告這種的話,目前是服務端從上報的資料中計算出來的。不過最好是通過一些實時計算平台來處理。
7、層級比較深,一定要維護好快取關係,避免呼叫鏈路過長,可以用pinpoint檢視呼叫鏈路
9、記得不要都放到乙個籃子裡。課程學習進度要定時上報(比如,正常2分鐘上報一次,當使用者暫停、退出、拖進度條等事件觸發後立即上報),不要等到學完了才上報一次,不保險。
10、介面要注意區分版本
12、使用者資料太過,redis不夠用,有兩種方案:
(1)、用ssdb替換
(2)、資料匯入es,查詢走es
13、記得埋點,別等到上線了才想起來要進行資料打點
spark streaming
3. 協作與工具
釘釘:必備
語雀:專業的雲端知識庫
worktile:敏捷開發,與jira類似,需求、任務、bug跟進
wiki:早期用wiki,忘了它吧
石墨文件:過~
yapi:視覺化介面管理平台(忘了swagger吧,idea有外掛程式)
充分理解需求,做好設計評審,同客戶端定好資料結構,而後各自開發
每天站立會、**、週報,及時溝通,及時匯報,燃盡圖
每天各種會議,開會確實很累人,開會的成本比較高,所以要提高效率
按照需求的級別來開發,基礎的工作、優先順序高的任務先做,一定要多溝通多確認,一定要注意優先順序
阻塞性的問題要及時丟擲
最後,多壓測,就到這兒吧
附上架構圖
輕社交軟體系統ThinkSNS簡正式發布
摘要 超輕量核心功能軟體系統,百萬創業者軟體專案口碑之選。伴隨國內外創業風潮 ai 區塊鏈等網際網路軟體科技領域的高速發展,2019 年thinksns軟體品牌迎來十週年後的新紀元。作為下乙個時間的產品元年,thinksns官方於 2019 年 5 月正式發售輕量核心社交app系統 thinksns...
C語言課設 學生資訊管理系統設計
學生資訊包括 學號,姓名,年齡,性別,出生年月,位址,e mail 等。試設計一學生 資訊管理系統,使之能提供以下功能 系統以選單方式工作 學生資訊錄入功能 學生資訊用檔案儲存 輸入 學生資訊瀏覽功能 輸出 查詢 排序功能 演算法 按學號查詢 按姓名查詢 學生資訊的刪除與修改 有乙個清晰美觀介面來呼...
一種輕量的openresty路由設計
但出於安全性考慮,決定給訪問的介面位址加個白名單功能,不在白名單的位址不允許訪問。這裡載入了乙個對應目錄的route config.lua,由於這個config檔案內容較小,所以我把內容直接列了出來 白名單列表 local whitelist 路由重寫列表 local rewritelist ret...