#Android资深学习路线
资深工程师一般强调的是主力设计与开发,承担技术难点攻坚和新技术调研;深度参与产品需求讨论和设计。 同时也对所做产品的业务理解比较深刻。对于主导架构、模块优化相关工作是重点。同时能够指导新人,同时在多线程编程、Android源码上要非常熟悉。
三、多线程编程篇
多线程编程是资深工程师定位和排查多线程问题非常重要的能力。
常见的多线程问题,如死锁,杂乱无章随便开的线程资源消耗,线程时序问题,卡住,循环调用问题。
分别从锁的使用,线程切换,并发容器等几个方面介绍
1、回顾线程的基础知识
https://www.cnblogs.com/pony1223/p/9221328.html
2、synchronized
https://www.cnblogs.com/pony1223/p/9221348.html
3、volatile关键字
https://www.cnblogs.com/pony1223/p/9221355.html
4、Java传统线程技术、传统定时器Timer
https://www.cnblogs.com/pony1223/p/9249930.html
5、线程范围内共享变量&ThreadLocal
https://www.cnblogs.com/pony1223/p/9256224.html
6、原子性操作类的应用
https://www.cnblogs.com/pony1223/p/9266398.html
7、线程并发库的应用_线程池
https://www.cnblogs.com/pony1223/p/9286519.html
8、Callable与Future的应用
https://www.cnblogs.com/pony1223/p/9286547.html
9、多线程中锁技术
https://www.cnblogs.com/pony1223/p/9287015.html
https://www.cnblogs.com/tison/p/8283233.html (推荐原因:对多种锁进行汇总对比)
10、Semaphere同步信号量
https://www.cnblogs.com/pony1223/p/9303009.html
11、同步辅助类CyclicBarrier与CountDownLatch
https://www.cnblogs.com/pony1223/p/9303016.html
12、同步工具类Exchanger
https://www.cnblogs.com/pony1223/p/9315885.html
13、阻塞队列BlockingQueue
https://www.cnblogs.com/pony1223/p/9315893.html
14、并发集合容器类
https://www.cnblogs.com/pony1223/p/9315920.html
15、线程生命周期和线程同步
https://www.cnblogs.com/tison/p/8266718.html
四、技术规范制定,技术文档篇
成熟的团队,都会建议文档机制,进行沉淀,无论是有人离职,还是新人入职,都可以快速保证岗位正常交接。不会因为人事变动,
导致项目玩不转。技术规范主要从编码规范,技术文档主要从一篇设计方案文档、问题总结文档、版本封版总结文档、测试文档、工具文档、等方面。
编码规范:
C++:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
Android:http://source.android.com/source/code-style.html
Java:https://files-cdn.cnblogs.com/files/han-1034683568/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%E7%BB%88%E6%9E%81%E7%89%88v1.3.0.pdf
方案设计方案文档:包括类图关系、主要接口、内存模型,线程关系,时序图,方案优缺点,业务场景
问题总结文档:包括问题背景,问题原因,问题影响范围,问题解决方案,下次出现类似问题,规避手段和方法。
版本封版总结文档:包括版本时间点,需求点,出现的问题(无论是流程上还是个人上),每个人的各自封板总结,bug数量(分析哪些可以避免的,哪些是合理的bug)
测试文档:包括测试功能点,测试工具,测试数据报告,测试场景,测试版本,输出结论,性能测试报告(各种率,成功率,崩溃率),功能测试报告(bug数,解决bug平均时间)
工具文档:包括开发过程中比较高效的工具,汇总到一起,提高大家效率。
五、难点攻坚和新技术调研篇
难点攻坚,一般设立专项来解决,比如xx慢,xx率低,首先是要梳理链路,找出各个环节影响的原因。然后挨个优化。往往查原因比找解决方案要难很多。无论是通过请教同事,还是网上查资料,方向第一不能走偏,不然就是花了时间,绕了半天,还要被领导吊。
新技术调研篇:这个到时补充个我调研新技术的PPT,给大家参考下,这个看个人习惯,但是主要东西要展现
- 首先它是什么
- 能对我们的产品带来什么收益
- 和过去的技术相比,优缺点
- 迁移成本,学习成本
- 学习地址
- 基础流程是怎样?解决了关键的痛点是什么?
网友评论