我的架構學習實戰記錄:資料庫階段
對我而言,認識BLL層的作用,或者領域模型驅動的含義,最大的干擾來自資料庫。
我們很清楚的知道UI層的含義,也知道資料層是做什麼的。但對於一個簡單的(甚至是相當複雜的)系統而言,實在不知道除了對資料庫進行增刪改查以外,還能做些什麼?釋出一篇部落格,不就是在資料庫裡插入一條記錄麼?點選一下推薦,不就是在資料庫裡做一個update麼?
為了避免資料庫的干擾,這裡,我們設定:不使用關聯式資料庫做儲存!請大家牢記,為了更清晰,更深刻的認識到這一點,我們再次明確,我們將使用最流行的NoSQL技術。牛叉吧!興奮吧?
打滿了雞血吧!
好的,設計的任務交給你了,小李同學。
接下來,你怎麼辦?哎呀,我對NoSQL還不熟呀(不熟?其實除了名字知道以外,其他什麼都根本就不知道)。馬上開始研究一下NoSQL,看看裡面有沒有什麼庫呀,表呀之類的,好像那裡面用的是集合?
如果你這樣走下去的話,就偏離了DDD的宗旨了(但也不能說你“錯”了)。
我是這樣做的。
問:這個系統要做什麼?有哪些功能?
答:釋出部落格,部落格可以評論。可以提問題,回答問題。當然,做這些事,都得註冊登入……
好,根據以上資訊,我們可以抽象出這幾個物件。
這是一個良好的開端。再細緻點,部落格和問題,都必須有標題;而部落格的評論和問題的答案,不需要標題;但不管是部落格還是問題,評論還是回答,都會有一個作者,都要釋出時都要記錄下
釋出的時間,甚至釋出者的IP(基於中國人都知道的原因)。部落格和問題,還要記錄下瀏覽量……
到這裡,你是不是嗅到了一種什麼味道?“不管……還是……都……”,共同的東西!那麼想到物件導向的三大特徵,“繼承”就呼之欲出了。所以我們透過抽象,得到了以下的物件。
這樣做的好處,很明顯的,就是減少了重複程式碼。“程式碼越少越好”,我深以為然。當然,隨之而來,還有其他好處,容後再表,呵呵。這裡只說一句,良好的抽象是實現設計模式的基礎。
其實,只要有物件導向的思想,進行這樣的抽象是相當容易的(這樣的抽象也是不對的,以後再論述)。但我們常常會被關係型資料庫所干擾(尤其是有一定開發經驗的程式設計師),而不敢進行這種“大膽的”抽象。因為即使將程式碼寫到這裡了,也得面臨一個很現實的問題,接下來怎麼辦?最終我們怎麼把這些物件持久化(儲存到資料庫或其他媒介中去)。這就是我們接下來要進行的工作了。
最後,對那些還想著資料庫的同學,再重複強調一點:這個專案,我們用NoSQL!哦,sorry,改主意了,大家反映NoSQL太難了,又說乾脆用xml檔案吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/818/viewspace-2808352/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- orientDB學習筆記(三)資料庫 構架設計筆記資料庫
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- 架構學習筆錄--單體專案(2)--資料庫建模架構資料庫
- 向量資料庫Chroma學習記錄資料庫
- 阿里P8架構師進階心得:分散式資料庫架構MyCat學習筆記送給你阿里架構分散式資料庫筆記
- 線段樹進階應用學習筆記(二)+普通資料結構進階應用學習筆記(一)(2024.10.1)筆記資料結構
- 向量資料庫之Lancedb學習記錄資料庫
- MySQL資料庫實現高可用架構之MHA的實戰MySql資料庫架構
- 大資料的系統學習:大資料學習的三個階段概述大資料
- 資料結構——李超線段樹 學習筆記資料結構筆記
- 實戰架構 API 伺服器 學習筆記 (1)序言架構API伺服器筆記
- 【Web】Web 階段學習筆記Web筆記
- React高階實戰 - 我的筆記React筆記
- 我的學習(踩坑)記錄
- 階段性總結_學習筆記筆記
- 線段樹進階 學習筆記筆記
- Nginx處理請求的11個階段(agentzh的Nginx 教程學習記錄)Nginx
- HarmonyOS Next方舟資料管理與分散式資料庫實戰:構建高效同步架構分散式資料庫架構
- 資料庫學習筆記資料庫筆記
- MySQL資料庫各場景主從高可用架構實戰MySql資料庫架構
- 資料之戰:NLP邁向實用階段的核心所在
- 資料庫與我:一段關於學習與成長的深情回顧資料庫
- Java進階面試系列階段性總結【石杉的架構筆記】Java面試架構筆記
- git高階命令學習記錄Git
- 學習資料結構 - 深度優先搜尋 DFS 記錄資料結構
- Docker多階段構建實戰(multi-stage builds)DockerUI
- 手把手0基礎專案實戰(二)——微服務架構下的資料庫分庫分表實戰微服務架構資料庫
- ES資料庫架構資料庫架構
- 1029學習筆記 資料庫筆記資料庫
- python學習筆記:資料庫Python筆記資料庫
- MySQL資料庫學習筆記MySql資料庫筆記
- 資料型別 - Go 學習記錄資料型別Go
- 資料結構學習筆記資料結構筆記
- 資料架構之我見架構
- Java進階學習之Java架構師的學習路線Java架構
- 好程式設計師大資料學習筆記:Storm架構程式設計師大資料筆記ORM架構
- 現階段Kubernetes架構的8個問題架構
- 我的機器學習路線記錄機器學習