为了帮助你寻求成为更好的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
总结
开发是面向对象。我们找工作应该更多是面向面试。哪怕进大厂真的只是去宁螺丝,但你要进去得先学会面试的时候造飞机不是么?
作者13年java转Android开发,在小厂待过,也去过华为,OPPO等,去年四月份进了阿里一直到现在。等大厂待过也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:
资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!