你瞅着来气不?作为一名安卓技术总监每天有活儿我不干,我就瞎BB,就是玩儿!
Posted 陈京大帅比
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你瞅着来气不?作为一名安卓技术总监每天有活儿我不干,我就瞎BB,就是玩儿!相关的知识,希望对你有一定的参考价值。
当年多少次做梦都在想以后能不能做到那样的一个程度,可不可以自己不用干活在旁边指挥指挥就好,轻轻松松就拿钱,而且是超高那种。后来发现完全是两码事,如果我们不能在短时间内做调整,我敢保证累不死人。多人的开发班子,多条业务线,反正别人做不了的你都得上,关键是还有人给你挖坑。你不做没人做,你不抗没人抗。以下是个人的一些“套路”,团队人数不一样,公司性质不一样,都可能不一样。套路是这么个套路,仅供参考。
培训
有的时候放权,结果却让人吐血。如果事事都得自己来那么会很累,但是若不自己来心里总觉得不踏实。这个时候我们最好选择培养一到两个人,具体视团队成员而定。给他们洗脑打鸡血,把目前所有的经验和知识分享给他们,最好是要让他们能够超过我,能够取代我甚至可以让我滚蛋。
为什么不是所有人,就像西游记里面师徒四人一样,很多人都是沙和尚,别跟我讲什么价值观什么使命感什么以后,我就喜欢按时上班按时下班按时拿工资,福利可以分我其他什么都别跟我扯。
对于这种你要花很多的时间,他们都有这自己的“经验和习惯”,说什么都是一副“莫挨老子”的气势,短时间内根本没办法“洗脑”成功,但是团队里面少了他们也不行。所以项目不是很急的时候,面试一年的经验和三年的经验对于我来说没什么两样,需要看你的学习方式和态度,你对知识的追求,因为刚开始我也不需要你干什么。
为了提高效率和稳定团队成员,还需要抽出20%的工作时间来作培训和交流,作为码农你给我讲制度,讲惩罚,讲一大堆都代替不了我们一行行去写代码,最直接的方法就是让他们做的更快更好,若是能比ios开发周期短,程序更稳定,他们会非常高兴,当然这些需要知识和经验的积累。这些时间我们一般会做三件事情:任务完成情况,技术实现方案讨论,学习与讲座。
开发
只要是作为团队成员那么你就不应该离开代码和文档编写,而只做架构图或者干脆让别人来代替,且不说别人怎么看你,就单单拿系统来说,后面需要救火的时候别人下班走了,请问你怎么救。而作为系统的负责人,必须亲手领导参与建造,才能有足够的能力去担起这个责任。所以刚开始你必须有一半的时间来参与开发工作,所以上班的第一件事应该是把手机放进抽屉做到物理隔绝,然后打开IDE开始撸码。当然没必要什么都写:
1.设计搭建架构
这个是最重要的一步,而且很繁琐,不画设计图上来就写代码的技术员,越到后面越惨,而且惨得不行,当然如果你很喜欢缝缝补补,喜欢天天加班倒没什么,我就不信那么多东西你能全记在脑袋里,奇了怪。对于其他成员来说,架构在分工合作,提高质量,提高开发速度和舒缓开发者心情上面起了决定性的作用。
可以多关注代码架构,很多人喜欢关注运行时架构,当然运行时架构是不可少的。代码架构是更加稳定的设计方案,一旦发生一些小的需求变化,运行架构肯定会有变化,但是大的方向往往不会变化频繁,因此我们可以根据大的方向来组织代码,划分模块。所以这个不能乱,一旦乱了不管你怎么调整还是会问题百出。
2.难点关键开发
对于部分难以实现的代码我们还是得自己来,在一些中小型企业,如果这些让别人来做,到头来还是给自己找麻烦。质量底下的代码会造成故障和Bug,后面一旦出现问题也会消耗更多的时间成本,本来人手又紧后面还要到处救火,会导致天天加班而出不来项目。还有部分成员往往没那个能力,你让他去实现可能导致功能虽说实现了,但是可控性并不高,一旦需求稍有变动会出现各种问题,出问题没什么,关键是他根本不知道怎么解决。在大公司,团队成员普遍素质比较高,这种现象倒是鲜少出现,但是核心代码我们最好还是自己操刀。
3.各种救火
架构部分代码往往是最容易出现问题的代码,随着需求的不断改变有时需要调整,严重的还可能会出现Bug,有时还需要防止成员copy你的代码另起炉灶,当你改代码的时候要改多个地方也比较麻烦。团队其他成员写的代码也时常出现Bug,往往他自己不能解决这个时候你就得帮忙。当然找问题的过程本身也可以提高技术水平,关键是要让自己和团队的成员学会使用各种诊断工具,学习思考和分析问题。
管理和学习
1.代码审核
需要让团队认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发者对这个流程有抵触或者反感,这个目的就达不到。
在代码审查中如果发现问题,对于被发现者,不主张使用这个方式予以惩罚。软件开发中bug在所 难免,过度苛求本身有悖常理。更糟的是,如果造成参与者怕承担责任,影响积极性,代码审查就没有任何的价值和意义。
2.进度审核和任务分配
任务分配是个大问题,而且又是一个权势的工作,成员面对一个任务时,往往不能正确、合理地安排时间。如果出不来,会给你若干理由,比如很忙,造成任务延期或者加班,最后造成整个项目的延期。怎么避免这种情况不能让班子成员各搞各的,我们自己得有一套任务分解,任务描述和时间分配原则,风险管理和计划余地,首先是自己能够把事情做好,然后可以把他分享给团队成员。
3.面试和各种会议
准备一份有区分度的笔试题目,不靠谱的人多了去,自称多少多少年经验。但你要他写个倒计时往往都写不出来,这么个题目我们送走了很多人。老板不是花钱请我来和他们聊天的,所以我通常会问四个方面的内容,源码、设计模式、优化、NDK。对于应届毕业生,我往往倒不是特别关注技术,也不需要他目前能实现各种功能,很多东西我可以自己来可以写好让你调。所以我比较关心学习态度、上进心、听安排、别惹事,这方面HR往往比我们看得准。
部分会议我们可以抵制,能不去就不去。尤其是部门沟通会能躲就躲,那是扯淡者的天堂,测试、产品、设计比程序员能扯的多了去。如果还有一个功能等着你去写,你会很蛋疼。这个时候你可以派一个人去一下就好,回来让他告诉你发生了什么。
4.学习
学习一停我们基本就死了,把手机放抽屉也是为了让我们在闲下来的时间可以去学。而我一般选择多写文章,多参加技术沙龙多与别人交流,选择周末多看看别人的框架源码等等,反正我的状态大家基本了解,周六日晚都在给大家做直播分享。只有这样自己才能得到提升,项目才能做到可控,只有这样才能去影响团队成员而不是靠说,当然该说的还是要说。
尽管我们现在还没有做到那样的一个程度,但学会像一个技术总监一样去思考问题,积极乐观的心态非常重要,学习、思考、努力、利他,day day up!
路线和方法
在结尾处我希望分享一些android开发的学习路线及学习笔记给大家,这也是我这么些年工作中不断试错复盘得来的心得总结,面向有想法向Android中高级进阶的同学,有兴趣的同学,可以再花2分钟的时间往下看看。
- 架构师筑基必备技能
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
- 设计思想解读开源框架
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
- 360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
- Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析
- NDK模块开发(音视频系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
- Flutter学习进阶
2020 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
…
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
- Android相关源码解读
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
由以上完整学习笔记pdf如有需要,请体谅下师兄我归纳不易,点赞+评论 支持下我,然后点击这里免费自取!
以上是关于你瞅着来气不?作为一名安卓技术总监每天有活儿我不干,我就瞎BB,就是玩儿!的主要内容,如果未能解决你的问题,请参考以下文章