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架构师实践指南》

阅读原文

相关文章
相关标签/搜索