IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 优秀的Android开发究竟需要什么样的思维? -> 正文阅读

[移动开发]优秀的Android开发究竟需要什么样的思维?

优秀程序员的思维方式,总结有以下几点,最后一点是区分大神级和一般程序员的标志。

一、勇于去研究你不懂的代码

一般人都不愿意去研究自己不曾接触过的代码,很多人都没有尝试就放弃了。

如果你经常去研究你没有接触过的代码,你就会越来越熟悉不同的代码结构和设计模式。现在人们很容易就接触到优秀的开源代码资源,你可以很方便的下载下来做一些改动或者调试,去研究为什么代码可以这么写。

除了代码之外,很多人对于陌生的工作内容也会感到恐惧。每次换工作的时候,你可能都会遇到新公司的工作内容和以前工作的内容不一样的情况,以至于刚开始的时候工作效率没有以前那么高。很多人甚至觉得,他们是不是骗了面试官。

其实,大家都是在学习的过程中。在一个陌生的领域,没有人从一开始就是大神。如果你想变得越来越好,无论是写代码,与人沟通或者其它的技能,都是需要投入时间去学习的。

二、精通代码调试 ( debug )

很多人在写代码的过程中,经常会有的一个问题就是:为什么我写出来的代码不能运行?为什么运行的结果不是我想要的?几乎所有的程序员写代码都不是一遍就能写好的。但是顶尖的程序员非常快的就明白自己代码的问题可能是什么。

这是一个很重要的能力,但是偏偏学校里不教,面试的时候考官也不经常提及。那么怎么去调试代码呢?其实核心就是以下几个方法:

  • 不妨先猜测一下到底发生了什么。假设你的猜测是对的,想想你的猜测会导致程序有什么结果。
  • 试着观察这些结果有没有异常的地方。如果你没有发现异样,那么说明你的猜测就是对的。如果你发现了异样,那么说明你的猜测是错的,接下来换一个猜测试试。

对于顶尖程序员来说,这个过程在脑海中就是电光火石的一瞬间。只要你解决的问题足够多,你做出来的猜测就会越准确。

至于如何发现异样?你就需要有一套自己的工具或者方法论了。最简单的就是在代码里输出日志来判断。但是这是比较笨的办法,你需要去接触一些高级的工具或者直接带有Debug功能的编辑器。


三、重视能够节约时间的工具

打败人类的 AlphaGo 每天可以进行上百万局的下棋训练,我们人类一万个小时的训练却需要10年之久。也就是说,电脑运行几分钟,可能就等于人类工作好几年。

曾经在 Facebook 担任技术总监的 Bobby Johnson 描述过,高效率的程序员都把时间花在制作工具上。

很多人也认为工具是很重要的,但是他们并没有花时间去制作、整合自己的工具。但是,Jonson 团队最出色的员工耗费了他们1/3的时间在工具制作上,这些工具可以用来发布代码,监控系统,以及能让他们花更少的时间去做更多事情。中国有句古话说得好:磨刀不误砍柴工。

总之,不要花时间去做机器可以代替你去做的事情。

四、优化你的迭代速度

假设你要花 12 秒钟去搜索某个函数是在哪里定义的。再假设你每天做这个动作 60 次,那么你每天就要花 12 分钟去搜索函数定义。

如果你用一个好一点的编辑器,每次找到函数定义只要 2 秒钟,那么你每天就会节约 10 分钟。每年你就可以节约 40 个小时。如果你能找到 3 个这样的场景去优化一下,那么你每年可以节约一个月的时间。

想想这一个月你可以做多少有意义的事情。再假如你在调试一个 App 的 bug 的时候,改完一次代码都需要重启一下 App,然后点击 4、5 次才能看到 bug 有没有改好。那么你是不是可以先花几分钟设置以下,让 App 一启动就转到显示 bug 的页面呢?

千万不要小看这些琐碎的细节,改善它们的回报是巨大。

五、系统性的思考方式

当你在写代码的时候,你很容易就认为只要你按照需求实现了指定的功能,你的代码就写完了。但是这其实只是冰山一角。任何没有发布到生产环境的代码都不会产生任何价值。

如果想写出真正有影响力的代码,你需要从整个系统去理解你的工作:

  • 你的代码和其他人写的代码在功能上是什么关系?
  • 你有没有好好测试你的代码?或者其他人是否很容易测试你的代码?
  • 为了部署你的代码,线上生产环境的代码是不是需要改动?
  • 新的代码会不会影响到已经运行的代码?
  • 在新的功能下,你的目标用户的行为是不是你期望的?
  • 你的代码有没有产生商业上的影响,从业务层面你的代码是不是起着依赖、至关重要性的作用。

这些问题都不是很容易就能回答的,但是在写代码的时候,你需要明白你的代码最后会不会得到最好的结果。

最后

要成为一个具有优秀品质的Android程序员,系统的思考方式是要经过系统的千锤百炼的。那么系统的学习是必不可少的,在这里我给大家准备了一份Android进阶知识笔记,一共包含了八大专题,架构设计、NDK、跨平台、底层源码等技术都有记录。找我免费领取

地址:【Android开发交流】

?架构师筑基必备技能

JAVA知识要点:
1、 Java序列化、泛型与反射
2、虚拟机底层原理
3、Android内存原理
4、 Java高级并发原理详解
5、 编译时技术掌握与实战
6、JDK高级动态代理
7、高级数据结构与算法
8、 Java IO操作
9、
。。。。

Android R FrameWork源码与UI

知识要点:
1、 FrameWork源码解析(SDK 30)
2、Android常用组件深入解析
3、JetPack全家桶
4、Android R新特性解析
。。。。。

大厂内部APP调优方案

1、 APP基础优化
2、APP深度优化
3、开发焦点问题优化
4、编程效率优化
5、项目实战
抖音在APK包大小资源优化的实践
优酷响应式布局技术全解析
网络优化
手机淘宝双十一性能优化项目揭秘
高德APP全链路源码依赖分析
彻底干掉OOM的实战经验分享
微信Android终端内存优化实践

架构

本篇知识要点:
1、架构师设计思想篇
2、 手淘全套架构设计与实现
3、 开源框架
4、OKHttp网络框架
5、一线大厂核心框架剖析与实现

NDK模块开发(音视频系列)

本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

Flutter

本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

微信小程序开发

本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

?地址:【Android开发交流】

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:49:24  更:2021-11-11 12:49:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:53:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码