發表於2024-12-23
架構是如何運作並影響人們的日常生活的,在軟件行業中架構是如何運作的?架構又是如何指導代碼編寫的,如何把架構應用在軟件工程實踐上?帶著這些疑問,本書通過大量的實例一步一步揭示齣架構背後的原理,以及架構在軟件行業的發展,並通過企業實例來展示軟件架構的實際應用。本書沒有高深的詞匯,不僅適閤IT從業人員閱讀,也適閤其他行業的人士閱讀。尤其對於想從事架構工作的人而言,是一本不可多得的參考材料。
“聊聊架構”是知名IT技術垂直社區網站新推齣的一個欄目,內容為軟件與網站架構,由一綫架構師執筆。本書作者王概凱,網名Kevin,是一位資深的軟件架構師,也是這個欄目開山之作的作者,贏得數百萬訪問量。
第一部分 認識架構
第 1 章 生命周期
1.1 生命周期的識彆
1.2 核心與非核心生命周期
1.3 生命周期與分工
第 2 章 時間
第 3 章 為什麼會産生架構
3.1 分工
3.2 分工和生命周期
第 4 章 什麼是架構
4.1 架構産生的條件
4.2 什麼是架構
4.3 架構的生命周期
第 5 章 架構和樹
5.1 樹與增長
5.2 架構和樹
第 6 章 概念
6.1 何為名相
6.2 究竟什麼纔是相
6.3 概念是溝通的基礎
6.4 把握概念的力量
聊聊架構
第 7 章 什麼是抽象
7.1 個性與共性
7.2 個性是基礎
第 8 章 識彆問題
8.1 麵對問題有哪些睏難
8.2 如何識彆問題
8.3 尋找問題主體
第 9 章 切分的原則
9.1 切分就是利益的調整
9.2 為什麼需要切分
9.3 切分的原則
9.4 樹和分層
9.5 切分與建模
9.6 切分的輸齣和組織架構
第 10 章 架構與流程
10.1 什麼是流程
10.2 流程和架構拆分的關係
第 11 章 什麼是架構師
11.1 架構師做什麼
11.2 架構師也是人
11.3 人人都是架構師
11.4 架構師和權利
第二部分 軟件架構
第 12 章 什麼是軟件
12.1 以模擬人為目標的馮諾依曼結構和圖靈機
12.2 成本為王
12.3 天空纔是極限
12.4 軟件的作用
目錄
IX
第 13 章 軟件的生命周期
13.1 軟件的開發生命周期
13.2 軟件開發的增長
13.3 軟件開發的迭代
13.4 軟件的運行生命周期
第 14 章 什麼是軟件架構
14.1 要解決什麼問題
14.2 分彆是誰的問題呢
14.3 分彆有什麼問題
14.4 分析問題
14.5 會生成哪些架構
14.6 什麼是軟件架構
第 15 章 什麼是軟件架構師
15.1 軟件架構師的區彆
15.2 軟件架構師的睏境
15.3 生命周期的思考
15.4 軟件架構師的權力
15.5 軟件架構師和技術人員對技術的態度區彆
15.6 架構師是技術的使用者
15.7 如何保障架構落地
第 16 章 業務、架構和技術三者的關係
16.1 什麼是技術
16.2 業務和架構及技術之間的關係
16.3 技術人員和業務人員的關係
16.4 重新發明輪子
16.5 開源技術
第 17 章 軟件研發
17.1 軟件工程師的興起和使命
17.2 分工的睏境
17.3 軟件的迭代
17.4 軟件開發的分工
聊聊架構
X
17.5 軟件開發模式和架構
17.6 軟件工程師的支持者
第 18 章 軟件的架構拆分
18.1 軟件拆分的原動力
18.2 軟件開發團隊的拆分
18.3 軟件的拆分
18.4 軟件開發的基礎技術
18.5 軟件拆分的第二動力
18.6 架構一步到位
第 19 章 如何寫好代碼
19.1 什麼叫業務邏輯
19.2 業務邏輯分散的危害
19.3 業務邏輯內聚的好處
19.4 代碼架構實例
19.5 代碼誤解
19.6 軟件的拆分
第 20 章 單元測試
20.1 什麼是單元測試
20.2 單元測試的睏境
20.3 單元測試測什麼
20.4 如何改造代碼
20.5 為什麼要做單元測試
20.6 如何做單元測試
第 21 章 軟件架構和麵嚮對象
21.1 什麼是麵嚮過程
21.2 什麼是麵嚮對象
21.3 生命周期和麵嚮對象及麵嚮過程
21.4 架構和麵嚮對象及麵嚮過程
21.5 麵嚮對象的誤區
21.6 對象和生命
目錄
XI
第 22 章 軟件架構與設計模式
22.1 模式以及模式的意義
22.2 什麼是設計模式
22.3 軟件設計模式
22.4 設計模式和架構
22.5 設計模式的誤區
第 23 章 軟件架構和軟件框架
23.1 訪問類框架
23.2 業務類框架
23.3 什麼是框架
23.4 框架的特點
第 24 章 軟件運維
24.1 軟件運行生命周期
24.2 什麼是軟件運維
24.3 運維的業務模型
24.4 控製變化
24.5 監控變更
24.6 預警變更
24.7 主導變更
24.8 提升變更質量
24.9 運維的架構拆分
第 25 章 軟件訪問生命周期
25.1 軟件訪問的業務模型
25.2 軟件訪問路徑的架構拆分
25.3 大規模軟件訪問的架構拆分
25.4 集群
25.5 數據中心
第 26 章 軟件架構和大數據
26.1 什麼是大數據
26.2 如何做好大數據
26.3 軟件大數據
聊聊架構
XII
第 27 章 軟件架構和建築架構
27.1 軟件架構和建築架構的目標之異同
27.2 軟件和建築的架構擴展之異同
第三部分 軟件架構的應用
第 28 章 交易
28.1 什麼是交易
28.2 貨幣的齣現
28.3 企業的實質
28.4 軟件對交易的影響
28.5 軟件的交易
28.6 企業的核心
第 29 章 産品
29.1 什麼是産品
29.2 什麼是商品
29.3 識彆産品
29.4 産品係統
29.5 産品列錶
29.6 産品詳情
29.7 商品的規則
第 30 章 用戶
30.1 什麼是用戶
30.2 為什麼需要用戶
30.3 客戶的齣現
30.4 用戶的生命周期
30.5 用戶的識彆
第 31 章 訂單
31.1 什麼是訂單
31.2 訂單的生命周期架構拆分
31.3 訂單支付
31.4 訂單生命周期
第 32 章 交易係統
32.1 企業的架構拆分
32.2 軟件係統的建模
32.3 訪問業務模型
32.4 交易軟件係統的架構拆分
32.5 服務的産生和粒度
32.6 用戶係統的拆分
第 33 章 事務
33.1 什麼是事務
33.2 軟件中的事務
33.3 數據庫事務的濫用
33.4 數據庫的正確使用方式
33.5 服務調用
序
在軟件行業,架構師和軟件工程師是非常辛苦的職業。一方麵新技術層齣不窮,另一方麵業務需求也層齣不窮,讓人疲於應付。導緻的後果就是常常加班,生活質量低下。隻有曾經身在其中的人,纔能夠體會其中的酸甜苦辣。
在軟件行業經曆過這麼多年,也看到瞭軟件行業普遍存在的一些問題,總覺得自己應該為這個行業貢獻一點點力量。不期望能夠改變這個行業,能夠引起一點點思考也是好的,如果能夠幫助提升一些軟件從業者的工作和生活質量,就超齣期望值瞭。
把自己的想法寫齣來的過程是痛苦的,從來沒有寫文字的習慣,也沒打算過寫書,因此愈發艱難。年初時基於以上同樣的想法,在 InfoQ 投稿寫瞭《架構漫談》專欄,和大傢分享一下自己對軟件架構的思考,以為算是交差瞭。不料 InfoQ 的郭蕾多次和我約稿,希望我能夠把架構漫談擴展成一本書。拒絕瞭很多次,但是臉皮實在是薄,禁不住郭蕾三番五次的遊說,狠狠心答應瞭下來。
把文字寫下來傳播齣去,是要承擔很大的責任的,一旦說得不對,傷害的是一大片人。不願寫東西的原因大部分在此。但是想想人非聖賢,總有犯錯的時候,把自己的錯誤暴露齣來給大傢,也是幫助大傢學習。話雖如此,還是鄭重聲明,本書的內容都是個人的思考和個人的觀點,並非學術的結論,請各位讀者不要當作結論全盤接受。反而讀者應該質疑書中的各種觀點,盡量自行思考,如此纔會有所收獲。本書的目的也僅僅是為瞭引發大傢的思考。
思及自身水平有限,文字功底也差,難免傷人慧命,深感慚愧和惶恐!望各位讀者,鑒其愚誠,不吝慈悲指正!
——王概凱 Kevin
前言
現代的軟件從業者,都受過良好的計算機和軟件方麵的教育。但是現代的計算機和軟件方麵的教育,基本上都是從科學研究領域脫胎齣來的,教育的目的也理所當然的主要是為科學研究領域服務。而隨著社會的發展,軟件不斷地滲透到不同的業務領域,涉及到普通人生活的方方麵麵。以科學研究為目的的軟件教育,和日益深入人們生活的軟件應用,産生瞭很大的隔閡。以緻於很多計算機和軟件專業畢業的學生,進入企業工作後,總是感嘆學校所學習的知識派不上用場,必須得重新學起,纔能夠達到企業的要求。
而這些重新學習的內容,又往往是以技術為主的。技術的更新換代太快,往往也導緻想跟上新技術的我們力不從心。技術和業務的關係是如何的?業務又是怎麼運作的?很少有人去問這些問題。即使有人問瞭,也很難有人可以提供建議。
軟件技術學習到一定的地步,又會發現軟件架構是一個門檻。一直以來,在軟件行業,對於什麼是架構有很多的爭論,每個人都有自己的理解。甚至於很多架構師一說架構,就開始談論應用架構、硬件架構、數據架構等。而事實上,架構在軟件發明時的很多年以前就已經存在瞭。眾說紛紜,莫衷一是,這也給大傢帶來瞭很多睏擾。
業務和架構,是壓在軟件從業人員身上的兩座大山。而軟件從業人員手上卻隻有一個武器:技術。可是這個武器還時靈時不靈,就好像金庸小說《天龍八部》中段譽的六脈神劍,並不總是能夠解決問題,有時還會帶來麻煩。
軟件並不是虛無縹緲的東西,它和現實生活是緊密相關的。業務和架構都是處理人的問題。而技術人員最討厭處理的就是人的問題,心裏麵厭惡,但卻又無法逃避。因為這個排斥的心理,工作中始終想避開和人有關係的地方。因此在技術之前,還需要做一些準備工作,用來連接現實生活,聯係上人,讓大傢知道處理人的問題並不可怕。建立瞭這個相關性,每個人就都可以自行思考瞭。
不僅人類受限於自身的生命周期,凡事都有其生命周期。理解瞭生命周期,就可以看到很多隱藏在背後的規律,以及這些規律之間的聯係。因此,本書試圖從生命周期入手,描繪齣一張整體的畫捲,幫助包括技術人員在內的大傢定位自己處於什麼地方,自己在起什麼作用,彆人又在什麼地方,他們又在起什麼作用。
明白瞭自己的位置和彆人的位置,自然也就清楚自己有什麼,缺什麼,要往哪個地方走,從哪些地方入手瞭。所謂“知己知彼,百戰百勝”,知道這些後中,麵對人打交道時也就有瞭自己的思考方式,能夠進行獨立思考,對業務也不再厭惡以緻於逃避,而是為能幫助業務人員分析及解決問題而自豪。
本書雖然不是技術書籍,不談技術,但卻是以幫助技術人員為齣發點。本書的內容可以作為連接技術人員和現實世界的橋梁,用來使技術人員不再懸在空中使不齣力。對於非技術人員而言,本書可以幫助其理解軟件開發的特殊性,拉近與技術人員的距離,能夠更有針對性地與技術人員閤作。
當然,讀完本書不會使讀者突然學會神功,打通任督二脈。因為每個人的成長,最終還是要靠自己的思考和實踐。本書的思考也不能夠代替讀者自己的思考,在解決某個業務問題時也無法從書中直接找到答案。本書可以提供給大傢的是一個思考的齣發點,一個思考的方嚮,一個思考的角度,使得大傢不再懼怕或排斥業務,並可以像業務人員一樣思考,和架構師一樣思考,不再受睏於業務和架構,甚至是技術本身。如果本書能夠幫助大傢跨過這個門檻,並從這裏開始展開思考,那麼目的就達到瞭。
聊聊“架構” 下載 mobi pdf epub txt 電子書 格式 2024
聊聊“架構” 下載 mobi epub pdf 電子書真的是"聊聊",水的要死
評分一次買瞭很多書,都沒來得及看
評分rcgu我說的都非常分發給多幸福
評分粗粗翻瞭一下,描述層麵畢竟高,不是實戰經驗介紹,描述流程性的東西太多,有些枯燥。有點藉鑒意義
評分粗粗翻瞭一下,描述層麵畢竟高,不是實戰經驗介紹,描述流程性的東西太多,有些枯燥。有點藉鑒意義
評分聊聊“架構”
評分真的是"聊聊",水的要死
評分聊聊“架構”
評分粗粗翻瞭一下,描述層麵畢竟高,不是實戰經驗介紹,描述流程性的東西太多,有些枯燥。有點藉鑒意義
聊聊“架構” mobi epub pdf txt 電子書 格式下載 2024