為什麼我們能從行話術語中發現領域模型? - mathiasverraes
系統中的資訊是人們之間交流過程的一部分。思想在頭腦中流動;沿途有翻譯,從概念到自然語言到形式語言(機器系統中的構造),然後再返回。
— Bill Kent
從人們交流的語言中發現客觀世界已經是一種預設方法,包括機器學習的NLP或大資料分析都是這種情況,領域建模也是這種情況,複雜性系統中的資訊會透過人們談論它的言語表現出來,這就是無所不在的通用語言UL,也就是行話或專業術語,透過建立術語字典能夠建立一種統一語言UL,這就是從概念到自然語言的表達,進一步嚴謹約束變成形式語言,適合機器系統執行解釋,當然,機器學習還可以自己發現和生成一種形式模型,然後自己執行解釋。
術語在整個組織中傳播或淡出。意義轉變。人們將舊術語改編成新的含義,或者術語獲得了多重、模稜兩可的含義。它的存在是因為它有效,至少對於人與人之間的交流來說足夠好。
這種領域語言是在該領域工作的人使用的語言。這是一種自然語言,因此很混亂。它是有機的:概念是出於必要而引入的,沒有經過深思熟慮,沒有達成一致,沒有精確性。
對於我們系統設計師來說,雜亂無章的語言是不夠的。我們需要具有易於理解的概念和明確的上下文的精確語言。
這就是通用語言UL(字典):一種構建的、形式化的語言,得到利益相關者和設計師的認可,以滿足我們設計的需求。
任何通用語言UL的形式和精確程度都取決於其環境上下文(這個環境是有邊界的:有界上下文/界限上下文/限制上下文)
既然建模是一種語言遊戲(維特根斯坦認為:世界就是語言遊戲,見:上下文為王),那麼我們可以使用人類語言分析方法(注意,文科中的語文知識)提取模型,隱喻發現是一種有效的方法。(當然,還有其他方式:例如將你的DTO資料物件改變成事件,從事件DTO的流向來分析沿途涉及的術語或上下文,這是事件風暴)
一個好的模型可以幫助你推理一個系統的行為。一個好的隱喻可以幫助你推理出一個系統的_期望的行為。
相關文章
- 為什麼大語言模型能將我們帶入AGI?模型
- DDD中如何藉助行業術語突破性發現領域模型? - Mathias行業模型
- 我們能從Pokémon GO中學到什麼Go
- 在資料二十條中我們能夠發現什麼
- [譯] 我們能從 Redux 原始碼中學到什麼?Redux原始碼
- 資料領域概念橫行?讓我們從本質出發
- 我們能從霓虹國的AI+新藥開發中學到什麼?AI
- 我們為什麼要使用GO語言?Go
- 我們為什麼要技術寫作
- 我們為什麼要從 HTTPRunner 轉向 MeterSphereHTTP
- 為什麼要在遊戲中復刻現實?我們能獲得怎樣的樂趣?遊戲
- 即將推出的 chrome 95 新特性❗ 從中我們能學到什麼❓Chrome
- 現如今的技術浪潮中,我們到底該做些什麼?
- 機器學習這10年我們能在各自的領域做點什麼?機器學習
- 為什麼我們從Webpack切換到Vite - ReplitWebVite
- 為什麼我們從RabbitMQ切換到apache kafka?MQApacheKafka
- 從B站的程式碼洩露事件中,我們能學到些什麼?事件
- 從AIGC到AGI,為什麼我們需要更多的“技術信仰派”?AIGC
- 為什麼我們需要一門新語言——Go語言Go
- 從小眾到火爆,圖資料庫能為我們解決什麼問題?資料庫
- 為什麼我們需要 VuexVue
- 我們為什麼要用RedisRedis
- 我們為什麼而工作
- 轉:我們到底為了什麼鑽研技術?
- 除了“好玩”,電子遊戲還能為我們帶來什麼?遊戲
- 軟體能為我們帶來什麼???今天算開張!
- 分散式系統中的解耦模式:領域查詢 - mathiasverraes分散式解耦模式
- 領域模型的核心本質是什麼?模型
- 資訊領域核心技術扼在美國手裡,我們該何去何從?
- 為什麼我們要從 NodeJS 遷移到 Ruby on RailsNodeJSAI
- 貴公司技術有話語權嗎,為什麼?
- 你能從這兩個程式原始碼中發現什麼原始碼
- GitOps實踐指南:GitOps能為我們帶來什麼?Git
- 機器人能為我們做點什麼?人類不必恐慌機器人
- Facebook全年成果總結:我們在AI領域的行動從未停止AI
- 阿里巴巴資深技術專家無相:我們能從 InteliJ IDEA 中學到什麼?阿里IntelIdea
- 我能為開源做些什麼?
- 從28萬個開源專案中,我們能夠學到一些什麼?