App架構師成長路線

點擊關注異步圖書,置頂公衆號程序員

天天與你分享 IT好書 技術乾貨 職場知識​面試

​參與文末話題討論,每日贈送異步圖書編程

                                                                                                                     ——異步小編設計模式


架構師,軟件技術領域一個高大上的名詞,業界有言「人人都是產品經理」,卻不多聽到「人人都是架構師」。其自己涉及的複雜龐大的跨領域知識體系除外,對於架構一詞,其實很難去完整地定義,咱們也不必過於糾結,就如咱們爲何要爬山,由於山在那裏,執着前行,或許還不曾知曉路在何方,抑或你都未曾思考要去何方,但至少你已經在路上,while(!(succeed=try()))。安全

成長爲架構師是一個過程,而不是一個結束,如今,就讓咱們開啓移動應用架構師之路吧。

什麼是架構師? 

架構師是爲知足某種架構設計的目標而從總體上構思把控的角色,在軟件行業,又會細分不少,如系統架構師、企業架構師、應用架構師、業務架構師等,本書是針對App應用架構師進行闡述的。構建一個完美的架構,通常須要具有下述特徵。性能優化

  • 具有客戶要求的功能。
  • 可以在要求的工期內安全地構建。
  • 性能足夠好。
  • 可靠。
  • 可用,且使用時不會形成傷害。
  • 安全。
  • 成本可接受。
  • 符合法規標準。
  • 將超越前任及其競爭者。

總結一下,架構的核心就是功能、安全、性能和穩定
。其實,在具體架構實踐中,咱們很難完整系統地所有完成上述特徵,架構是一種折中,「架構師玩的是折中的遊戲,對於一組給定的功能需求和品質需求,沒有惟一的正確架構和惟一的正確答案」。做爲架構師的咱們,須要考慮的是如何作得更好,如何避免負面影響。

App架構師的核心職責包括選型規劃、架構設計、技術攻關、溝通協調、疑難攻略等,這些對架構師來講應該都是通用的
。對美的追求,我認爲是架構師最崇高的目標。

程序員發展路線

其實地上本沒有路,走的人多了,也便成了路。——魯迅

踏上架構師之路前,咱們先來聊聊程序員的發展路線。先看看國內的大公司的程序員發展路線,筆者整理了大體的職級體系對比圖,僅供參考,如圖1-1所示。​網絡

​圖1-1 職級體系​圖1-1 職級體系架構

結合自身發展,我以爲程序員的發展路線應該主要有兩條——專家線和管理線,管理線上,不一樣公司策略不一樣,大多都是從中間的某個級別道路分叉爲管理,如圖 1-2 所示。不一樣級別對應的角色和承擔的責任天然不同,例如資深工程師,須要在技術的深度和廣度兩維度上都有所積累和沉澱,而架構師除了技術自己外,技術以外的其餘領域知識也是必須沉澱的。固然,從長遠一點說,若須要結合具體的事業路線,這兩條路在東西南北4個方向的事業路能夠分散,分散到四象限矩陣,分別對應了職員、創業、SOHO 和投資,如圖1-3所示。​
框架

​圖1-2 程序員職業路線​​圖1-2 程序員職業路線​異步


​圖1-3 程序員事業路線​圖1-3 程序員事業路線

App架構師技能矩陣  

前面闡述了程序員發展路線,本節咱們來聊聊做爲架構師的你或者正在架構師路上的你,須要怎樣的技能矩陣。

App架構師畫布

在闡述技能圖譜以前,咱們先借鑑《精益創業實戰》[3]一書中的精益畫布商業模式,來創造一幅咱們的App架構師畫布,如圖1-4所示。認識本身,這是開始作任何事情的基礎。職業定位和事業定位,參考圖1-2和圖1-3所示,本身是否是真的打算踏入架構師這條路?目標和定位清晰後,該如何開始呢?毋庸置疑,就先從本書開始吧,圖1-5爲App架構師應該具有的基本技能,那麼,開啓你的瘋狂成長之路吧。成長之路離不開學習,學習又必須有必定的方法,如何正確地學習,請參考本書「架構師那點事」章節內容。光學不練也不行,你須要一個平臺或者一個項目去演練,去實踐,走過的路纔是你本身的路,讓咱們培養架構師思惟,朝着架構師前行。最後,說到得與失?任何事情都存在必定的機會成本,要提早考慮清楚。​

​圖1-4 App架構師畫布​圖1-4 App架構師畫布

技能圖譜

將技能圖譜/技能矩陣用於本身的學習和成長,這是筆者嘗試過的很是不錯的一種方式,推薦給讀者,值得你們體驗。針對App架構師的技能圖譜,筆者進行了完整梳理,如圖1-5所示,本書後面內容基本會覆蓋其中大部分知識點。誠然,任何單方面的思考和決策都是不全的、片面的,僅供參考,同時推薦你們參閱Programmer Competency Matrix[4]和七牛雲的漫畫電子書《架構師技能矩陣》[5]。

​圖1-5 App架構師技能圖譜​圖1-5 App架構師技能圖譜

該讀什麼書?

目前,市面關於App開發的書籍,較多以片面的技術開發爲切入點,未能對移動應用開發進行系統性的講解,儘管能夠令讀者在短期內掌握App開發方法,可是隨着App使用愈來愈多,App架構愈來愈複雜,從長遠來看,咱們須要的不僅是普通的App開發人員,更須要一個能從架構體系上對App開發有全面瞭解並能全程掌控的技術人員。這裏推薦一本書《App架構師實踐指南》

本書第一篇從App系統架構師的成長路線輕鬆切入,一目瞭然地讓讀者明白App架構師究竟是作什麼的,而後經過App基礎語法、開發工具等基礎知識,闡述了App開發的基本功。第二篇正式展開描述了架構師必備的關於App開發過程當中所需的綜合技巧,其中涵蓋了App經常使用模塊設計、App架構和重構、質量和穩定性、性能優化、安全逆向及熱門技術等內容,深刻淺出地將一個合格架構師應該掌握的內容娓娓道來。第三篇從團隊合做的角度描述了App架構師如何高效地開發和管理一個App項目,並使該項目具備可持續發展的可能。第四篇則以輕鬆的口吻向全部但願經過本書完成App「碼農」向「架構師」昇華的程序員們介紹了一些心得體會。

移動互聯網是將來物聯網世界和大數據世界的基礎設施,App開發是移動互聯網目前產生價值最核心的技術。咱們有理由相信,隨着App開發需求的日益強盛,App架構師也會愈來愈獲得重視,併成爲App開發產業的中堅力量,那麼這本書就能給予這些人但願和助力。

​《App架構師實踐指南 》

SkySeraph 潘旭玲 著

點擊封面購買紙書


一本講解從程序員轉變爲架構師須要瞭解的技能和思想,明確地給程序員指引了移動架構師成長的路線,是想成爲架構師的程序員實用指南。

全面介紹了在移動應用開發的架構設計和性能優化方面的知識,是架構師的必備書籍 。講述了移動應用架構師須要瞭解的技能、思想等總體的發展方向,是移動架構師成長的路線圖。

讀者不只能夠學習到移動應用的開發技術,更能收穫到在實戰項目中會用到的各類工程化的知識,是架構師的學習寶典 。

本書目錄:

第一篇 基 礎 篇

第1章 App架構師成長路線 2

1.1 架構師定義 2

1.2 程序員發展路線 3

1.3 App架構師技能矩陣 5

1.3.1 App架構師畫布 5

1.3.2 技能圖譜 5

1.4 本章小結 6

1.5 推薦資料 7

第2章 App基礎語法系列 8

2.1 編程語言 8

2.1.1 那些年,那些語言 9

2.1.2 聊聊Swift 11

2.1.3 Swift 3和Java 8新特性 13

2.2 面向對象思想 14

2.2.1 編程範式 14

2.2.2 封裝、繼承與多態 15

2.2.3 內部類的使用和思考 17

2.3 線程與進程 19

2.4 反射、註解與泛型 21

2.4.1 反射與註解 21

2.4.2 泛型 23

2.5 本章小結 24

2.6 推薦資料 25

第3章 App開發工具系列 26

3.1 IDE 26

3.1.1 Android Studio 27

3.1.2 Xcode 29

3.2 編譯調試 29

3.3 版本管理 31

3.3.1 代碼管理 31

3.3.2 Git分支管理 32

3.4 產品設計 34

3.5 程序員珍藏 35

3.5.1 抓包工具 36

3.5.2 ADB 36

3.5.3 Chrome開發插件 37

3.6 本章小結 38

3.7 推薦資料 38

第4章 App SDK使用系列 39

4.1 從Lifecycle提及 39

4.2 大話UI 41

4.2.1 關於佈局 41

4.2.2 經常使用控件 41

4.2.3 自定義View 42

4.3 存儲和網絡 43

4.4 本章小結 43

4.5 推薦資料 44

第5章 開源庫的選擇和使用 45

5.1 關於開源 46

5.2 開源庫的選擇 46

5.2.1 開源項目選擇 46

5.2.2 關於License 47

5.3 開源庫的使用 48

5.4 本章小結 49

5.5 推薦資料 49

第二篇 核 心 篇

第6章 App經常使用模塊設計 52

6.1 基礎組件庫 52

6.1.1 構建你的基礎組件庫 53

6.1.2 不得不說的圖片庫 54

6.1.3 淺談網絡庫和加密 61

6.2 經常使用業務模塊 65

6.2.1 啓動引導模塊 65

6.2.2 註冊登陸模塊 66

6.2.3 運營統計模塊 67

6.3 編譯打包 68

6.3.1 打包方式和流程 68

6.3.2 Gradle實用技巧 71

6.4 版本適配 75

6.4.1 iOS App適配 76

6.4.2 Android App適配 77

6.5 本章小結 78

第7章 App架構和重構 79

7.1 從組件和模塊提及 80

7.2 組件化、模塊化和插件化 80

7.2.1 三個概念 80

7.2.2 App插件化 82

7.2.3 App組件化 83

7.3 UML基本功 86

7.3.1 UML工具 86

7.3.2 常見UML圖 87

7.3.3 UML實例 88

7.4 大話設計模式 88

7.4.1 六大原則 89

7.4.2 設計模式總覽 89

7.4.3 設計模式實踐 90

7.5 接口設計 91

7.5.1 API,What and Why 92

7.5.2 How API 92

7.6 常見架構模式 95

7.6.1 MVX模式 95

7.6.2 常見軟件架構 97

7.6.3 從組件化角度看App架構 100

7.7 重構未眠夜 102

7.7.1 重構概覽 102

7.7.2 架構重構 103

7.7.3 代碼重構 104

7.8 架構設計夠了麼 106

7.9 本章小結 106

7.10 推薦資料 106

第8章 App質量和穩定性系列 108

8.1 質量標準和穩定性指標 109

8.1.1 應用的核心質量 109

8.1.2 穩定性衡量指標 109

8.2 質量和穩定性手段 112

8.2.1 質量監控 112

8.2.2 問題處理原則 115

8.2.3 App持續集成 115

8.2.4 代碼質量監測 125

8.3 笑談Crash 138

8.3.1 Crash基礎和原理 138

8.3.2 Crash收集和統計 142

8.3.3 Crash分析 150

8.4 測試專場 160

8.4.1 測試綜述 161

8.4.2 兼容性測試 165

8.4.3 性能和安全性測試 174

8.4.4 自動化測試 174

8.4.5 A/B Testing 180

8.4.6 代碼覆蓋率 182

8.4.7 線上演練 183

8.5 本章小結 183

8.6 推薦資料 183

第9章 App性能優化系列 185

9.1 性能分析 186

9.1.1 性能維度 186

9.1.2 性能優化 186

9.1.3 性能測試平臺 187

9.2 硬件性能優化 187

9.2.1 電量信息獲取 188

9.2.2 耗電分析 190

9.2.3 電量優化 191

9.3 UI和CPU性能優化 194

9.3.1 基礎原理 194

9.3.2 流暢度度量 196

9.3.3 卡頓分析和優化 201

9.4 內存性能優化 206

9.4.1 內存機制和原理 206

9.4.2 內存分析工具 210

9.4.3 泄露和溢出 210

9.4.4 內存性能優化 212

9.5 網絡性能優化 215

9.5.1 網絡性能概述 216

9.5.2 網絡性能測試和流量度量 218

9.5.3 網絡性能優化 220

9.6 App包Size優化 223

9.6.1 App包Size優化概述 223

9.6.2 App包Size分析 224

9.6.3 App包Size優化 227

9.7 App啓動速度優化 230

9.7.1 App啓動方式和流程 230

9.7.2 App啓動時間度量 232

9.7.3 App啓動速度優化 234

9.8 App代碼優化 235

9.9 本章小結 240

9.10 推薦資料 240

第10章 App安全逆向系列 242

10.1 逆向概述 242

10.1.1 App包組成 243

10.1.2 逆向工具 245

10.1.3 Root和越獄 247

10.1.4 二次打包 247

10.2 逆向分析 248

10.2.1 靜態分析 248

10.2.2 動態分析 249

10.2.3 Hook和注入 249

10.3 安全測試 251

10.4 安全建議 252

10.4.1 混淆和簽名 253

10.4.2 加固加殼 262

10.4.3 安全編碼和隱私 263

10.5 本章小結 265

10.6 推薦資料 265

第11章 App熱門技術 267

11.1 進程保活 267

11.1.1 基礎知識 268

11.1.2 保活方法 271

11.2 MultiDex 271

11.3 RxJava 273

11.3.1 RxJava基礎 273

11.3.2 RxJava應用實例 276

11.4 Hybrid 281

11.5 HotFix 282

11.6 AOP 283

11.6.1 OOP與AOP 283

11.6.2 AOP應用實例 283

11.7 本章小結 286

11.8 推薦資料 286

第三篇 產 品 篇

第12章 App是如何練成的 290

12.1 App練成 290

12.2 開發流程 291

12.3 也談版本號 292

12.4 本章小結 293

第13章 項、產、設、運「四天王」 294

13.1 項目管理 294

13.1.1 敏捷Scrum 295

13.1.2 班車模式 298

13.2 產品思想 298

13.2.1 產品經理 299

13.2.2 產品思惟 299

13.3 設計理念 302

13.3.1 UI與UX 302

13.3.2 設計理念 304

13.4 推廣運營 306

13.4.1 運營指標 306

13.4.2 大話推廣 309

13.4.3 運營之道 310

13.5 本章小結 310

13.6 推薦資料 310

第14章 個人高效團隊 312

14.1 從代碼規範開始 312

14.2 不得不說的Code Review 313

14.3 晨會,高效一天的開始 315

14.4 溝通和團建 315

14.5 別忘了技術分享 316

14.6 面試,面試,再面試 317

14.7 自管理,扁平化 318

14.8 最後,聊聊加班 319

14.9 本章小結 319

14.10 推薦資料 319

第四篇 拓 展 篇

第15章 架構師那點事 322

15.1 大話全棧工程師 322

15.2 架構師思惟 323

15.3 學而時習之 324

15.4 軟技能 325

15.5 本章小結 326

15.6 推薦資料 326

​《深刻理解Spring Cloud與微服務構建》

方誌朋 著

點擊封面購買紙書


談到微服務,你們衆說紛紜,但卻很難有一個清晰的概念來描述。微服務不是「銀彈」,我理解的微服務是一種文化,而咱們要作的就是將微服務的理念運用到實際開發中。通過一系列的技術選型,最終Spring Cloud憑藉其成熟的組件、完善的一站式解決方案,最終成爲了咱們落地微服務的選擇。

此時的Spring Cloud相關資料在國內仍是百裏挑一,沒有完整的中文書籍和教程能夠參考,只有官方的英文文檔以及網上零零散散的教程能夠閱讀。就是在這種狀況下,本書的做者方誌朋在公司技術選型以及後續的微服務落地過程當中,逐漸有了本身的積累和理解,同時在博客中連載了「史上最簡單的Spring Cloud教程」。此教程一出,就受到廣大程序員的歡迎,所以最終整理爲此書。

縱覽全書,文字清晰明瞭,經過理論結合實踐的方式介紹了Spring Cloud的每個組件的實踐,並解讀了部分源代碼。圖文並茂,語言樸實,不愧爲「簡單」之名。本書融合了做者實施微服務的一線經驗和心得,具體指導了Spring Cloud在落地方面的實踐,很是值得參考。

​《微服務分佈式架構開發實戰》

龔鵬rico 著

點擊封面購買紙書


本書並無過多的探討理論性的東西,基於現有成熟框架,圍繞實際項目中碰見的具體需求,以微服務分佈式架構的角度去逐一分解而且實現這些需求。掌握這些知識的讀者,徹底有能力快速搭建出可靠、高效、靈活的微服務分佈式架構。

​點擊圖片報名

今日話題

說說你對架構師的認識?截止時間4月15日17時,留言+轉發本活動到朋友圈,小編將選出3名讀者贈送異步新書一本。

延伸推薦

2018年2月新書

2018年1月重磅新書

小學生開始學Python,最接近AI的編程語言:安利一波Python書單

政策升溫:你們都在學大數據,一大波好書推薦

8本新書,送出一本你喜歡的

AI經典書單| 入門人工智能該讀哪些書?​​​

​長按二維碼,能夠關注咱們喲

天天與你分享IT好文。


在「異步圖書」後臺回覆「關注」,便可免費得到2000門在線視頻課程;推薦朋友關注根據提示獲取贈書連接,免費得異步圖書一本。趕忙來參加哦!

掃一掃上方二維碼,回覆「關注」參與活動!

點擊閱讀原文,購買《App架構師實踐指南》

閱讀原文

相關文章
相關標籤/搜索