天天看點

Vaughn Vernon談當今軟體開發所面臨的挑戰

vaughn vernon舉辦了一場演講,闡述了他所遇到的各種軟體開發方面的嚴重問題,但也為這些問題提出了應對的方案。在他看來,大量的項目與開發團隊都深陷設計糟糕的系統中難以擺脫,無數開發者在不停地為系統打更新檔,隻為系統能夠繼續運作下去。這使軟體開發文化在很大程度上遭受了嚴重的破壞。

以vernon的經驗來看,有一種問題是最突出的,即it部門被視為一個成本中心,業務部門将軟體開發視為一種負面的因素,它在逐漸地榨幹組織的資源,是一種金錢上的浪費。這樣的業務部門不可能将軟體視為一種改變遊戲規則的因素,而是視為一種他們不得不忍受的東西。

在vernon看來,讓業務人員花費大量時間在協作工具中編寫規格說明是一種毫無意義的浪費。大多數開發者都不會在意這些規格說明,因為其中缺少他們所需要的資訊,反而隻會造成低效的協作。正确的做法是讓業務人員與開發者進行對話交流,進而在更短的時間之内推出一份能夠滿足業務需求的紮實的設計。

vernon提到了一種被他稱為任務闆洗牌的做法:将某個便簽從待辦事項欄目裡挪動至開發中欄目中就被視為軟體設計的完成。這會導緻每次挪動便簽就帶來一種随機的設計方案,造成系統缺乏所必需的、經過沉思熟慮的設計。有太多的人認為無設計是一種對代碼或開發者時間上的節約,但vernon認為這種節約是一種錯誤的做法,隻會造成糟糕的設計。

vernon堅定地相信,為了克服他所描述的這些問題,我們必須提高團隊中的開發者成熟度。業務部門對于軟體開發部門的看法隻是某些對于業務有興趣的人員,為了改變這種看法,我們需要通過建立解決方案,進一步促進業務發展的方式幫助業務部門實作卓越。而實作這一點的一種方案就是開始與業務部門進行合作。圍繞着工作内容的上下文與模型建立團隊,并設立統一語言。

事件風暴是一種領域模組化的輔助工具,vernon将其描述為發現邊界上下文的一種極度實用與重要的工具。經過幾個小時的讨論,或許就能夠建立一種統一語言,并且了解領域中的邊界上下文。在事件風暴會議中所産生的結果也可用于某種基于名額的估算過程的估算單元,其結果将接近于真實的數字。

微服務是時下的熱門話題,vernon認為它與領域驅動設計中的邊界上下文有着相似之處。但在vernon看來,以單一元件的粒度部署微服務似乎太細了,他認為以邊界上下文的規模建立微服務是一種更為有效的途徑。

vernon随後提到了actor模型,他确信這是一種非常重要的工具,開發人員 —— 甚至是多數開發人員都應當開始使用這種工具。随着伺服器的核心與記憶體的不斷更新,actor模型也表現為一種能夠有效地利用這些新資源的方式。vernon提出了一項建議,開發者可使用actor模型,圍繞着單一的邊界上下文建構微服務。他認為actor模型往往能夠極大地簡化系統的設計,這種設計表現出優秀的簡潔性。與之形成鮮明對比的是,當今的企業軟體往往會使用複雜的技術棧,其中包含大量不同的機制,哪怕是進階開發者也需要幾個月的時間才能完全掌握。

vernon在結語中表示,大量的團隊都深陷設計糟糕的系統中難以擺脫,但随着開發者成熟度的提高以及ddd的普及,将對這一現狀産生很大的改變。

本文轉自d1net(轉載)

繼續閱讀