如何成为一个更好的Android开发者-30+个专业建议(1)

本文提供了一系列策略,助你从新手成长为成功的Android开发者,包括深入理解Android框架,克服恐惧,阅读他人代码,学习新语言,掌握设计模式,参与开源项目,优化工作流程,以及重视测试和自动化。
摘要由CSDN通过智能技术生成

正文

成为一个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资料,应该对大家有用。

首先是一个知识清单:(对于现在的Android及移动互联网来说,我们需要掌握的技术)

泛型原理丶反射原理丶Java虚拟机原理丶线程池原理丶
注解原理丶注解原理丶序列化
Activity知识体系(Activity的生命周期丶Activity的任务栈丶Activity的启动模式丶View源码丶Fragment内核相关丶service原理等)
代码框架结构优化(数据结构丶排序算法丶设计模式)
APP性能优化(用户体验优化丶适配丶代码调优)
热修复丶热升级丶Hook技术丶IOC架构设计
NDK(c编程丶C++丶JNI丶LINUX)
如何提高开发效率?
MVC丶MVP丶MVVM
微信小程序
Hybrid
Flutter

接下来是资料清单:(敲黑板!!!


1.数据结构和算法

2.设计模式

3.全套体系化高级架构视频;七大主流技术模块,视频+源码+笔记

4.面试专题资料包(怎么能少了一份全面的面试题总结呢~)

不论遇到什么困难,都不应该成为我们放弃的理由!共勉~

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值