DDD原著 第二章 語言的交流和使用

2021-07-13 13:24:55 字數 1518 閱讀 6234

語言,術語的統一很重要。如果語言支離破碎,專案必將遭遇嚴重問題。討論與寫**中術語不一致,甚至同乙個人說的跟寫時不一致,導致對領域有一定的理解認識,也轉眼忘記,無法記錄到**與文件中。

專案需要一種公共語言,領域模型可以成為這種語言的核心。公共語言是整個團隊工作中的通用語言(ubiquitous language)。

ubiquitous language的詞彙表包括類名稱和主要操作。

模型之間的關係成為所有語言都具有的組合規則。詞和短語的意義反映了模型的語義。術語=>規則、大比例結構、contextmap

知識消化 –> 模型完善 –> 術語意義改變或新術語增加將模型作為語言的重心,確保團隊在所有交流活動中堅持使用這種語言。畫圖、寫東西、講話…需要解決術語混淆的問題及有歧義的不一致的地方。ubiquitous language以動態形式傳遞知識。精華模型的最佳方式之一就是通過對話來研究,找出可能的模型變化,並說出對他的多種構想。這樣不完善的地方很容易被聽出來。討論系統時需要結合模型。使用模型的元素以及模型中各元素之間的互動大聲描述場景,並且按照模型允許的方式將各種概念結合到一起。找到更簡單的表達方式來講出你要講的話,然後將這些新的思想應用到圖和**中。

uml有時過於細緻,有時很多遺漏。

圖是一種溝通和解釋手段。(簡潔的小圖可以很好的實現這目標)

圖和文件能夠引導人們將注意力放在核心要點上。通常的做法是以圖為主,輔以文字注釋。而我更喜歡以文字為主,新增精心挑選的簡化圖作為注釋。

務必要記住模型不是圖。圖的目的是幫助表達和解釋模型。(**可以充當設計細節的儲存庫,清晰的**與uml具有同樣的表達能力。)文件只是作為**和口頭的交流的補充。但**作為一種設計文件,自身也存在侷限性。他能把讀**的人淹沒在細節中。

文件不應再重複表示**已經明確表達出的內容。應著重說明含義,以便使人們能夠深入理解大比例結構,並將注意力集中在核心元素上。

ubiquitous language可使文件更簡潔和明確。

當領域模型反映了與業務最相關的知識時,應用程式的需求成為該模型內部場景而ubiquitous language可用於描述這樣乙個直接與model-driven design有關的場景。結果就是規格說明等文件的編寫更加簡單,t因為他們不必傳達模型背後隱含的業務知識。

通過將文件減至最少,並且主要用它來補充**和口頭交流,就可以避免文件與專案脫節。根據ubiquitous language及其演變來選擇那些需要保持最新並與專案活動緊密互動的文件。

xp完全依賴可執行**和**測試。但方法名稱可能會有歧義,會產生誤導或者因為已經過時而無法表示方法的本質含義。消除歧義是宣告式設計。要使**所傳達的訊息與他的行為和意圖保持一致,要有嚴格的設計規程和特定的思考方式。

解釋性模型不等於物件模型(技術模型)。

技術模型必須經過嚴格的精簡,以便用最小的模型來實現其功能。

解釋性模型可引入其他檢視、工具等,只是為傳遞一般領域知識的教學工具。

第二章 Go語言基礎

go是一門類似c的編譯型語言,但是它的編譯速度非常快。這門語言的關鍵字總共也就二十五個,比英文本母還少乙個,這對於我們的學習來說就簡單了很多。先讓我們看一眼這些關鍵字都長什麼樣 break default func inte ce select case defer go map struct ch...

組合語言 第二章

2.1 通用暫存器 8086cpu的所有暫存器都是16位的,可以存放兩個位元組。ax bx cx dx這4個暫存器通常用來存放一般性的資料,被稱為通用暫存器。2.2字在暫存器中的儲存 位元組 記為byte,乙個位元組由8個bit組成,可以存在8位暫存器中。字 記為word,乙個字由兩個位元組組成,這...

組合語言 第二章

對於乙個彙編程式設計師來說,cpu中的主要部件是暫存器。暫存器是cpu中程式設計師可以用指令讀寫的部件。程式設計師通過改變暫存器裡的內容來實現對cpu的控制。1 8086cpu的所有暫存器都是16位的,可以存放2個位元組。其中8086cpu中的ax bx cx dx這4個暫存器都可以分為兩個獨立使用...