軟體設計的目標是建立適合人類思維的切片分塊 - KentBeck
軟體設計的目標是建立適合人類思維的塊或切片。軟體一直在增長,但人類的思維會達到極限,因此,如果要繼續進行軟體更改,我們必須進行切片和分塊。
這意味著軟體設計實際是人為人自己提供技術支援的過程(人類互助)。軟體設計是人類關係中的一項練習(banq注:道德倫理也是一種人類關係)。
眾說紛紜:
認知負擔很重要!從最小的功能程式碼塊到軟體體系結構中的最大元件,這都很重要。
我們的大腦處理複雜性的能力不僅僅只是分塊!我們的大腦喜歡層次結構+模式。在我們的設計中,我們可以透過分層和具有各種模式的圖式來支援層次結構。
在功能級別上進行切片和分塊,然後在上下文級別上進行抽象,以使不同的涉眾可以理解。
以我的經驗,僅僅為了切片而切片是不好的。例如,我從沒有看到從Monolith遷移到微服務的複雜性降低的情況,在大多數情況下,管理所有這些服務之間的整合比實際的Monolith困難得多。
(banq注:這種複雜性是用Monolith單體的標準來衡量的,比如原來一個團隊負責一個單體,好像很輕鬆,不復雜,到了微服務以後,一個團隊負責50個微服務,感覺複雜性增加,其實這沒有意識到人的大腦的參與過程,一個人的大腦只能負責一到幾個微服務,否則就會超過一個人的認知負擔,因此,五十個微服務可能需要幾個團隊單獨負責,從人員上看數量是增加了,但是在單體架構時期,你以為一個團隊的幾個腦袋負責一個單體就沒有認知負擔嗎?單體內部耦合在一起如同泥球,當然模組化分塊以後的單體是否只需要一個團隊的幾個腦袋就可以呢?其實模組化的單體與微服務的區別在於:微服務可以獨立開發快速測試部署,不必與其他模組組裝後再發布部署,因此,單體模組化架構只是一種過渡階段,讓你從一個團隊擴張到十個團隊很難,但是從一個團隊到三、五個團隊,再到十個團隊就感覺踏實了。)
相關文章
- 軟體設計的目標是建立適合人類思維的片塊 - KentBeck
- 你是整體思維還是分析思維? - kentbeck
- 有麼有適合職場辦公人士用的思維導圖軟體?
- 最適合程式設計師的筆記軟體程式設計師筆記
- 思維導圖是什麼軟體畫的
- 計算機程式的思維邏輯 (14) – 類的組合計算機
- 用科學的思維方法指導軟體的設計開發
- 好用的思維導圖軟體,安卓思維導圖軟體哪個好安卓
- 關鍵詞是如何分類的?哪些適合SEO優化?優化
- 到底哪些人適合學Python?適合學Python的5類人Python
- 軟體測試人員必備的7種思維方式
- 思維體系---技術思維、業務資料思維、產品思維、複合思維
- 軟體工藝運動的目標是什麼?
- 人的意識思維是連續的嗎?
- 軟體構造的多維度檢視&質量目標
- 哪種人是軟體設計中的稀缺型人才?
- 什麼是程式設計師思維?程式設計師
- 組合思維與繼承思維的不同繼承
- 哪些人適合學軟體測試呢
- 哪些人適合學習軟體測試
- 思維導圖軟體
- 思維交流軟體--mindmanager
- 軟體開發:合適的才是最好的
- 如何建立架構師的立體化思維?架構
- 組合計數思維題
- SOLIDWORKS軟體不僅僅是三維機械設計軟體Solid
- 你是最適合創業的程式設計師嗎?創業程式設計師
- 使用思維導圖工具MindManager幫助實現目標設定
- 十億人都在用的健康碼,運維體系是怎麼設計的?運維
- 原型設計思維原型
- 演算法設計幾個經典思維題目演算法
- 軟體設計是怎樣煉成的(4)——軟體設計的“大道理”
- [譯] 產品管理思維模式適合每一個人模式
- 軟體設計雜談(二)--軟體設計與設計人員的個人素質 (轉)
- ImageJ軟體使用教程(三):目標計數
- 哪些人適合參加軟體測試培訓
- 軟體測試培訓適合什麼人學習?
- 哪些人適合參加軟體測試培訓?