期刊管理系統
想法與設計
需求分析:掌握軟件系統需求分析方法,掌握面向數據流的分析方法。掌握系統功能模型的建立方法,掌握數據模型的建立方法,掌握行爲模型的建立方法。
數據流圖(DFD);數據字典;加工說明;E_R圖;狀態轉換圖
總體設計:將數據流圖轉化成系統的軟件結構圖;給出模塊的主要描述(處理流程和接口描述);數據庫數據表結構設計
詳細設計:PAD圖以及界面設計
開發與思考
爲何使用Django?
- 使用 Django 可擴展的內置模板,可以將模型層、控制層與頁面模板完全獨立開來進行編碼,結構非常清晰。
- 非常適合初學者學習。
- 越大型的項目越不會選django,因爲它封裝得太好,不夠靈活,一般快速上馬項目可以,但是長期維護下來很難受
- 具體表現在可以用更短的代碼描述業務邏輯。
- 比 jpa 更舒服的 orm 體驗和自帶 migration
- 不需要遵循 java 系列專屬的 dto dmo repo 在各種文件之間反覆橫跳
- 發佈打包成 wheel 包,線上只需要配置文件和一個 wheel 包
權限分級?
超級管理員、管理員、用戶進行區別對待。要求他們登錄後有不同的方式進行訪問圖書和資源
難點與突破
搜索?參考了下網上開源搜索引擎,但後面抓取什麼的沒有做,就只做了一個前端出來,後端沒有寫
https://www.oschina.net/project/tag/130/search-engine
複雜查詢在orm下難以實現?在複雜查詢中混入SQL語句進行直接操作;視圖可以解決大部分calculated column,case ,group,having,order by, exists,但是查詢條件(a and b and not c and (d or d))力不從心
前後端分離?後端的路由都加上/api前綴,然後其它的路由都給前端,默認路由轉發到前端頁面html上,類似於調用API,這樣不會有跨域什麼問題
總結
還是要多做項目,在實踐中發現問題,探究問題,思考本質。