如何成为Android开发大牛:30+个专业建议
前言
国外一个大牛写给Android开发人员的一些技巧,总共31个,差不多每个建议包含了学习的连接,很实用!
译文
成为一个Android开发者很容易,但是成为一个成功的Android开发者并且脱颖而出不是容易的,它需要努力的工作、激情、奉献、坚持不懈。
我不能给你任何捷径,但如果你愿意付出努力你一定会得到你应得的一切成功。
为了帮助你寻求成为更好的Android开发者,我从我的经验中编制了一些小巧的专业技巧。因此,无论你是否刚刚决定进入Android开发阶段,或者现在一直在使用Android开发者,这些提示将与你相关。
移动测试:构建您的移动质量保证技能 go to TB learn
1.熟悉Android 内部框架(Android framework internals)
我不是说文档,而是实际的框架代码。我看到很多开发者害怕深入Android框架内部。不要成为其中之一!当你看到代码如何运作以及不同的部分如何适当地组合在一起时,是件amazing的事情。
如果你打算开始Android旅程,请不要害怕Android SDK的内部工作,并开始关注它。
2.摆脱你对失踪的恐惧( fear of missing out (FOMO))
Android很大,非常大。你不能在一个月或三个月内完全学习它。而且你学到的越多,你就会越了解你不了解的东西( And the more you learn, the more you will understand how much you don’t know)(非常牛逼的一句话)。作为一个初学者,很正常错过学习重要的信息,在仍然处于无知状态的情况下构建一些东西,试图克服这个问题!
了解你真实关注点,在你当前构建的App,然后缓慢扩展视野。
3.开始阅读更多的代码
大多数开发者没有时间阅读其他开发者正在撰写的内容。他们大部分时间都在写他们已经知道的内容。
但这不会帮助你成长为一个完善的Android开发者。真正成为更好的开发者的唯一方法是阅读更有经验的开发者的优秀代码。你应该开始考虑其他开源App和库,在那里你将发现许多你以前不了解的编码技术和功能实现。
提示:这里 一些优秀的开源应用程序的资源,可帮助你开始使用。
4.考虑学习更多的语言
显然,我不是告诉你学西班牙语或中文。我在说你应该学习新的编程语言。你需要自己更新行业中正在发生的情况,而不是将你的想法限制在Android空间中。
这将打开你的观点,激发新的想法,并帮助你显着提高你的Android开发技能。下定一个决心每年学习一种新的编程语言。
如果你不知道JavaScript ,JavaScript是一个很好的开始。
5.是时候学习Java设计模式了
我无法强调你在Android开发事业中的重要性。无论何时遇到一个关键的编程问题,设计模式都可以成为救生员。
你还需要与其他开发者在同一页面上,以便在谈论使用工厂模式,装饰者模式或门面模式时,立即知道它们的含义。
向自己承诺,每周学习一种新的设计模式,直到你知道大多数设计模式。
提示:这里 是很好的资源对你开始学习Java设计模式,如果你想了解的更多,读读这本书
6.开始贡献开源
如果你已经开发了一个库,插件或其他有用的代码,并且你在自己的应用程序中使用它,请考虑开源。在开源项目或维护自己的项目过程中需要学习很多东西。这是开源开发中极好的知识碰撞,大幅提升你作为一个开发者的价值。
如果你没有任何开源资源,请考虑查看感兴趣的其他开源项目,并修复一些错误,改进文档或在其中编写一些测试。
即使是最小的贡献(例如在文档中修复一些语法错误)将有助于项目维护者保持项目的运行。
提示:这是一个令人敬畏的指南 ,让你开始开源开发。
7.让你的IDE为你工作
开始花更多的时间了解你正在使用的IDE:Android Studio。它可以做得比你想像的还要多。 IDE中隐藏了许多酷炫的功能和快捷方式,大多数开发者甚至没有尝试发现。
养成一个习惯去发现新的更好的方法使你的工具为你工作,从而提高你的工作流程和生产力。
提示:这是 一篇令人惊奇的文章,可帮助你掌握Android Studio。
8.是时候正确构建你的应用程序
大多数时候,我们把我们的所有代码写在Activitys或Fragments中(我也犯了这个问题),把它们变成了几乎不可能维护和测试的巨大的对象。
为你的应用程序采用一个良好的架构,如MVP或MVVM,这是非常重要的。将应用程序的业务逻辑,View交互和数据交互分为不同的层次,以便易于管理和测试。
提示:查看Google提供的这些 有用的蓝图,让Android应用架构设计更轻松
9.了解Android简洁代码指南
你也不能忽视这一点,因为与不编写简洁代码的开发者合作时,很难保持Android开发的标准编码指南。
这不是火箭科学,它不应该花你超过几个小时来学习大多数基本的Android编码指南。
提示:这里 是极好的资源来开始你的学习
10.花点时间了解Android最佳实践
为了让自己比其他开发者更有优势,并构建一个看起来很好并且工作良好的应用程序,你需要开始学习一些Android开发的最佳实践。
了解可以帮助你成为更好的开发者和帮助你的应用程序脱颖而出的其他事项。
提示:这里 汇编一些最佳做法为你创建更好的应用程序
11.通过听播客来有效地利用你的空闲时间
尝试正确有效地使用你的时间。当你上下班,在健身房锻炼,开车或做饭时,你的天才大脑不会做太多。
在这个时候,你可以通过听某些Android博客进行多任务处理
提示:Fragmented博客和Android开发者后台两个优秀的博客
PS: 听博客( listening to podcasts)一开始我还以为翻译错了,点进资源看了还真是可以听的音频,只不过是英文的
12.不要过度设计,现实点
我发现这不仅发生在我身上,而且也发生在几个同行开发者的身上
在开始工作之前思考一下是好的(实际上是很好),但是过度思考和过度分析会导致不必要的困惑,拖延和焦虑。
首先做好现在似乎对项目有好处的事情,你可以在将来根据需求随时调整适应不断变化的情况。
13.尝试了解设计(design)
我可以理解,作为开发者,你的主要重点是学习编写更好的代码。但是,如果你想成为一名完整的开发者,你应该开始花时间学习和理解用户界面( user interface(UI))和用户体验设计( user experience (UE/UX))。
这将改变你看待正在编码的App的方式。尝试与团队的UI和(UE/UX)设计者进行交流和交互,以更好的了解应用程序设计。
提示:如果你很有兴趣了解设计如何工作,请读读这本好书
14.开始成为一个完美主义者
“完美”是一个主观术语,但根据经验,尽量实现你需要提供最佳版本的产品。
永不放弃,不要为了这件事而工作。对你正在做的工作充满热情,做的比最好更好。这将长期有助于你持续成长并成为更优秀的开发者。
15.专注是成功的关键
如果你想成为一位优秀的开发者(或生命中的其他任何事物),你需要保持专注。
做几天或者几个星期然后放弃不会给你带来任何东西。不要浮躁,尝试想象接下来几年你作为一个开发者你想到达什么地步,无论什么挑战来临,坚持你的目标。
开始做某件事非常容易,但很难继续以相同的激情和奉献长久地继续做。
16.小处着手,慢慢扩展
作为开发者,您应该始终尝试将你正在开展的任何复杂问题或功能细分为小而简单且独立的组件,可以轻松快速地了解和解决问题。
不要因为项目的初始大小或复杂程度而变得不知所措。一旦你在正确的轨道上,一切都可以解决。小处着手,迈着小步,然后慢慢扩张。
17.总是写一个测试Demo
编写一个测试Demo可以完全改变你的学习方式。如果你在Android碰到一些新的东西,养成立即编写一个测试Demo的习惯。
假如你在某个地方你遇到一个有趣的Android库(library),你不必仅仅浏览文档和APIs,而应该写个demo进行测试。这将会让你对库(library)了解的更加深刻。
18.开始写更多测试
这是非常重要。在你编写详尽的测试用例之前,你不能将功能视为完整的。测试将帮组你在你代码之间建立信心。
不要犯忽视测试或者认为是可选择的错误,并使您的生活更加痛苦,回归bug将会使你的生活更加痛苦。
19.考虑采用TDD
当你开发应用程序时,请考虑以强大而有效的方式选择构建应用程序,以便能够经受住时间考验。
考虑遵循测试驱动开发(test-driven development(TDD))的“红 - 绿重构”循环。首先写出将失败的测试用例(红色),然后写入实际代码,使测试通过(绿色),最后清理优化(重构)。
“测试驱动的开发是在编程过程中管理恐惧的一种方式。 恐惧让你暂时的。恐惧让你想减少沟通。恐惧让你避开反馈。恐惧使你脾气暴躁。 “ ——?TDD by Example
20.建立一个适当的自动发布机制
作为开发者,在应该自动化的事情尽量少花点时间,例如应用程序质量检查和发布。
你应该使用CheckStyle , PMD , Lint 和 FindBugs 等工具来自动完成质量检查机制。在合并任何重大变化之前,运行所有 unit and instrumentation tests也是必须的。
当所有这些检查通过时,你将获得绿色信号,将APK发布到Play商店,或以任何其他方式分发。
提示:使用诸如此类的开源工具自动执行Play Store发布过程
21.拥抱响应式( Reactive Programming )编程方法
如果你想提升你Android开发技巧,你一定要考虑采用响应式方法。这将使你以完全不同的方式构建你的Apps。
以响应式方式一定会帮助你更快的编写交互式Apps,让你的开发生活更有趣又轻松。
提示:这里是一个很好的系列去学习RxJava for Android
22.学习使用Kotlin进行Android 开发
自从Google在Google I/O 2017宣布Kotlin编程语言一级支持,对语言的兴趣激增。这个随和的语言带给Android开发世界新鲜空气
这是一个很好的消息对于厌倦用老的,冗长的和容易出错的Java Apps开发者。试试看它是否在你身上点燃新的灵感
提示:看看这个让人敬畏的教程开始使用Kotlin。
23.参加会议,并与其他开发者交流
我们的开发者往往是内向的,喜欢和我们的电脑一起坐在我们自己的世界里。
尝试移出你的舒适区域,并与其他开发者进行更多交互。当你参加开发者会议和社交聚会或者你只是与其他与你的兴趣相似的开发者交谈时,有很多要学习的东西。
提示: Visit meetup.com去发现你感兴趣的聚会
24.熟悉快捷键
在Android Studio 大多数每个操作都有快捷键。了解那些快捷键将显著的减少你的开发时间以及提升你的工作流程,记住快捷键可能会花点时间,但就长期而言,这将帮助你走向一个完全少用鼠标的工作流。
提示:如果你不想用过时的方法记住快捷键,这里是一个非常好的Android Studio 插件帮助你去处理它。
25.尝试每周学习至少一件Android的新事物
在Android这个巨大的世界,有许多东西去学习和了解,当你最初踏入它时,足以打到你。事情将变的更容易如你你承诺每周学习一件Android的新事物。
做一个你不了解的清单,为他们分配一个优先事项,并每周一个一个的启动。几个月后你将看到自己的方式领先于你的开始。
26.自动化处理任何消耗你时间的事情
我们的工程师天生就是懒的,并且总是在乏味的工作找到一个容易的方式。
所以你需要每天做一些重复和无聊的事情,考虑自动化他。他会每周累积节省大量的时间,你可以利用这些时间做更有效和有用的事情上。
提示:试试Zapier,一个非常好的工作可以帮助你连接和自动化你几乎每天使用的几种工具。
27.考虑运行两种版本的Android Studio
始终保持稳定版本的Android Studio来执行你每天需要做的所有重要事情。但也要考虑保持安装最新Android Studio,Canary或Beta版本。
有时候有许多新的并且激动人心的功能,尽可能早的尝试这些早期版本。
28.一次审核你所有第三方库
我们都喜欢使用library,当我们需要它们时,这是非常好的,但是养成在一段时间内审核所有添加的第三方库并删除不再需要的第三方库的习惯
如果你仅使用特定library的一小部分,请考虑提取该部分,而不是保留整个库。偶尔的审核也将帮助你更新迫切需要的library
29.学习重构旧代码的更好方式
不要犯一次重构 很多旧代码库的错误。这样做会让你陷入一个无法逃脱的陷阱
相反,请考虑重构现在你需要处理的代码库的部分,然后在必要时缓慢扩展到其他部分。另外,考虑编写要重构的屏幕的测试用例,然后再触摸你怀疑可能会破坏现有功能的任何代码。
提示:这本书完全改变了我对待旧代码的方式,你很应该读一读.
30.始终在低端设备上开发和测试
如果你想开发一个专业的应用程序,永远不要犯在高端设备上开发和测试应用程序的错误。一般来说,我们开发人员拥有高端旗舰产品,并将其用于开发应用程序。但这是你应该绝对要避免的东西。
尝试买市场上可以找到的最便宜,最低端的设备,并使之成为开发应用程序的习惯。你将开始看到你的应用程序中有很多缺陷,你以前没有任何线索。这样,你可以为没有最好Android设备的世界上最大的群体 准备Apps。
31.购买你能买的起最好的工作机器
不要犯购买低端工作机器的错误,这会每天都会破坏你的开发经验。
考虑使用Mac(而不是Windows)进行开发。你会爱上它的简单性和稳定性。
如果你正在购买MacBook,请考虑使用最佳规格来获得该功能。你会永远感谢你做出这个决定。