成为一名Android开发者容易,但是想要成为一名优秀的Android开发者并从其他开发者中脱引而出就没那么容易了。要做到这一点,除了需要付出比常人更多的努力和激情外还要有强大的毅力和奉献精神。
如果把开发当成是游戏,那么我们每天都是在其中打怪升级,想要赢到最后,就需要点亮技能点。下面我给你提供了三十个技能点,可以看看你已经点亮了多少?将其全部点亮,可以说你就无敌了。
接着就让我们开始吧!
1. 对Android Framework有更深入的了解
这里讲的并不是要对Android Framework的文档介绍要有多少熟悉,而是真真切切的代码。很多开发者惧怕阅读Android源码,导致他们不知道底层的工作原理以及不同的部分是如何组织在一起工作的。
如果你想要提升你的开发水平的话,这一点很重要,不要害怕,尝试去接触源码吧。
推荐一本本人读过的《深入理解Android内核设计思想》,一本读得懂、用得上的书。
2. 保持方向,稳步前行
Android真的很庞大,不同于iOS,因为其开源的特性导致你根本无法在短时间内了解它的一切,你学的越多,你会发现你不懂的越多。作为一个初学者在这种情况下很容易迷失方向。
此时需要保持清醒,时刻记住自己目前真真要学习的。这里有一个技巧就是从你目前着手的项目一点点向外展开。
3. 阅读更多的代码
很多开发者不会花时间去阅读其他开发者写的代码,而是花很多时间写他们已经掌握的,这样的代码写再多也不会提升开发水平。你应该学会去阅读一些开源框架或应用的源码。最开始,可以先尝试每天阅读三十分钟,我想你会从中学到很多出乎你意料的东西。
4. 不要只局限于一门语言
这里说的语言不是法语,德语而是编程语言。你需要时刻了解行业中的变化,而不是局限于Android或者Java。
学习其他语言能显著提升你的开发技巧,比如目前比较瞩目的Kotlin,Android Studio所用的编译语言Groovy。另外就是不要只是花一个礼拜了解一下就完事了,你应该深入了解这么语言的特性,并将其加入到你的工作中来。
5. 学习Java设计模式
虽然我无法确定设计模式在你Android开发生涯中能起到多大作用,但我确信当设计模式可以给你项目的构建提供一个很好的解决方案。
只有当你学习了设计模式,才能在听到其他人讨论诸如Factory
,Decorator
的时候才能知道这些指的是什么。
6. 试着为开源做贡献
如果你为你的App写了一个有用的库,试着去将其开源。而这一过程你将有很多东西要学,这些所学的也能加快你成为一名成功的开发者。
如果你没有开源代码,那可以考虑为你喜欢的开源工程修复bug,充实文档或者做一些测试。
即使是很小的贡献也能帮助到这些开源项目持续发展。
7. 熟练使用AS
花更多的时间去了解Android Studio,因为它能做很多你想不到的工作。很多很酷很实用的功能和快捷键藏在其中等待你去发现。
把使用AS的新功能提升你的工作效率当作是一个乐趣,你会发现你的开发效率会大大提高。
8. 在你的应用中使用适当的架构
大多数时候,为了起初的开发效率我们会将所有的功能放在Activity或Fragment中,这样就会产生God Activity或者God Fragment,导致最后根本无法维护和测试这些神物。
为应用采用一个良好的架构是非常有必要的,在Android开发中常用的有MVP,MVVM,Redux等。求求你在你的应用中使用某一个你认为合适的架构吧,你会发现好的架构能让后期维护和测试都变得如此简单。
9. 编写规范的代码
这一点很容易被忽视掉,但它确其重要。规范的代码容易被阅读和后期维护。因为谁都不会想去修改一个没有注释,有十几个参数和上百行代码的方法。
请现在,立刻马上学习这些规范,为了你也为了其他开发者。
这里给一个参考。
10. 花点时间学习一下Android最佳实践
为了让你自己比其他开发者更具优势,并且构建出优秀和运行良好的程序,学习Android最佳实践也是必不可少的。
这里给一个参考
11. 利用空余时间听一些播客
这里不是让你去听《鬼吹灯》,《糗事播报》这类节目。而是在你上下班,或者在健身房等地方,如果你的大脑空闲下来了,可以收听一些Android方面的播客,以此来充实你的大脑,源源不断获取知识。
12. 不要过度设计
这种事情在我身上经常发生,有时候要做一个小功能可能要思考半天,考虑如何才能适配后期需求的变化。但其实这样的过度设计只是在浪费时间导致不必要的困扰。
选择一种你认为好的方法,立马去实现。后期如果需求改了,我们把相应方案调整便可。
13. 试着去了解和学习设计
很多时候我们都是百分百专注于代码的编写上,但如果你想成为一名完整的Android开发者,你需要花些时间学习和理解关于UI和UX的知识。
学习和理解的UI和UX的知识,会改变你编码时对app的开发,能更好的帮助你编写出符合标准的app。
14. 成为一个完美主义者
完美是一个主观看法,或许对我来说完美,对你来说却不尽如人意。尽管这样,在产品发布上,我们还是要尽量提供完美的版本。
努力做好这份工作,热衷于这份工作,做出完美的产品,长此以往你会成为一名成功的开发者。
15. 坚持是成功的关键
如果你想成为一名成功的开发者,坚持是关键。
花几天或几周去做一件事,然后弃之不管,这不会给你带来任何帮助。尝试给自己定制目标,并在接下来的几年里朝着这个目标前进。
万事开头不难,难的是坚持,只有坚持做一件事,才能做好,做成。
16. 步子迈小点,模块分细点
作为一个开发者,你需要把功能模块和问题分解成小且简单的独立部分。只有这样你才能轻松快速地理解和解决问题。
不要在接手到一个庞大复杂的项目时感到压力,细分模块,由点到面。
17. 始终有一个练手的工程
拥有一个练手工程可以很大程度上改变你的学习方式,如果你在Android中遇到新的问题,可以在你的练手工程中尝试解决。
假如你想要学习一个开源库,你要做的不是仅仅看几眼它的使用文档,而是应该在你的练手工程中去使用它们。这会让你对其有更深入的了解。
18. 测试你的应用
这个也是开发者比较欠缺的能力。因为这里所说的测试不仅仅是你做完一个功能,用手去点几下,看看是否能正常运行,而是指给你的应用做一套完成的测试。这里包括Java部分的单元测试和Android部分的功能测试。
当你给你的应用编写了一套完整的测试以后,每次添加新功能或修复bug就可以用跑整套测试的方式来避免出现回归问题。
19. 考虑一下TDD
虽然TDD(测试驱动开发)对于开发者来说是无比讨厌的,但这确实一种很好且高效的开发模式。
可以参考TDD的“红-绿-重构”这一思路进行开发。首先给将要实现的功能写出测试用例,此时跑测试肯定全是红,因为你还没有开始具体实现。接着一个一个去实现这些功能,直到所有测试跑过,全绿。接着细致优化和重构你的代码,然后循环这个过程,直到功能趋于稳定。
20. 尝试自动化
作为一个开发者,脚本能做到的尽量让脚本去做。比如应用的测试和版本发布。
虽然这些可能有专门的测试或者发布工程师去完成,但掌握一些技巧是可以减少很多重复的工作。
21. 使用响应式编程
如果想要提升你的Android开发技能,学习响应式编程是必不可少的,它能让你以完全不同的方式思考如何构建app。
这里推荐学习和使用RxJava
22. 使用Kotlin来开发Android程序
Kotlin在Android开发方面从一开始就得到了开发者广泛的喜爱和认可,更不用说现在已经被Google官方作为Android的开发语言了。使用Kotlin编写Android程序可以大大减少代码量,而且其诸多现代语言的特性也能让你感受到编程的乐趣。
23. 多与其他开发者交流
我们开发者大部分都比较内向,喜欢和电脑为伴。但我鼓励大家多和其他开发者交流,参加一些技术沙龙或者讨论会,这样有助于了解你这领域的最新动态和局势。
24. 熟练使用快捷方式
在使用Android Studio的时候尽量使用快捷方式来代替鼠标。在Android Studio中绝大部分的功能都可以通过快捷方式完成。
使用快捷方式可以提升你的工作效率并且加速工作流程,虽然记住众多的快捷方式比较困难,但来日方长,你一定能从中获益。
25. 尝试每周学习一个Android相关知识
前面说过Android的世界无比庞大,并且每天都会有新的事物产生。没有目的性的学习只会让你迷失在其中,所以我建议你可以给自己列一张表,将自己不会的,想要搞明白的东西列出来,每周去尝试解决其中的一项。
26. 在电脑上安装两个版本的Android Stduio
稳定版,用做工作上的日常开发。
beta版,用来了解IDE的性特性,以至于等以后需要用的时候不会手忙脚乱。
27. 对使用的第三方库做必要的审查
我们在工作中都不免用到第三方库,我们在日常开发中需要时刻注意第三方库版本的更新。对于那些不用的库尽可能快的移除掉。
另外一点,如果你仅仅用到了第三方库中的一小部分,那么可以尝试提取其中必要内容,减小代码冗余。
28. 学会重构老旧代码
不要妄图一次性重构一个老旧的遗留代码库,以免带来不必要的错误。
你要做的是重构目前需要的部分,然后在需要的时候慢慢扩展到其他部分。同时你可以为你需要重构的部分编写测试用例,在你完成重构后来检测是否有问题。
29. 始终在低端设备上开发和测试
虽然作为开发者的我们使用的设备一般会是比较高端甚至是旗舰机型,但记住如果你要开发一款稳定的产品,一定要在低端机上做开发和测试。只有这样你才会发现很多在高端机型上不会出现的问题。
30. 购买你能承担的最好的电脑
不要贪图便宜,买低端的电脑作为自己的开发工具,这样会让你的开发体验痛不欲生。
可以考虑下Mac,你会喜欢上它的稳定和易用。
以上就是我推荐的技能点了,希望这些技能点可以帮助你成为一名出色的Andorid开发者,在你的游戏中赢到最后。