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

举报
xenia 发表于 2019/10/12 16:37:36 2019/10/12
【摘要】 文章主要内容:什么是 app 架构师这本书主要内容读完感受什么是 App 架构师成为“架构师”是许多程序员的梦想,当然也包括我,在工作的几年里,我见过很多架构师,他们在设计某个大型系统时具备很大的话语权,可以说开发前的架构设计、开发时的技术选型、开发中的规范和性能等,他们都有权来决定。那什么是架构师呢?根据维基百科对架构师的定义:系统架构师(System Architect,简称SA或SAr...

文章主要内容:

  • 什么是 app 架构师

  • 这本书主要内容

  • 读完感受

什么是 App 架构师

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

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

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

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

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

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

  1. 选型规划

  2. 架构设计

  3. 技术攻关

  4. 沟通协调

  5. 疑难攻略等

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

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

这本书的主要内容

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

这本书主要分为四部分:

  1. 基础篇

  2. 核心篇

  3. 产品篇

  4. 拓展篇

基础篇

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

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

主要内容如下:

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

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

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

App 开发 SDK 基础语法和工具

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

  • iOS 对应的基础知识

  • 开源库的选择和使用

核心篇

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

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

主要内容如下:

  1. 常用模块的设计思路

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

App 架构的基本功

  • 组件和模块

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

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

App 质量和稳定

  • 衡量指标、处理手段

  • 测试相关知识点介绍

App 性能优化

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

App 安全逆向

  • 逆向的基本介绍

  • 混淆和加固的原理

  • Proguard 配置详细例子

产品篇

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

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

拓展篇

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

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

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

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

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

读完感受

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

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

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

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


本文转载自异步社区

原文链接:https://www.epubit.com/articleDetails?id=Nebc855ec-fa7a-4ccb-bc77-f2d646bbd64e


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。