大家好我是张拭心,最近读了本书,书名比较厉害《App架构师实践指南》,读完还是有一定收获的,记录分享给大家。


  • 什么是 app 架构师

  • 这本书主要内容

  • 读完感受

什么是 App 架构师

成为“架构师”是许多程序员的梦想,当然也包括我,在工作的几年里,我见过很多架构师,他们在设计某个大型系统时具备很大的话语权,可以说开发前的架构设计、开发时的技术选型、开发中的规范和性能等,他们都有权来决定。

那什么是架构师呢?根据维基百科对架构师的定义:

系统架构师(System Architect,简称SA或SAr),是在信息系统研发中,负责依据需求来确定主要的技术选择、设计系统的主体框架结构,并负责搭建实施的人。他们确立系统的主体架构和实现方向,并负责指导软件工程师等开发人员的编码开发工作。

可以看到,如果说普通程序员是搬砖工,那架构师就是工程设计师,他的责任就是解决软件系统复杂性带来的问题。

一般我们说的架构师主要是指后台架构,但由于移动互联网技术的发展,手机应用功能越来越多,项目越来越复杂,稍微知名些的 App 开发团队就有十几个人,在这种情况下,很多公司设置了 Android 架构师、iOS 架构师一职位(统称为 App 架构师)。

App 架构师的核心职责包括:

  1. 选型规划

  2. 架构设计

  3. 技术攻关

  4. 沟通协调

  5. 疑难攻略等

这些对架构师来说应该都是通用的。对效率、性能的追求,我认为是架构师最崇高的目标。

现在市面上针对 Android/iOS 开发的基础、进阶知识书有不少,但还几乎没有一本书探讨关于如何成为 APP 架构师的。看到这本《App架构师实践指南》后,我很兴奋,第一时间阅读了一下,这里记录一下主要内容和读完感受。

这本书的主要内容

这本 《App架构师实践指南》是由前阿里资深软件工程师/图像算法工程师 SkySeraph 所著,通读全文后,可以读得出作者在 Android iOS 方面的技术功力以及在架构设计和管理方面的能力。

这本书主要分为四部分:

  1. 基础篇

  2. 核心篇

  3. 产品篇

  4. 拓展篇

基础篇

程序员如何成长为架构师?App 开发工程师需要具备什么基础知识?第一部分对这些进行了介绍。

基础篇主要介绍了架构师的职责以及成为架构的路线,然后对比 Android 和 iOS 给出了开发的基础知识和常用工具,Android 部分我比较熟悉,这部分读下来主要是了解了开发 iOS 需要具备的能力和工具如何选择,后面如果考虑写 iOS 应用时应该有帮助。

主要内容如下:

1.从程序员成为架构师的基本路线

  • 功能、安全、性能、稳定,架构是一种折中

  • 资深开发需要技术的广度和深度,架构师需要技术和业务并重

2.App 开发 SDK 基础语法和工具

  • 这节介绍了 Android 开发的一些核心基础,包括:继承封装多态、内部类、进程线程、反射注解泛型等

  • iOS 对应的基础知识

  • 开源库的选择和使用

核心篇

作为架构师,只完成产品需求是远远不够的,需要用方便拓展的模式设计项目,同时也要关心应用的稳定性,更要对 App 测试相关的知识有所了解,另外安全方面的问题也必须关注。

第二篇核心篇是整本书的精华部分,除了日常开发的知识以外,更是对我们经常忽略的架构模式、应用质量和稳定性监控处理、测试相关知识做了介绍,读完后对平时测试开发做的事有了个大概了解;此外还对 App 的性能优化进行了多方面介绍,其中几个部分除了工具还讲解了背后的原理,解答了我平时的几个疑惑;然后还介绍了安全逆向的一些知识;最后对一些热门知识进行了简单的介绍。

主要内容如下:

1.常用模块的设计思路

  • 基础组件、必备的基础业务模块如何设计

2.App 架构的基本功

  • 组件和模块

  • UML 基本功、设计模式概览

  • 接口设计、常见架构模式等

3.App 质量和稳定

  • 衡量指标、处理手段

  • 测试相关知识点介绍

4.App 性能优化

  • 硬件、UI、CPU、内存、网络、安装包体积、启动优化

5.App 安全逆向

  • 逆向的基本介绍

  • 混淆和加固的原理

  • Proguard 配置详细例子

产品篇

要进阶不能只是简单地写代码,我们要以做产品的心态去编码,常思考技术以外的东西。

第三部分产品篇对 App 的项目管理、产品思路、设计理念和推广运营给了基本介绍,然后还分享了作者如何维护团队的高效,包括编码规范、敏捷 Scrum 相关等知识。

拓展篇

最后这部分比较短,主要是分享了作者对架构师思维的理解。

架构思维:以产品和业务为驱动的顶层解决问题的思维,需要同时考虑产品、技术和人三重关系。

架构师经常做的是“分”和“合”,即所谓的系统拆分和重新组合,这要求他的综合能力要很高,需要同时具备思维的高度和深度:

  1. 具备技术思维的广度和深度,涉猎多领域时能够有足够的技术前瞻思维

  2. 具备沟通协调能力,更懂得平衡

读完感受

这本 App 架构师的学习指南书,除了介绍具体技术层面的知识,更多是技术高度、技术视野以及技术人生的思考。

正如文中提到的“关键词学习法”一样,这本书给我最大的帮助是提供了成为架构师需要学习的一些基础知识点体系,虽然因为篇幅限制很多细节没有描述清楚,但经过阅读我算是有了基本认识,书中提供的“关键技术点”和参考学习资料方便我继续深入研究。

需要注意的是,这本书的知识点是成为 App 架构师的一些基础,但还有许多架构师需要掌握的技术知识点没有涉及到,比如各种第三方框架的介绍和对比、插件化和组件化的详细内容,安卓 framework 相关知识,JNI NDK 相关内容,这些知识据我所知也是成为架构师需要掌握的。

一句话描述下这本书:

这本《App架构师实践指南》适合作为有意愿成为 App 架构师的程序员查漏补缺的参考书。整本书涉及的知识点还是不少的,读完可以确认下自己的基础能力有哪些不足,掌握了这些基础,再继续学习我刚才提到的内容会比较顺利。


推荐阅读

不只是安卓

跳槽需要内推?这里有一大波机会

黑科技!提升进程优先级的一种新姿势

读了本号称“App架构师实践指南”的书相关推荐

  1. 《App架构师实践指南》:移动开发的进阶指南

    文章主要内容: 什么是 app 架构师 这本书主要内容 读完感受 什么是 App 架构师 成为"架构师"是许多程序员的梦想,当然也包括我,在工作的几年里,我见过很多架构师,他们在设 ...

  2. Android屏幕适配很难嘛其实也就那么回事,app架构师实践指南pdf

    程序员的劫 最近,又被程序员年龄的事情刷屏了.37岁被公司优化,找工作几个月都没有很好的归属,所谓的小公司还看不上.等等类似的话题变成了程序员的吐槽固定标题,无论是程序员,还是其他行业人员,都可以就这 ...

  3. App架构师实践指南四之性能优化一

    1.性能维度 常见用来衡量App性能的维度如图9-1所示.其中,性能指标包括电池(电量/温度).流量(上行流量/下行流量等).CPU(平均/最大/最小).内存(平均/最大/最小).帧率(平均/最高/最 ...

  4. 《一线架构师实践指南》—— 读后总结

    之前总觉得架构是一件很高大上的工作,跟普通的编码设计不太一样.前一段实践,自己也尝试做过架构的工作,可惜经验不足导致架构非常混乱.这里读完这本书,大体上对架构的工作有所了解,也稍微摸清了些门道. 我理 ...

  5. App架构师成长路线

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识​ ​ ​ ​参与文末话题讨论,每日赠送异步图书 --异步小编 架构师,软件技术领域一个高大上的名词,业界有言"人人 ...

  6. 如何构建 FinTech 科学反欺诈体系|架构师实践日

    微众圈 > 微信资讯 > 科技 > 文章 如何构建 FinTech 科学反欺诈体系|架构师实践日 摘自公众号:七牛云发布时间:2017-4-11 21:28:33 FinTech,即 ...

  7. 【架构师实践课】微服务如何拆分?大型微服务项目从何下手?

    继上期[架构师实践课]单体和微服务怎么选?单体到微服务怎么转?之后,万老师为我们带来了微服务系统设计专题的第二个议题:微服务设计痛点. 以下内容根据实践课整理. 微服务如何拆分 首先想和大家分享的,就 ...

  8. 转:架构师实践日|亿级短视频应用秒拍的架构实践

    转自: http://mp.weixin.qq.com/s?__biz=MjM5NzAwNDI4Mg==&mid=2652190131&idx=2&sn=6672422564e ...

  9. 架构师实践日 · 6.30 杭州站 | 视觉 AI 技术如何助力行业提升?来西子湖畔与业内大咖面对面交流!

    伴随内容形式的变迁(文字 → 图片 → 视频),目前视觉 AI 技术不仅被应用到传统领域的升级革新中,还作为最重要的基础人工智能技术渗透到前沿技术的创新研究中. 七牛架构师实践日第二十九期将以视觉 A ...

最新文章

  1. 08_传智播客iOS视频教程_点语法
  2. 树莓派安装screen保证SSH断开 任务不中断
  3. C++中的三种继承public,protected,private(转)
  4. 2017.4.17------软件测试的艺术+整理以前的摘记
  5. ServiceMesh最火项目:Istio架构解析
  6. python在办公上的应用_python自动化办公:玩转word之样式秘笈
  7. 方舟game ini生成器_十一月 XGP 新增双平台游戏:《方舟:生产进化》等
  8. (转)Windows Form Application 读取并修改App.config文件
  9. 拓端tecdat|R语言对股票风险“溃疡指数”( Ulcer Index)曲面图可视化
  10. 结构体 内存对齐 keil STM32
  11. 嵌入式程序和FW的区别
  12. C语言种根号怎么表示 比如(1-x)的二分之一次方
  13. 0x80070057复制从服务器复制文件,0x80070057各种错误解决方法教程
  14. 什么是One Data体系?阿里数据中台解读
  15. 安卓手机查看连接到热点设备的ip地址
  16. 待定系数法求二阶常系数非齐次线性方程特解
  17. Java移位运算符不外乎就这三种
  18. sed正则表达式替换字符方法
  19. 『树形DP』[IOI2005]Riv 河流
  20. 网管笔记之良好习惯的养成

热门文章

  1. Hexo写文章基本操作
  2. EcoFuzz: Adaptive Energy-Saving Greybox Fuzzing as a Variant of the Adversarial Multi-Armed Bandit
  3. android OTA 简介
  4. prophet路由详解 机会网络 DTN网络 ONE模拟器
  5. javascript入门_Netlify入门:部署JavaScript应用程序的最简单方法
  6. 智能开关家族中人体红外感应开关的应用领域
  7. 推荐一个开源的任务管理工具
  8. 使用ESPRIT,LS-ESPRIT,Music以及Root-Music四种算法进行角度估计matlab仿真
  9. Navicat 连接 Mysql 所有报错解决方案
  10. Exchange 20002003书籍教程下载和资源总汇