一个Android 架构师的成长之路

前言

总所周知,当下流行的编程语言有Java、PHP、C、C++、Python、Go等。其中,稳坐榜首的仍然是Java编程语言,且在以面向对象思想占主导的应用开发中,Java每每成为其代名词。Java语言的背景强大,开发者众多,一直发展都不错。从广泛的企业的角度来看,存在的问题是:后台被认为是技术核心,客户端却被认为技术含量不高,甚至小企业会让后台人员顺便开发简单的客户端,或者让后台的架构师管理客户端几我的。事实上,客户端技术和后台技术的侧重点彻底不一样,连编程语言都不一样(Android使用Kotlin编程语言的逐渐普及)。另外,后台的人跟用户相对离得太远,而客户端是直接面向用户的,与产品人员沟通更直接。因此,我认为企业产品真的是为了给用户用,那么选客户端背景的人员去作移动架构师更好一点。前端

一个Android 架构师的成长之路

 

1、移动架构师职位介绍android

(1)移动架构师公认的职位描述是什么?git

事实上并无很是准确的职位描述。不过我能够尝试给出了一个:github

设计当前架构。包括新技术方案的制定或评审。面试

改进过去架构。根据业务的发展或者技术债务的缘由,重构当前技术方案而且推动实施。编程

前瞻将来架构。技术方案调研和分析,随时准备好对新技术的使用。小程序

推动技术方案实施。解决实施过程当中具体的技术问题。后端

技术分享和培训。推动技术交流和新技术的使用。微信小程序

人员的招聘。技术面试。设计模式

(2)移动架构师是否还要平常编码,若是须要,比例是多少?

虽然带有管理色彩,但仍然以技术为主。因此代码是必需要写的,架构师不写代码,就成管理了。写代码的比例应该至少是 40% 的工做时间以上。

(3)移动架构师的成长路线是什么样的?

能够先试着解决当前业务中的技术问题,而后再培养本身的技术前瞻性,为业务的将来储备技术。架构师立命的根本仍是技术,因此在移动开发技术上研究的事情都要尝试去作。另外,技术人员一般不善于表达,而架构师的不少工做(例如技术分享,培训,面试,推动技术方案实施)都是须要沟通工做的。另外优秀的移动架构师可以对业界都有所影响。因此,做为一个移动架构师,锻炼本身的表达能力也是必要的一条成长路线。

(5)移动架构师是否须要学习前端、后端开发技术?

这等于问要不要扩展技术“广”度,而架构师标签之一就是“广”。不过是看我的的精力可以达到多大的广度和深度了。

(6)移动架构师是否须要设计整个 C/S 架构?

这点却是夸张了,配合后台人员设计应该是能够的,总负责的话,挑战略大了一些。

(7)移动架构师如何进行团队沟通工做?

一、与CTO总监的合做。首先从思想上要认识到二者是利益彻底一致的。总监为架构师拓展上升空间,而架构师将总监的规划切实落地。保证足够的沟通,能够约定一个固定沟通机制,好比每2周一次,让双方在思想上保持同步和一致。架构师应该带着方案和CTO沟通,讲清楚A、B方案的优缺点。可让CTO根据从上层去考虑作决定,就算架构师本职的决策,也最好先取得CTO的承认。若是出现意见分歧,最好的方式是先搁置,等条件成熟了,极可能意见会趋于一致。若是不能等,只要CTO的意见不是太离谱,仍是按照CTO的意见执行比较好。若是有十足把握,认为本身的方案很好,那么也要获得CTO的许可和谅解,不然千万不要擅自去作,由于最后的锅不是你一我的能背的。

二、与其余部门的合做。产品部门通常不懂技术,架构师的做用就是帮他解决这个问题,这个很好理解。在理解了产品需求后,进行技术可行性分析。在不改变总体方案目标的前提下,从技术的角度,提出改善意见,修改设计,目的是方便实现。与后台架构师搞好合做,从后台到前台,整条链路太长,一我的管不过来,须要两人好好合做,共同把好技术关。拉拢好测试部门,要看成开发的朋友看待,是本身人。若是关系够好,考虑让测试人员在“自测”阶段提早介入,帮助开发人员提供测试案例。运营部门的关系稍微远了一点,关键点是及早介入。防止临上线了,加入一堆的运营需求,就可能影响产品投放时间了。总之与其余部门以合做为主,挣取及早沟通,将风险消灭在反生以前。

三、与团队成员的合做。移动开发团队人数很少,可是部门和开发语言多。有IOS,android,还有JS和Java网关。若是一个部门超过3我的,应该设置一个Team-Leader,进行受权实现间接管理。对于本身擅长的技术亲自去实现,和兄弟们一块儿战斗,深刻到团队中。思考团队提高和储备,应让中层人员在一线做战,高层人员做指导,初层人员打酱油学习。对于本身不擅长的技术,能够采用“结对编程”的方法,让两个开发者在一台电脑上开发,一个编写另外一个观察,程序基本是相同的,仍是可以理解和参与讨论的。与几个Leader,要重点在于沟通,在大方向上保证思想一致,给他们空间适量受权,并协助他们作出成绩。重点注意团队的正能量以及活跃的气氛,人不是机器,和谐的氛围比冰冷的制度和惩罚要好得多。记录团队的功绩和成果,提升团队成员集体荣誉感,将奋斗目标引导到“自我价值”上来。

2、Android架构师技术介绍

  • 架构与设计
  • 设计模式
  • 重构
  1. 网络编程框架
  2. TCP格式三次握手与四次挥手
  3. HttpClient
  4. HttpURLConnection
  5. Volley
  6. OkHttp
  7. Retrofit
  • UI架构模式
  1. MVC
  2. MVP
  3. MVVM

研发工具

集成开发环境

  • Android Studio
  • Sublime Text

版本控制系统

  • svn
  • git
  • gitlab
  • github
  • mercurial

调试工具

  • ADB
  • DDMS
  • Stetho
  • LeakCanary
  • ClassyShark
  • Postman
  • markman

CodeReview工具

  • Gerrit
  • Phabricator

构建工具

  • Gradle
  • Buck

效率工具

  • 番茄钟
  • Markdown
  • WakaTime
  • Focus Matrix
  • evernote
  • Pocket

移动安全

  • 代码和资源混淆
  • 反编译
  • 密钥管理
  • 安全编码
  • 应用加固

专项技术

  • App 瘦身
  • MultiDex
  • 插件化
  • 推送技术
  • Crash 统计
  • 函数式编程
  • 启动保护
  • 在线热修复
  • AOP
  • React Native
  • Hybrid
  • SDK化
  • 依赖注入

软技能

  • 知识管理
  1. 团队Wiki
  2. 团队论坛
  • 时间管理
  1. 四象限法则
  2. 帕累托法则
  3. 番茄工做法
  • 目标管理
  1. Smart 法则
  2. 思惟导图
  3. 甘特图
  • 项目管理
  1. 边界思惟
  2. 过程思惟(WBS)
  3. 风险思惟
  4. 干系人思惟
  5. 整合沟通
  • 团队管理
  1. 招聘面试
  2. 梯队培养
  3. 技术规划
  4. 团队规范
  • 我的管理
  1. 技术博客
  2. 技术分享
  3. 会议演讲
  4. 领导力
  5. 持续学习

周边技术

  • 产品交互设计
  • 后端技术
  • HTML5
  • iOS

移动测试

单元测试

  1. JUnit
  2. Robolectric
  3. Mockito

UI自动化测试

  1. Monkey
  2. MonkeyRunner
  3. UIAutomator
  4. Robotium
  5. Espresso
  6. Appium

持续集成

  1. Jenkins
  2. Travis CI
  3. fastlane

静态代码扫描

  1. CheckStyle
  2. FindBugs
  3. PMD
  4. Android Lint
  5. Infer

性能优化

  • 启动优化
  • 代码优化
  • 内存优化
  • 电量优化
  • 布局优化
  • 网络优化

编程语言

  • Java
  • C
  • C++
  • Javascript
  • Groovy
  • Kotlin

我给你们准备了一个明确的安卓架构师学习路线以及在文章最后准备了学习资料

  • JAVA语言进阶与Android相关技术内核
一个Android 架构师的成长之路

 

  • App开发框架知识体系(App亦对象)
一个Android 架构师的成长之路

 

  • Android前沿技术
一个Android 架构师的成长之路

 

  • Android App全方位性能调优
一个Android 架构师的成长之路

 

  • 微信小程序与Hybrid混合开发
一个Android 架构师的成长之路

 

  • 高级进阶必备篇
一个Android 架构师的成长之路

 

关注+转发,私信关键词 【资料】便可获取更多有关安卓开发的资料(面试资源与经验总结,BAT内推,高级UI、性能优化、架构师课程、NDK、混合式开发全方 面的 Android高级实践技术讲解以及在线答疑等。)!

一个Android 架构师的成长之路
相关文章
相关标签/搜索