程序员看过这篇文章 让你学会阅读源码!

摘要:随着愈来愈多的公司使用敏捷开发,可以阅读别人的代码比以往显得更重要。这就须要学习一些如何提升这项技能的技巧。本文提供了几种提升代码阅读技巧的方法。java

在软件开发人员的职位描述中有阅读源代码。然而,这体验并不总能使人愉悦。不是每一个人都喜欢阅读别人的代码,由于他们以为那很乏味,甚至有时使人感到沮丧。有些案例中,你开始阅读别人的代码,最终会产生一种痛苦的感受,由于你不能理解这些代码,或者说代码写得很差。大多数开发人员但愿把重点放在编写代码上而不是阅读代码上,他们没有意识到阅读代码也是一项重要技能。web

能够说,阅读源代码有不少的益处。阅读代码的受益是巨大的。能够把编码与文学相比较。大多数做家在他们写做的时候注重阅读名著。缘由是你不能在真空中创造出任何东西(闭门造车)。你必须从不一样的来源吸收精华, 在此基础上去工做,才能创造出你本身的杰做。编写代码亦是如此。面试

要想能写出好的代码,你必须读不少好的代码。经过这种方式,你能够了解其余开发人员是如何思考的,以及如何解决特定的问题的,还能够发现他们的不足之处。你能够从阅读别人的代码中获取不一样的想法、风格和模式,让你的知识逐渐增加。设计模式

一言以蔽之——代码阅读技巧提升编码能力。性能优化

提升阅读技巧有许多方法。在这篇文章中,我想提些许几点。架构

1.运行代码——是的,这是阅读代码的第一步。这可能不会给你过多关于项目的细节,可是,你将知道如何构建它并运行它,你将了解它使用的库、它所依赖的开发框架等等,这是提升你对某个特定项目理解的好方法。若是你想编写与你正在探究的特定项目相似的本身的软件,你可能会对你应该使用的框架或库有一些想法。框架

2.找到高层次的逻辑——当你开始阅读一个项目的代码时,你可能会陷入到每个细节当中。这是有问题的,相反的,你应该专一于高层次的结构。要找到切入点,并从那里开始,大部分的软件项目都有一个主要的方法,就从那里开始。此外,若是这是一个web应用程序,请开始查看不一样的包,好比业务逻辑存放在何处、UI代码保存在哪里、控制器在何处等等。大体来讲,就是浏览整个项目并得到一个基本的想法,而后问本身想专一于什么地方,就先从那个部分读起。你能够不读完整的代码库,而只是读它可能会引发你兴趣的一部分。当你找到你的切入点,你能够经过方法调用,看它引领你到何处,从而了解项目的业务逻辑。分布式

3.使用/了解工具——有不少工具能够用来阅读和探究源代码,有助于可视化代码。例如,IntelliJIdea工具具备导航源代码的功能,容许你经过单词、单词的一部分,甚至是单词的缩写来搜索。你也应该学习键盘快捷键。用鼠标导航源代码可能会至关枯燥和缓慢,用键盘快捷键能够更快地跳转。你能够快速地从源代码的一部分跳转到另一部分。ide

还有一个阅读代码的好软件,叫Sourcegraph,这是由两个斯坦福大学的毕业生建立的,他们是Quinn Slack 和 Beyang Liu,他们在花费时间去查看缺乏文档说明的代码之后,决定开发一个工具来帮助他们更好地阅读和理解代码。函数

4.了解语言/约定——深刻了解某个特定语言有助于提升代码阅读技能。每种语言都有本身的一套约定、样式和语法。这些知识帮助你快速地熟悉一个特定的代码。例如,在java语言中,方法名以小写字母开头,而在C#语言中,方法名以一个大写字母开头。知道这个区别能够帮助你从源代码中识别方法。

5.阅读最佳实践/设计模式——你正在阅读的代码,或者它的某个结构,可能看起来很晦涩,或者你可能不熟悉它,这是很天然的。有许多良好的实践和设计模式,人们用它来正确地和最佳地作事。例如,有一种模式称为Singleton,它的构造函数保持私有。你可能会问,究竟为何有人想保持构造函数私有呢。我一直认为它是公有的,不然,我如何建立一个类的实例。嗯,这背后有一个缘由。Singleton模式防止你不止一次地实例化一个类,其中有许多实际的应用案例。若是你了解这种模式,你就不会为此而头撞南墙了。所以,对于某些模式的了解,例如,Gang of Four(Erich Gamma, Richard Helm, Ralph Johnson,John Vlissides软件设计领域的四位世界顶级大师.)有23种有文档说明的设计模式,能够显著地帮助你提升代码阅读能力。

6.代码审查——软件开发是一个很是讲究协做的工做。没有人能够单独构建一个大型的或重要的软件。每一个软件都是由一个团队构建的。在一个团队中,每一个人都贡献本身的一份力量去塑造这个项目。在项目结束的那一天,每一个人的贡献都会合并成一份对用户真正有价值的工做。除了作实际的编码之外,如今每个团队都有另一种作法,那就是在进行观察、建议和相互学习时,互相审查对方的代码。这是一个构建代码库知识的强有力的工具,在团队中创建牢固的纽带,提升代码质量,从而减小系统中的错误,并使客户满意。

说到这里顺便给你们推荐一个Java方面的交流学习群650385180,里面不只能够交流,还有视频资料免费领取,包含Spring、Mybatis源码以及经常使用设计模式讲解,以及分布式、微服务、性能优化内容,相信对于已经工做和遇到技术瓶颈的朋友,在这个群里会有你须要的内容。

作代码检查,你不得不阅读团队中其余人的代码,最终会提升你的代码阅读能力。

7.临时重构——临时重构也能够帮助您提升代码阅读技能。你能够找取一段长的方法代码,而后不断地把方法细分红多个部分。持续分解,直到你了解这一大段方法代码背后真正的意义。以后,你能够对这些方法作些注释,而后回滚这些更改。

这能够帮助你理解方法的架构,也能够增长你代码重构的知识。

若是你想学好JAVA这门技术,也想在IT行业拿高薪,能够参加咱们的训练营课程,选择最适合本身的课程学习,技术大牛亲授,8个月后,进入名企拿高薪。咱们的课程内容有:Java工程化、高性能及分布式、高性能、深刻浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。若是你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优点的,想进阿里面试但担忧面试不过的,你均可以来,q群号为:180705916 进群免费领取学习资料。

相关文章
相关标签/搜索