- 架構(gòu)師啟示錄:知識模型、落地方法與思維模式
- 靈犀
- 2319字
- 2024-06-06 18:48:14
PREFACE
前言
為什么寫作本書
程序員如何成長為架構(gòu)師?程序員在成長為架構(gòu)師的路上,通常會遇到許多問題,以下列舉了其中一些比較普遍的。
1)架構(gòu)知識點繁多,是否存在一個簡單的架構(gòu)知識模型,方便記憶和學習?
2)一個復(fù)雜系統(tǒng)是如何設(shè)計出來的?是否有架構(gòu)落地的指南?
3)自己目前處于哪個階段?是否存在清晰的架構(gòu)學習框架?
4)DDD(領(lǐng)域驅(qū)動設(shè)計)和面向?qū)ο笾g存在什么樣的關(guān)系?DDD的本質(zhì)又是什么?
5)敏捷和DevOps是兩個事物,還是一個事物的兩個方面?它們的關(guān)系和本質(zhì)到底是什么?
6)雖然架構(gòu)知識掌握得不錯,但在面對復(fù)雜系統(tǒng)設(shè)計時仍然感到?jīng)]有頭緒或者缺乏信心,這種情況應(yīng)該如何改善?
7)每次較大的業(yè)務(wù)需求變更,都會導(dǎo)致前期架構(gòu)設(shè)計大的調(diào)整甚至推倒重來,如何有效提高處理這種情況的能力?
總之,程序員在成長為架構(gòu)師的過程中通常會經(jīng)歷3個階段,每個階段都有一道主要關(guān)卡,即該階段中的最大難關(guān)。一般而言,只有跨過了這道關(guān)卡,才表明已經(jīng)掌握了該階段的知識,并成功進入下一個階段。上述問題實際上都可以對應(yīng)到3個階段及其關(guān)卡中。
第一個階段是知識體系搭建,即初期如何學習并掌握大量的架構(gòu)知識。這一階段的關(guān)鍵是尋找好的學習方法或途徑,否則很容易被困在“知識迷霧”中。問題1到問題4可劃到這一階段。
第二個階段是認知突破。許多架構(gòu)師深有體會,即使已經(jīng)掌握了豐富的架構(gòu)技能,在面對復(fù)雜系統(tǒng)挑戰(zhàn)時也不能游刃有余地處理。因為架構(gòu)是一項綜合性工作,更需要技術(shù)之外的認知提升來應(yīng)對復(fù)雜情況,否則就容易陷入“認知瓶頸”。上面的問題5到問題7可劃到這一階段。
第三個階段是架構(gòu)本質(zhì)探尋。當一位架構(gòu)師已經(jīng)具備了駕馭復(fù)雜系統(tǒng)的能力后,就會開始思考架構(gòu)知識體系的本質(zhì)是什么,并能持續(xù)更新架構(gòu)知識體系,提升認知和解決問題的能力。
本書旨在為讀者厘清架構(gòu)師成長之路上的3個階段及關(guān)卡,并對每個階段的問題進行答疑解惑。
本書特色
1)關(guān)注本質(zhì)的理解。盡管本書是一本架構(gòu)技術(shù)類的書籍,但是討論的內(nèi)容并不僅僅停留在技術(shù)層面,而是嘗試探討技術(shù)的本質(zhì)或原理是什么,讓讀者盡可能知其然,也知其所以然。例如,本書探討了敏捷、DevOps、DDD等多種技術(shù)的本質(zhì)。
2)關(guān)注案例的類比。不論架構(gòu)設(shè)計還是編程,都屬于計算機虛擬世界中的技術(shù)。本書將現(xiàn)實世界中的案例與虛擬世界中的技術(shù)進行類比,幫助讀者更深入地理解相關(guān)技術(shù)。
3)關(guān)注模型的抽象。通過模型來學習相關(guān)知識對讀者很有幫助。本書不僅提出了架構(gòu)知識的模型,在講解企業(yè)架構(gòu)框架TOGAF、數(shù)字化等內(nèi)容時,同樣構(gòu)建出相關(guān)的模型,以方便讀者學習。
4)關(guān)注思維的融入。思維模式與技術(shù)應(yīng)用之間的關(guān)系,就像是一座冰山的水面下和水面上的關(guān)系。我們往往只關(guān)注“水面上”的部分,而忽略了“水面下”的部分,這是不完整、不深入的。本書將重點介紹10種底層思維模式,希望能為架構(gòu)師提供一種打破“認知瓶頸”的思路。
讀者對象
本書主要適合以下讀者閱讀。
1)程序員。通過本書,程序員可以學到一種成長為架構(gòu)師的認知框架。該框架內(nèi)部已將編程和架構(gòu)關(guān)聯(lián)起來,能夠讓程序員從現(xiàn)有編程知識出發(fā),更快地掌握架構(gòu)相關(guān)知識。
2)架構(gòu)師。通過本書,架構(gòu)師可以學到一種全面認識企業(yè)架構(gòu)的方法。
3)需求分析人員或產(chǎn)品經(jīng)理。通過本書,需求分析人員或產(chǎn)品經(jīng)理可以掌握一套需求分析和業(yè)務(wù)架構(gòu)設(shè)計的方法,建立對企業(yè)、需求和架構(gòu)的完整認知閉環(huán)。
如何閱讀本書
本書共10章,分為3個部分。
第一部分(第1章)提出一種架構(gòu)認知的方法論,即架構(gòu)認知框架=架構(gòu)知識模型+架構(gòu)落地方法+架構(gòu)思維模式,后續(xù)章節(jié)將會圍繞此方法論展開。
第二部分(第2~4章)介紹架構(gòu)知識模型,即架構(gòu)知識模型涵蓋信息交換、架構(gòu)編排、架構(gòu)演進。該模型將大量的架構(gòu)知識進行分類與結(jié)構(gòu)化,同類架構(gòu)知識之間通常存在一些共性規(guī)則,可以相互借鑒。
第2章介紹信息交換,幫助讀者從全局視角厘清系統(tǒng)描述的3種維度及相應(yīng)的模型。
第3章介紹架構(gòu)編排,探討架構(gòu)編排的真正內(nèi)核,給出一種架構(gòu)設(shè)計的通用思路,即從編排維度來解決高并發(fā)、高可用等設(shè)計問題。
第4章介紹架構(gòu)演進,重點探討了敏捷和DevOps的關(guān)系與本質(zhì)。
第三部分(第5~10章)介紹架構(gòu)落地方法與架構(gòu)思維模式。本書提出一個標準化的端到端架構(gòu)落地方法,該方法是在RUP(統(tǒng)一軟件開發(fā)過程)、DDD和TOGAF(The Open Group開發(fā)的一種架構(gòu)框架)等各類架構(gòu)理論基礎(chǔ)上融合而成的,以幫助讀者有效應(yīng)對復(fù)雜系統(tǒng)的設(shè)計。然而在面對復(fù)雜多變的系統(tǒng)設(shè)計時,架構(gòu)師所面臨的主要挑戰(zhàn)往往不只是技術(shù)層面,更多的是對業(yè)務(wù)、環(huán)境、技術(shù)、管理等整體性的認知和把控。本部分提出的架構(gòu)思維模式旨在幫助架構(gòu)師提升認知水平,以應(yīng)對復(fù)雜系統(tǒng)的整體性挑戰(zhàn)。
第5章重點介紹企業(yè)架構(gòu)框架TOGAF,并對其中的企業(yè)和企業(yè)架構(gòu)概念進行了擴展介紹,讓讀者站在宏觀視角看待企業(yè)架構(gòu)和實施方法。
第6章介紹需求分析階段的落地方法,讓讀者對從需求捕獲到業(yè)務(wù)架構(gòu)設(shè)計的整個流程有一個完整的認識。
第7章詳細介紹架構(gòu)設(shè)計階段的落地方法,同時詳細介紹應(yīng)用架構(gòu)、數(shù)據(jù)架構(gòu)和技術(shù)架構(gòu)的設(shè)計,并深入探討了DDD的本質(zhì)、DDD與面向?qū)ο蟮年P(guān)系以及戰(zhàn)略和戰(zhàn)術(shù)設(shè)計。本章是架構(gòu)設(shè)計的核心內(nèi)容,希望讀者通過本章的學習能真正領(lǐng)會每一項架構(gòu)設(shè)計的核心關(guān)注點,澄清理解上的誤區(qū),從而在實踐中自如地運用。
第8章重點介紹系統(tǒng)實現(xiàn)階段的高質(zhì)量代碼標準。
第9章關(guān)注系統(tǒng)維護階段,介紹問題定位、數(shù)據(jù)分析和系統(tǒng)規(guī)模擴張的有效應(yīng)對策略。
第10章以辯證思維的方式介紹5對底層思維模式,希望讀者能夠認識到思維模式的重要性,并加以實踐。
勘誤與支持
如果讀者對本書有任何疑問或建議,歡迎發(fā)送郵件至lingxi666@yeah.net。此外,筆者的公眾號“靈犀架構(gòu)課堂”會持續(xù)發(fā)布架構(gòu)技術(shù)棧知識和實踐心得。
致謝
感謝曾一起共事的領(lǐng)導(dǎo)、同事對筆者的指導(dǎo)和鼓勵。
感謝家人長期以來的愛和無私奉獻。
- 精通COBOL:大型機商業(yè)編程技術(shù)詳解(修訂版)
- 大前端三劍客:Vue+React+Flutter
- 大數(shù)據(jù)處理系統(tǒng):Hadoop源代碼情景分析
- 嵌入式系統(tǒng)開發(fā)之道:菜鳥成長日志與項目經(jīng)理的私房菜
- Android游戲開發(fā)大全
- Python與數(shù)據(jù)挖掘
- Spring Cloud微服務(wù)架構(gòu)實戰(zhàn)
- SQL Server應(yīng)用與開發(fā)范例寶典
- Verilog HDL數(shù)字系統(tǒng)設(shè)計及實踐
- 計算機網(wǎng)絡(luò)系統(tǒng)集成技術(shù)基礎(chǔ)與解決方案
- 軟件研發(fā)行業(yè)創(chuàng)新實戰(zhàn)案例解析
- 精益軟件度量——實踐者的觀察與思考
- x86匯編與逆向工程:軟件破解與防護的藝術(shù)
- 微信公眾平臺開發(fā)實例教程
- 企業(yè)級DevOps應(yīng)用實戰(zhàn):基于GitLab CI/CD和云原生技術(shù)