Android性能优化入门与实战
上QQ阅读APP看书,第一时间看更新

bt2-L 1.2 高级开发者需要具备的能力

高级开发者一般指能够独当一面的开发者。他应对日常需求在Android平台上的实现方式均有所了解,能够对一些复杂的需求进行合理的设计和拆解,同时能够兼顾扩展性和性能。此外,这也要求其在项目协作方面有比较强的能力,可以积极组织协调各个职能部门的同事,推进项目落地。高级开发者一般需要3~5年工作经验。

高级开发者的判断标准如下。

有比较多的项目实践经验。

能够独立处理比较复杂的项目需求,合理地将其拆解并实现。

实现需求的同时注重效率和项目架构。

能够指导团队内的实习生和初中级开发者。

能够成为项目某个模块的负责人,评估相关业务需求的合理性和迭代规划。

高级开发者需要具备如下技术能力。

掌握Android Framework的常见原理和具体工作,比如事件循环机制、Activity/Fragment启动流程、生命周期、布局的绘制流程、事件分发等。

掌握Jetpack常用组件的实现原理和适用场景。

熟悉跨进程通信的基本使用,了解多进程的使用场景。

掌握常用的设计模式,了解常见的架构模式的优缺点。

熟悉常用的第三方框架的原理和设计思想,能够根据场景选择合适的框架。

熟悉Android App构建过程,了解常用的字节码处理三方库,能够实现通用的编译时修改插件。

了解常用的性能优化工具,有性能优化意识。

高级阶段的Android开发者一般是团队里的核心成员,需要具备丰富的实战经验, 除了会用Android的相关技术,还要明白不同技术的优缺点和使用场景。另外由于其有独立负责的模块,在开发任务繁重的时候,可能会有初中级开发者一起协作,那高级开发者就需要承担起指导的责任,合理地拆解和分配需求,带领伙伴既快又好地实现项目需求。

一般公司在招聘高级开发者时,更偏向于有复杂项目工作经验的人,“复杂”的判断标准如下。

业务复杂,涉及技术多,比如音视频、Hybrid(混合模式)相关。

日活高,比如百万、千万甚至更高。

开发时间长,团队成员多。

面试时除了项目复杂度,个人在其中承担的角色也应非常重要。比如有独立负责某个复杂模块或者开发底层组件经验的人,一定比只处理开发列表页等简单业务的人有优势。

一般公司在招聘高级开发者时,会通过一个业务需求使用的技术,引出实现细节、底层原理进行考察,比如从网络框架一路问到三次握手。所以如果你是初中级Android开发者并想要晋升,或者是高级开发者并想要变得更强,可以从这些方面深入学习,做到对项目里使用到的技术,深入理解其原理和设计思想,同时能将其和计算机基础结合起来。