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