Android架构师需要具备的能力
1.需要具备的能力
主:技术深度、技术广度、动手能力、经验丰富。
辅:领导力、沟通能力、洞察与前瞻、赋能业务。
2.需要具备的技术栈
3.需要考虑的事情

(1)研发效率
-
多人多团队协作:解耦/模块间相互独立/单独仓库/jar/aar依赖
-
多人多团队协作:复杂度控制在组件内部,对外“简单可依赖”
-
复用:为矩阵产品输出轮子
-
编译速度:组件单独编译,maven私服加速,构建加速
(2)计算选型的技巧
-
语言:Java+Kotlin
-
架构模式:MVP/MVVM
-
工程结构:模块化/组件化/容器化
-
混合架构:Native + Flutter/RN + H5
-
网络:封装统一的网络层接口,不直接依赖网络库
-
持久化:File + SharedPreferences + SQLite/Room
(3)数据层设计
网络层
-
RESTful风格
-
提供统一的API接口
-
支持底层网络框架的切换,并对上层业务无感
本地数据
-
提供ORM数据操作框架减少对SQLite的直接操作
-
提供统一的数据缓存框架
(4)容灾能力
-
监控与预警
-
动态发布
-
热修复
开发支持工具
开发规约
-
代码规约
-
CodeStyle
-
CodeReview
DebugTool
自动构建与持续集成
架构大图
底层基础库
-
组件库
-
工具库
业务层设计
工程结构设计

(1)如何做好项目的技术选型

(2)仰望星空与脚踏实地
仰望星空 -- 技术与产品发展
脚踏实地 -- 业务与技术的匹配与融合
(3)业务重点与技术重点
(4)技术选型首先要考虑的是业务是什么,技术如何服务于业务,赋能业务
自己商业/业务的重点就是技术重点
核心技术自检,避免关键技术依赖
(5)跟风与寻找适合自己的
将技术和我们业务进行结合,根据团队的时机情况选择是和自己的
(6)科学与大数据
使用科学的手段,结合大数据进行技术选型
The Hype Cycle(技术成熟度曲线) (https://en.wikipedia.org/wiki/Hype_cycle)


创新触发期:商业可行性尚未证实
膨胀高峰期:
泡沫破灭期:
启蒙爬升期:更多的案例具体化,广泛被大众了解;是一个不错的接入一项新技术的阶段(如何判断?)
生产力平台期:市场适用性和相关性正在得到回报
Google 趋势 (https://trends.google.com/trends/explore?q=flutter,react%20native,Xamarin)
Github Start 趋势 (https://github.com/)
(7)技术选型取舍之道
选型的核心在于取舍,取舍也是体现一个架构师技术视野和综合判断力的关键因素
投入成本上的取舍:技术方面需要投入的时间成本和人力成本
技术特性取舍:技术选型 + 定制开发 (没有任何一个技术选型是完美的,取长补短选型技术的优势 + 自身技术的优势)
技术管理的取舍:在技术选型时,维护团队的稳定性、技术产品的稳定性等因素的重要性要远大于较低的迁移成本的重要性
浙公网安备 33010602011771号