我无法给出一个成为成功开发者的捷径,但是如果你愿意付出汗水与内心的话,定会如愿以偿。
关于如何成为更好的Android开发者,应你们的要求这里是根据自身经验得出的一些精简的专业性建议。所以如果你决定入坑Android开发或者已经做了Android开发一段时间,那么你找对地方了。
所以废话不多说,让我们开始吧。
1. 进一步熟悉Android框架内部
我不是说熟悉其文档,而是指框架代码。许多开发者害怕去深入Android框架内部,了解其工作原理以及各个部分是如何相互配合的。
如果你想在Android平台更上一层楼,大胆的接触Android SDK的内部,和它成为朋友。
2. 克服错失恐惧症
Android很大,非常的大。你不可能在一两个月内就从头到尾学一遍。学的越多,会发现更多的新东西需要学习。作为一个初学者,总是担心自己学漏了什么是非常正常的。
但是要克服这种担忧,学习自己目前开发的app所需要的就够了,然后慢慢的开拓自己的视野。
3. 开始阅读更多代码
许多开发者不愿意抽时间去阅读别人的代码,只把大部分时间花在写自己已经知道的东西上面。
但是那样不会帮助你成长,也不会增长你的知识。你应该开始阅读其它的开源app和开源库的代码。每天阅读30分钟的代码是一个好的开始。你会惊奇的发现原来还有这么多你不知道的东西。
提示: 可以从这些最佳的开源app开始。
4. 考虑学习更多的语言
我不是叫你去学西班牙语或者中文,而是学习一门新的编程语言。你应该跟上这个行业更新的步伐而不是一辈子局限于Android。
这将开阔你的视野并帮助你大幅提高Android开发技术。下决心一年至少学习一门新的编程语言,但是不要只花一周时间学个大概就丢掉不管了,而是深入研究。
提示:阅读 这篇 超赞的文章可以帮助你做出更好的决定。(剧透-答案是Javascript)
5. 是时候学习Java设计模式了
我再怎么强调设计模式在你Android开发生涯中的重要性都不为过。一般来讲,每当你遇到一个棘手的编程问题的时候,设计模式真的可以很大程度上帮助你找出一个优雅的解决方案。
除此之外,你需要跟其它开发者在同一个频道,这样当他们在讨论Factory , Decorator , Facade 的时候你立马就知道他们的意思。
发誓一周学习一种新的设计模式。
提示:这里有一个非常棒的资源。如果你喜欢书籍,你一定要阅读 这本。
6. 开始贡献开源代码
如果你开发出了有用的东西并在自己的app中使用它,那么可以考虑把它开源。这个过程会让你学到很多东西。
如果你没有什么可以开源,考虑找一个自己喜欢的其它开源项目,在之上修复一些bug,完善文档或者编写测试。
即使是最小的贡献对维持项目的运行维护者来说都是非常有帮助的。
提示:这里 是帮助你开始贡献开源项目一篇不错的指南。
7. 熟悉IDE
花更多时间熟悉你正在使用的IDE-Android Studio。它可以做的事情远比你想象的多。这个IDE中隐藏着很多很酷的功能和快捷键,大部分开发者都不知道或者根本没有尝试过。
要养成探索工具新功能和更好使用方法的习惯,提高工作效率。
提示: 这里 是一篇帮助你像专业人员一样掌握Android Studio的文章。
8. 是时候合理的架构app了
大多数时候我们都笼统的把代码放到Activity和Fragment中(在这个问题上你也可以责怪我),导致它们变成庞大的“上帝对象”,这几乎不可维护和测试。
为app采用一个好的架构是非常重要的,比如MVP, MVVM, Redux等。考虑把app的业务逻辑,视图交互,数据交换分为不同的层,让它们更易管理和测试。
提示:看一看谷歌的 这些 模版可以让你在架构app的时候更容易。
9. 学习Android简洁代码规范
这是一个不可以忽略的问题。与那些连基本的Android开发编码规范都不遵守的人一起工作是很困难的。
这不是什么困难的事情,要不了几个小时的时间就可以学习基本的Java 和 Android 编码规范。而且这不是一次性买卖,作为一个开发者终生受益。
提示:这里 有一个开始学习标准编码规范的极佳资源。
10. 花时间学习Android最佳实践
要让自己比其他开发者更有优势,并能构建出好看又好用的app,你需要开始学习一些安卓开发最佳实践。
在成为更优秀的开发者的路上有一些“该做”与“不该做”的行为准则,可以让你的app脱颖而出。
提示:这里是一个一些最佳实践的集锦。
11. 通过收听电台更高效的利用好业余时间
当你上下班,健身房,开车,做饭的时候,你聪明的大脑其实没做什么事情,可以利用这些时间收听一些Android电台。
提示: Fragmented Podcasts 和 Android Developers Backstage 是两个不错的电台,可以从它们开始。
12.不要太工程师思维,现实点
这种事不光发生在我身上,还发生在我的几个同事身上。开始工作之前多思考是对的,但是过度思考过度分析除了导致不必要的迷茫,担忧,拖延之外,什么也不会发生。
做对当前项目有益的事情就好了,以后可以根据需要再做调整。
13. 尝试学习一下设计
作为一个开发者把焦点放在编写更好的代码上是可以理解的。但是如果你想成为一个全能的开发者,你应该开始每天学习和理解关于UI和UX方面的知识。
这将完全改变你看待自己一直开发的app的方式。试着和团队里的UI或者UX设计师交流,更深入的理解app设计。
提示:如果你对理解设计是如何工作的感兴趣,读一读 这 本书。
14.成为完美主义者
这是一个比较主观的话题,因为我认为“完美”的别人未必认为。但是一般来说,尝试尽可能的做出自己最好的产品。
不要轻易满足。别只为了完成任务而做事。对自己的工作要充满激情,做的比别人更好。这会让自己不断成长,最终成为一个成功的开发者。
15. 坚持是成功的关键
如果你想成为一个成功的developer开发者,你需要做到持之以恒。
做事只坚持几天或者几周然后放弃不会有什么实质收获。规划好今后几年自己想成为什么样的Android开发者然后不管遇到什么困难都坚持不懈。
开始做一件事很容易,但时间长了之后很难以同样的激情继续下去。
16. 从小的开始循序渐进
作为一个开发者,你应该尝试把复杂的问题和功能分割为更容易理解的细小,简单,独立的模块,然后相对轻松的快速解决。
别一开始就被一个项目的庞大和复杂给击败了。只要方法正确任何事情都能解决。从小的开始,循序渐进,一步一步扩展。
17. 手中总是有一个练手项目
有一个练手的项目可以完全改变你学习事物的方式。如果你遇到了什么新的东西,要习惯性的在练手项目中做一下尝试。
比如你发现了一个有趣的开源项目,你应该开始在练手项目中把玩它,而不是大概看下文档和API。这样你对该library的理解会深刻得多。
18. 开始写更多得测试
测试得重要性我不能再强调得更多了。如果没有写详细得测试,你就不能声称一个功能完成了。测试能帮助你对自己得代码建立起自信。
别因为犯了忽略测试,把它看成可有可无得东西的错误,导致今后bug丛生。记住,没有测试的代码立即就变成了遗留代码。
19. 考虑采用测试驱动开发(TDD)
当你正在开发一款app的时候,考虑以健壮和高效的方式去构建它,这样可以顺利通过测试。
开始遵守 TDD 的“红-绿-重构”周期模式。首先,你所编写的测试可能会失败(红),然后写一些实际的代码让这个测试通过(绿),接着进一步优化精简代码(重构)。
测试驱动型开发是一种编程期间控制焦虑的方式。焦虑会让你变得很具有试探性。焦虑让你不想与人沟通。焦虑让你害怕反馈。焦虑让你变得心浮气躁。—— 来自 TDD 的案例
20. 配置一个合适的自动发布机制
作为一名开发者,尽量少花时间在本该自动化的事情上,比如app的质量检查和发布。
你应该使用像 CheckStyle , PMD , Lint , FindBugs 那样工具来做质量检查。在合并到主分支之前运行所有的单元测试和真机测试是必要的。
当所有这些检查通过后,你就会得到一个可以将 APK 发布到 Play 商店或者分发到其他渠道(比如 Crashlytics Beta )的绿色信号。
提示: Play 商店自动发布可以使用这个工具。
21. 拥抱响应式编程
如果你想进一步提高自己的技术,你绝对该考虑去拥抱响应式的编程方式。这会迫使你颠覆在构建app时思考方式。
使用响应式的方式编程绝对会对编写交互式的app有所帮助,同时也让日常开发更轻松愉快。
提示:Here 这里是一个不错的学习RxJava基础的一系列教程。
22. 学习用Kotlin进行Android开发
Kotlin是目前Android开发中最受热爱与讨论的语言之一。现在它也成了开发Android app的官方支持语言。这门简单的语言为Android的世界带来了一股新鲜空气。
对于那些对老旧,笨重,易错的Java感到厌倦的人来说,它是最好的礼物。可以尝试一下,你会肯定会从中再次找到已经丢失的开发乐趣。
提示:了解更多为什么你应该开始学习用Kotlin开发Android的原因:
23. 参加见面会与其他开发者进行更多的社交
我们开发者一般都是比较内向,喜欢坐在角落的电脑前,沉浸在自己的个人世界。
但是要试着离开自己的舒适区,与其他开发者一起交流。参加开发者见面会,社交聚会,与兴趣相同的开发者一起交谈,这些都能让你学到很多东西。
提示:这里 是一个找到你感兴趣的见面会的不错之地。
24. 熟悉键盘的快捷键
尝试养成尽可能少用鼠标的习惯。 几乎所有的Android Studio操作都有对应的快捷键。
这将显著减少你的开发时间,提高工作效率。虽然一开始记住这些快捷键可能会花一些时间,但是从长远来看会帮助你进入真正的无鼠标工作流。
提示:如果你不想用过时的方法记住快捷键,这里 有一个非常棒的AS插件可以帮到你。
25. 一周至少学习一个新的安卓知识
在广阔的安卓世界里,有许多东西要学,一开始你可能会被吓到。但是如果你许诺每周只学习一个Android知识点,事情就变得简单了。
列举出所有你不知道的东西,按照设定的优先级一周一个的解决。几个月后你会发现自己早已甩开了当初的自己几条街。
26. Automate anything that eats your time
做开发的天生就懒,总是想找到一个简单的方法去做无聊的工作。
所以如果你一天要好几次重复又无聊的事情,可以考虑将它自动化。一周下来可以节省不少时间,省下来的时间可以用在其他有益的事情上。
提示: 可以看看 这个 帮助你连接日常工具与自动化交流的神奇工具。
27.考虑运行两个版本的Android Studio
总是使用一个稳定版本的Android Studio来做重要的日常工作。但是也要安装一个canary 或者 beta 版本的 Android Studio 。有时这些版本会提前更新许多新特性,你可能乐于尽早体验。
28. 时不时的检查一遍第三方库
我们都喜欢在需要的时候使用第三方库,这没什么问题。但是要养成偶尔检查所有第三方库库的习惯,移除掉那些不再需要的。
如果你只使用了一个库的一小部分功能,可以考虑提取出那部分而不是使用整个库。同时,偶尔检查还可以帮助你了解library的紧急更新。
29. Learn better ways of refactoring legacy codebases
不要一次性重构庞大的遗留代码库,小心吃不了兜着走。
更好的办法是重构目前立即需要着手的部分,然后在需要的时候慢慢的扩展到其它部分。另外,在改动疑似会影响现有功能的代码之前,考虑为重构的页面编写测试。
提示:这本书彻底改变了我处理遗留代码的方式。你也应该读一读。
30. 总是在低端设备上测试
如果你想像专业的开发者一样开发,绝不要犯在高端设备上测试app的错误。一般来说开发者都是高端旗舰机,所以也用它们来测试app。但这是你需要克制的。
买你能在市场上找到的最便宜,最底端的设备,养成在它们上面开发app的习惯。你会看到之前你完全遇不到的许多问题。
31. 买你买得起的最好工作设备
别因为买了一个低端设备的错误而毁了你日常的开发体验。
考虑使用Mac(优于Windows)来开发,你会爱上它的简洁与稳定。
那么,如果你要买一个MacBook的话考虑你能买到的最好配置,几百美元不会对你造成多大影响,而你永远会因为这个决定感谢自己。
希望这些建议可以帮助你成为一个更好的Android开发者。建议你也看了,应该也明白了其中的意思,接下来是把它们付诸实践的时候了,只有这样你才能体会到它们的真正力量。
如果你觉得本文有用,请通过社交媒体推荐给你的朋友,同事,敌人或者任何人。