文档章节

一个Android 架构师的成长之路

o
 osc_g8254g7s
发布于 2019/08/19 19:46
字数 2292
阅读 16
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

前言

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

一个Android 架构师的成长之路

 

一、移动架构师职位介绍

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

事实上并没有非常准确的职位描述。不过我可以尝试给出了一个:

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

改进过去架构。根据业务的发展或者技术债务的原因,重构当前技术方案并且推进实施。

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

推进技术方案实施。解决实施过程中具体的技术问题。

技术分享和培训。推进技术交流和新技术的使用。

人员的招聘。技术面试。

(2)移动架构师是否还要日常编码,如果需要,比例是多少?

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

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

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

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

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

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

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

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

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

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

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

二、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 架构师的成长之路
o
粉丝 0
博文 499
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
617
1
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.2K
1
跨平台手机应用开发--Gideros

Gideros 可以让你轻松快速创建 iOS 和 Android 应用,提供用户友好的集成开发环境,内建模拟器对应用进行不同屏幕大小、分辨率下的测试,最大的优点是可即时修改代码即时进行测试,无需编译安...

匿名
2013/02/19
2.7K
0
Android3D应用与游戏开发框架--JQGL

JQGL 是一款针对Android设备上3D应用、游戏的开发框架。 核心功能是OpenGL-ES的使用框架,相对于大部分开发者而已,OpenGL是陌生的,没有专门研究无法进行相关的开发。 本框架针对于Android...

Jping
2013/02/21
1.6K
0
Share This

这是一个 iOS 上的分享工具,可轻松在项目中嵌入使用。每个分享的选项可独立调用。在 iOS 5 上使用 ActionSheet 显示,而 iOS 6 上使用全新的 Activity 视图控制器来显示。 iOS 6+: iOS 5:...

匿名
2013/03/03
1.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringMVC 静态资源CSS,JS访问不了 解决方法

SpringMVC 静态资源CSS,JS访问不了 解决方法 参考文章: (1)SpringMVC 静态资源CSS,JS访问不了 解决方法 (2)https://www.cnblogs.com/peiyangjun/p/8194687.html 备忘一下。...

osc_tylqml9v
22分钟前
34
0
如何快速处理线上故障

点击上方☝ Java编程技术乐园,轻松关注! 及时获取有趣有料的技术文章 做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 来源:https://dwz.cn/5AabFxT8 线上故障...

阿飞云
2019/07/12
12
0
老大批评我不要为了“分库分表”而“分库分表”

来自:rrd.me/gEJnq 当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。 数据库瓶颈 不管是 IO 瓶颈还是 CPU 瓶颈,...

倪升武
05/05
16
0
网络基础汇总

网络基础 进阶 · 那些你必须搞懂的网络基础 为什么这么设计系列 为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,作者在这个系列的每一篇文章中都会提出一...

osc_uvparld2
23分钟前
0
0
巨额解禁后股东扎堆套现离场,三只松鼠还能“乘风破浪”吗?

巨额解禁后股东扎堆套现离场,三只松鼠还能“乘风破浪”吗? 2019年7月12日三只松鼠(SZ300783)在深交所创业板上市,被媒体称为“国民零食第一股”。 一年后的2020年7月13日三只松鼠1.86亿股...

osc_caajiue7
25分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部