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

简介:

​​​文章主要内容:

什么是 app 架构师

这本书主要内容

读完感受

什么是 App 架构师

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

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

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

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

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

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

选型规划

架构设计

技术攻关

沟通协调

疑难攻略等

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

现在市面上针对 Android/iOS 开发的基础、进阶知识书有不少,但还几乎没有一本书探讨关于如何成为 APP 架构师的。因此看到这本书出版后我很兴奋,第一时间阅读了一下,读完后写下这篇记录总结。

这本书的主要内容

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

这本书主要分为四部分:

基础篇

核心篇

产品篇

拓展篇

基础篇

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

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

主要内容如下:



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

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



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

iOS 对应的基础知识

开源库的选择和使用

核心篇

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

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

主要内容如下:

常用模块的设计思路

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

App 架构的基本功

组件和模块

UML 基本功、设计模式概览

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

App 质量和稳定

衡量指标、处理手段

测试相关知识点介绍

App 性能优化

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

App 安全逆向

逆向的基本介绍

混淆和加固的原理

Proguard 配置详细例子

产品篇

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

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

拓展篇

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

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

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

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

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

读完感受

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

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

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

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

9ccc0ca9ly1frnnueu3ukj206t07wmx7.jpg

《App架构师实践指南 

  SkySeraph 潘旭玲 著

点此链接购买纸书


一本讲解从程序员转变为架构师需要了解的技能和思想,明确地给程序员指引了移动架构师成长的路线,是想成为架构师的程序员实用指南。

全面介绍了在移动应用开发的架构设计和性能优化方面的知识,是架构师的必备书籍 。讲述了移动应用架构师需要了解的技能、思想等整体的发展方向,是移动架构师成长的路线图。

读者不仅可以学习到移动应用的开发技术,更能收获到在实战项目中会用到的各种工程化的知识,是架构师的学习宝典 。

9ccc0ca9ly1frnnthxr0xg20hs01pt93.gif

推荐阅读

2018年5月新书书单(文末福利)

2018年4月新书书单

异步图书最全Python书单

一份程序员必备的算法书单

第一本Python神经网络编程图书

9ccc0ca9ly1frnnr6rnvyj209k09k74a.jpg

​长按二维码,可以关注我们哟

每天与你分享IT好文。

在“异步图书”后台回复“关注”,即可免费获得2000门在线视频课程;推荐朋友关注根据提示获取赠书链接,免费得异步e读版图书一本。赶紧来参加哦!


本文转自 爱学习的张拭心   异步图书     

点击阅读原文,查看更多内容

阅读原文

相关文章
|
5月前
|
存储
SwiftUI动画进阶,仿购票平台App行程目的地互换动效
SwiftUI动画进阶,仿购票平台App行程目的地互换动效
45 0
|
JSON 测试技术 Android开发
|
JSON 测试技术 Android开发
干货|app自动化测试之Capability 使用进阶
Capability 是一组键值对的集合(比如:"platformName": "Android")。Capability 主要用于通知 Appium 服务端建立 Session 需要的信息。客户端使用特定语言生成 Capabilities,最终会以 JSON 对象的形式发送给 Appium 服务端。 ## Appium底层架构 ![](https://ceshiren.com/uploa
|
JSON 架构师 测试技术
干货|app自动化测试之Capability 使用进阶
Capability 是一组键值对的集合(比如:"platformName": "Android")。Capability 主要用于通知 Appium 服务端建立 Session 需要的信息。客户端使用特定语言生成 Capabilities,最终会以 JSON 对象的形式发送给 Appium 服务端。 ## Appium底层架构 ![](https://ceshiren.com/uploa
|
JSON 测试技术 Android开发
干货|app自动化测试之Capability 使用进阶
干货|app自动化测试之Capability 使用进阶
|
JSON 架构师 测试技术
干货|app自动化测试之Capability 使用进阶
Capability 是一组键值对的集合(比如:"platformName": "Android")。Capability 主要用于通知 Appium 服务端建立 Session 需要的信息。客户端使用特定语言生成 Capabilities,最终会以 JSON 对象的形式发送给 Appium 服务端。 ## Appium底层架构 ![](https://ceshiren.com/uploa
|
Java jenkins 持续交付
【我的Android进阶之旅】解决Center OS 64位系统编译Android APP报错error=2和finished with non-zero exit value 127
一、错误描述 1、问题 java.io.IOException: error=2, 没有那个文件或目录 今天在刚重新搭建好的64位的Center OS上安装好了Android SDK,Jenkins,Git等一系列用于持续集成的环境之后,准备编译下项目试一试,然后Jenkins编译失败,错误如下所示: Caused by: java.
1936 0
|
缓存 Android开发
我的Android进阶之旅------>关于使用Android Studio替换App的launcher图标之后仍然显示默认的ic_launcher图标的解决方法
前言 最近做了一个App,之前开发该App的时候一直以来都是默认的launcher图标启动的, 今天美工换了一个App的launcher 图标,因此在Android Studio中将默认的lancher图标替换成美工的图标,运行到真机后,发现一直没有替换成功。
2080 0

热门文章

最新文章