特價 -20%

程式設計師從零開始邁向架構師之路 DM1929

NT$520

出版商 深智數位股份有限公司
出版日期 2019-12-20
語言 繁體中文
頁數 360
ISBN 9789865501099
Add to Wishlist
貨號: LV3229-1-3-1-1-1-1-2-1-2-1-2-1 Category:

描述

本書特色、內容簡介

自成一派的架構設計方法論,涵蓋:

►架構基礎

►高性能架構模式

►高可用架構模式

►可擴展架構模式

►架構實戰

 

專家力薦

 

本書所包含的知識點正是架構師需要掌握的必備技能,讀者加以學習並靈活應用,一定能成為優秀的架構師。運華是我非常敬佩的架構專家,能把學習架構的脈絡梳理得如此清晰,可見功力深厚。

黃勇 特贊科技CTO

 

建築的命運最終只有2種:被拆(被反覆運算)或被保護起來。架構作為軟體系統支撐骨架,與建築類似,或被反覆運算,或作為經典持續被技術人員學習。如何設計系統架構,什麼才是優秀的系統架構,本書以豐富的案例,由淺入深、層層遞進,讓技術人員充分學習架構及領略架構之美。

熊普江 騰訊佈道師&騰訊雲高級總監

 

作者談架構定義、原則、模式和案例,深入淺出,為有志於做架構工作的朋友提供一條路徑。或許讀者在實踐之後偶爾重讀有新的感受,這大概是寫作的最大安慰吧。

於君澤(右軍) 資深技術專家

 

作者將軟體架構的複雜性和嚴謹的理論,提煉成日常軟體工程的務實實踐和清爽易讀的文字。為讀者提供從概念到實踐的方法,從程式碼視角轉向架構視角和設計視角,適合所有要構建一款好軟體的技術人,成為強大的程式師、架構師和技術領導者。

杜江(洛逸)21CTO社區創始人、今日頭條特賣原技術負責人

 

架構師雖然是一個技術職位,但綜合能力要求很高,是團隊中的技術領導者。本書提綱挈領,從概念到模式並結合實戰,為我們掀開神秘面紗,展示架構師的全景視圖,相信會成為很多工程師進階架構師的入門寶典。

史海峰 貝殼金服 2B2C CTO

本書主要內容

本書涵蓋作者整套架構設計方法論和架構實踐,主要包括以下內容。

■ 「架構基礎」先介紹架構設計的本質、歷史背景和目的,然後從複雜度來源,以及架構設計的原則和流程來詳細介紹架構基礎。

■「高性能架構模式」從存儲高性能、計算高性能方面介紹幾種設計方案的典型特 徵和應用場景。

■「高可用架構模式」介紹 CAP 原理、FMEA 分析方法,分析常見的高可用存儲架構和高可用計算架構,給出一些設計方法和技巧。

■「可擴展架構模式」介紹可擴展模式及其基本思想,分析一些常見架構模式。

■「架構實戰」將理論和案例結合,落地前面提到的架構原則、架構流程和架構模式。

適合讀者群:軟體發展工程師、對架構設計有興趣的技術人員、有架構設計經驗,但要繼續提升的技術人員。

為什麼寫這本書

每個程式師心中都有一個成為架構師的夢想,夢想是美好的,但道路是曲折的。

我在 2006 年開始參與架構設計,原以為學習架構設計就像學習一門程式設計語言一樣,先學習基本語法,再研究細節和原理,然後實踐一下就能夠快速掌握。但真正實踐後才發現,架構設計的難度和複雜度要高很多。從最早開始接觸架構設計,到自我感覺初步完整掌握架構設計,至少6 年時間。等到自我感覺徹底掌握架構設計的精髓,至少8年時間(當然,這過程中我不是一直在做架構設計)。

我曾經以為是自己天資愚笨才會這樣,後來我帶了團隊,看到幾乎每個程式師在嘗試架構設計的時候,都面臨著我遇到過的各種困惑和瓶頸。特別是我作為職業等級晉升評委的時候,發現很多同學技術能力很強,業務也不錯,但卻卡在了架構設計這 部分。我意識到這應該不是個人天資的問題,而是架構設計本身的一些特性導致的。

我總結了幾個架構設計相關的特性。

  1. 架構設計的思維和程式設計的思維差異很大

架構設計的關鍵思維是判斷和取捨,程式設計的關鍵思維是邏輯和實現。很多程 式師在轉變為架構師後,很難一開始就意識到這個差異,還是按照寫代碼的方式去思考架構,這樣會導致很多困惑。

  1. 架構設計沒有體系化的培訓和訓練機制

大學的課程幾乎沒有架構設計相關的課程,架構設計的書也只是關注某個架構設計點,沒有體系化的架構設計書籍,導致程式師在學習上沒有明確的指導,只能自己慢慢摸索,效率低,容易踩坑。

  1. 程式師對架構設計的理解存在很多誤區

例如,要成為架構師必須要有很強的技術天分;架構師必須有很強的創造力;架構設計必須要高大上才能體現架構師能力;架構一定要具備高可用、高性能⋯⋯這些似是而非的誤區讓很多技術人員望而生畏,還沒嘗試就已經放棄了。

得益於移動互聯網技術的快速發展,我有很多機會直接參與架構設計,這些架構背後的業務形形色色,包括社交、電商、遊戲、中介軟體、內部運營系統;用到的技術棧差異也比較大,包括 PHP、Java、C++ 等。雖然每次架構設計對我來說都是一個新的挑戰,但正好也提供了非常好的機會,讓我親身體驗不同的架構設計。在這個過程中, 我不斷學習、思考、實踐、總結、改進、交流,逐步形成了自己的一套架構設計方法論。

有了這套方法論後,我在做架構設計的時候遊刃有餘,不管什麼樣的業務、技術,按照這套方法論都能夠設計出優秀的架構,在職業等級面評的時候,就算我之前從來沒有接觸過對方的業務,也能快速理解對方描述的架構和發現其中做得好或不好的地方;其次,在指導其他同事的時候思路很清晰,容易理解,效果明顯。原來對架構設計比較迷茫的同學,透過幾次結合案例進行方法論培訓,都能夠很快地掌握這套方法論並在實踐中應用。甚至有很多其他業務線的同學,遇到架構設計的困惑,也來找我交流和指導,按照這套架構設計方法論的指導,能夠較快地理清架構設計的思路。

本書的主要出發點就是將這套架構設計方法論,分享給更多熱愛技術、有架構師夢想的技術人員,降低架構學習的成本,減少架構學習過程中走的彎路,助力大家更快地實現自己的架構師夢想。

本書內容已經在「極客時間」App 上開設「從 0 開始學架構」的專欄,訂閱人數已經超過 25000 人,成為「極客時間」最受歡迎的專欄,能夠得到這麼多技術朋友的信任,相信書中的內容一定會讓你有所收穫。

本書的主要內容

本書涵蓋我整套架構設計方法論和架構實踐,主要包括以下內容。

  • 架構基礎:先介紹架構設計的本質、歷史背景和目的,然後從複雜度來源,以 及架構設計的原則和流程來詳細介紹架構基礎。
  • 高性能架構模式:從存儲高性能、計算高性能方面介紹幾種設計方案的典型特 徵和應用場景。
  • 高可用架構模式:介紹 CAP 原理、FMEA 分析方法,分析常見的高可用存儲架 構和高可用計算架構,並給出一些設計方法和技巧。
  • 可擴展架構模式:介紹可擴展模式及其基本思想,分析一些常見架構模式。
  • 架構實戰:將理論和案例結合,落地前面提到的架構原則、架構流程和架構模 式。

本書適合的對象

  • 有一定的程式設計基礎的軟體發展工程師。
  • 對架構設計有興趣的技術人員。例如,測試、運維等崗位的人員。
  • 有初步的架構設計經驗,但需要繼續提升的技術人員。

勘誤與支持

因個人水準有限,且架構設計整體涵蓋的技術範圍很廣,技術深度很深,書中難免有不足之處,還望讀者批評指正。如果讀者對本書有所建議或對書中內容有疑惑,可與我聯繫。

Email:yunhua_lee@163.com

致謝

首先感謝王行雲、胡晏秋、陳俊良、張怡炘等同事對本書的勘誤和審核,讓本書的很多細節和內容更完善。

其次感謝家人的支持,在寫書的過程中父母、妻子承擔了家庭的重任,讓我能夠安心寫作。

特別感謝陳曉猛編輯,本書在他不斷督促下才寫完初稿,後期他耐心地指導、審稿、修改,最終才有本書的誕生。

特別感謝極客時間架構專欄團隊郭蕾、何瀟、周君鳳等人,打造一個非常成功的架構專欄,他們的高要求也讓整體內容更完善、優質。

特別感謝高效運維創始人蕭田國、特贊科技 CTO 黃勇、騰訊雲高級總監熊普江、 貝殼金服 2B2C CTO史海峰、資深技術專家于君澤(右軍)、21CTO社區創始人杜江(洛逸)幾位專家對本書的推薦。

目錄

前言

第一篇 概念和基礎

第1章 架構基礎

1.1 「架構」到底指什麼

1.2 架構設計的目的

1.3 複雜度來源

1.4 本章小結

第 2 章 架構設計原則

2.1 合適原則

2.2 簡單原則

2.3 演化原則

2.4 本章小結

第 3 章 架構設計流程

3.1 有的放矢—識別複雜度

3.2 按圖索驥—設計備選方案

3.3 深思熟慮—評估和選擇備選方案

3.4 精雕細琢—詳細方案設計

3.5 本章小結

第二篇 高性能架構模式

第 4 章 存儲高性能

4.1 關聯式資料庫

4.2 NoSQL

4.3 緩存

4.4 本章小結

第 5 章 計算高性能

5.1 單伺服器高性能

5.2 集群高性能

5.3 本章小結

第二篇 高可用架構模式

第 6 章 CAP

6.1 CAP 理論

6.2 CAP 應用

6.3 CAP 細節

6.4 ACID、BASE

6.5 本章小結

第 7 章 FMEA

7.1 FMEA 介紹

7.2 FMEA 方法

7.3 FMEA 實戰

7.4 本章小結

第 8 章 存儲高可用

8.1 主備複製

8.2 主從複製

8.3 主備倒換與主從倒換

8.4 主主複製

8.5 資料集群

8.6 數據分區

8.7 本章小結

第 9 章 計算高可用

9.1 主備

9.2 主從

9.3 對稱集群

9.4 非對稱集群

9.5 本章小結

第 10 章 業務高可用

10.1 異地多活異地多活設計技巧

10.2 介面級的故障應對方案

10.3 本章小結

第四篇 可擴展架構模式

第 11 章 可擴展模式

11.1 可擴展概述

11.2 可擴展的基本思想

11.3 可擴展方式

11.4 本章小結

第 12 章 分層架構

12.1 分層架構類型

12.2 分層架構詳解

12.3 本章小結

第 13 章 SOA 架構

13.1 SOA 歷史

13.2 SOA 詳解

13.3 本章小結

第 14 章 微服務

14.1 微服務歷史

14.2 微服務與 SOA 的關係

14.3 微服務的陷阱

14.4 微服務最佳實踐

14.5 本章小結

第 15 章 微內核架構

15.1 基本概念

15.2 設計關鍵點

15.3 OSGi 架構簡析

15.4 規則引擎架構簡析

15.5 本章小結

第五篇 架構實戰

第 16 章 訊息佇列設計實戰

16.1 需求

16.2 設計流程

16.3 本章小結

第 17 章 互聯網架構演進

17.1 技術演進

17.2 技術演進的模式

17.3 互聯網業務發展

17.4 本章小結

第 18 章 互聯網架構範本

18.1 總體結構

18.2 存儲層技術

18.3 開發層技術

18.4 服務層技術

18.5 網路層技術

18.6 用戶層技術

18.7 業務層技術

18.8 平台技術

18.9 本章小結

第 19 章 架構重構

19.1 有的放矢

19.2 合縱連橫

19.3 運籌帷幄

19.4 文武雙全—專案管理 + 技術能力

19.5 本章小結

第 20 章 開源系統

20.1 選:如何選擇一個開源項目

20.2 用:如何使用開源方案

20.3 改:如何基於開源專案做二次開發

20.4 本章小結

額外資訊

出版商

深智數位股份有限公司

出版日期

2019-12-20

語言

繁體中文

頁數

360

ISBN

9789865501099