提高代码阅读能力的7种方法 -欧洲杯足彩官网

1顶
0踩

提高代码阅读能力的7种方法

2017-10-17 11:25 by 副主编 jihong10102006 评论(1) 有7257人浏览
引用
原文:
作者:
翻译:无阻我飞扬

摘要:随着越来越多的公司使用敏捷开发,能够阅读别人的代码比以往显得更重要。这就需要学习一些如何提高这项技能的技巧。本文提供了7种提高代码阅读技巧的方法,以下是译文。
在软件开发人员的职位描述中有阅读源代码。然而,这体验并不总能令人愉悦。不是每个人都喜欢阅读别人的代码,因为他们觉得那很乏味,甚至有时令人感到沮丧。有些案例中,你开始阅读别人的代码,最终会产生一种痛苦的感觉,因为你不能理解这些代码,或者说代码写得不好。大多数开发人员希望把重点放在编写代码上而不是阅读代码上,他们没有意识到阅读代码也是一项重要技能。

可以说,阅读源代码有很多的益处。阅读代码的受益是巨大的。可以把编码与文学相比较。大多数作家在他们写作的时候注重阅读名著。原因是你不能在真空中创造出任何东西(闭门造车)。你必须从不同的来源吸取精华, 在此基础上去工作,才能创造出你自己的杰作。编写代码亦是如此。

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

一言以蔽之—— 代码阅读技巧提高编码能力。

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

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

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

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

还有一个阅读代码的好软件,叫sourcegraph,这是由两个斯坦福大学的毕业生创建的,他们是quinn slack 和 beyang liu,他们在花费时间去查看缺少文档说明的代码以后,决定开发一个工具来帮助他们更好地阅读和理解代码。

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

5.阅读最佳实践/设计模式——你正在阅读的代码,或者它的某个结构,可能看起来很晦涩,或者你可能不熟悉它,这是很自然的。有许多良好的实践和设计模式,人们用它来正确地和最佳地做事。例如,有一种模式称为singleton,它的构造函数保持私有。你可能会问,究竟为什么有人想保持构造函数私有呢。我一直认为它是公有的,否则,我如何创建一个类的实例。嗯,这背后有一个原因。singleton模式防止你不止一次地实例化一个类,其中有许多实际的应用案例。如果你了解这种模式,你就不会为此而头撞南墙了。因此,对于某些模式的了解,例如,gang of four(erich gamma, richard helm, ralph johnson,john vlissides软件设计领域的四位世界顶级大师.)有23种有文档说明的设计模式,可以显著地帮助你提高代码阅读能力。

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

做代码检查,你不得不阅读团队中其他人的代码,最终会提高你的代码阅读能力。

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

这可以帮助你理解方法的架构,也可以增加你代码重构的知识。
1
0
评论 共 1 条 请登录后发表评论
1 楼 2017-12-05 13:51

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 提高敲代码的速度方法只有一个:多敲。。让手形成一种肌肉记忆速度就能提高

  • 提高代码能力不是一蹴而就的事,需要我们不断努力,通过持续学习和练习、参与开源项目、阅读优秀的代码、与他人合作、提升解决问题的能力等方式,提高自己的代码能力,为自己为公司创造价值。

  • 本文作者以自己的亲身体验为例,即使不写大量的代码,也可以提升自己的能力,那这个方法是什么呢?以下为译文。将时间拨回到2010年5月,我最初写这篇文章就是在这个时间,当时发布在了fuel y...

  • 但是随着项目的增加和需求的各种变化,就会发现,第一种代码修改起来比较麻烦,比如led口发生了变化,那么头文件和和初始化函数都需要修改,变动一次要修改好几个地方,修改的时候容易漏掉有些地方,导致调试起来...

  • 如何提高代码能力? 写代码指的是将算法实现为程序代码,前提是你已经决定好了你要实现的算法,对代码能力的讨论应当在这一前提下。 代码能力包含写代码与调试代码两方面的能力。 写代码的能力 评价一个人写代码的...

  • 前言 人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的。...如何做到代码高效无错,提高代码质量的方法有哪些?又有哪些经验和技巧呢? 一、代码质量 软件是交付给用户,并由用户体验的产品;代码则是...

  • 首先让我们看一看刚入软件...对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。 ──如何避免:在写代码以前,要认真的学

  • 因此,对于阅读别人的代码,我从内心有一种强烈的抵制情绪,甚至有些恐惧。 然而,阅读他人的项目源码是每一个写程序的人(我只是个在项目需要的时候偶尔写程序的,不敢自称程序员)必须经历的事情。...

  • 尽量借用该代码,阅读并修改它,不要重复造轮子,这可以真正提高工作效率。 07 避免使用过时的api 过时的api是指那些旧的或较新版本的api。 新的东西有新的功能, 对旧版本的特性和兼容性等方面得以改善。api开发...

  • 2. 计算 x 的 n 次方的方法 3. 计算 aa bb c*c …… 4. 计算阶乘 n! 5. 列出当前目录下的所有文件和目录名 6. 把一个 list 中所有的字符串变成小写 7. 输出某个路径下的所有文件和文件夹的路径 8. 输出某个...

  • 随着技术的不断发展,软件开发方式也在不断地演变。...低代码(low code)是一种可视化的应用开发方法,用较少的代码、以较快的速度来交付应用程序,将程序员不想开发的代码做到自动化,称之为低代码。

  • 今天给大家分享国内常见的14款低代码平台,欢迎收藏!

  • 本人工作时间已经一年多了,因为本专业是计算机,对于一些问题有自己逻辑处理方式,但是在书写代码方面,(基础知识欠缺吧)常常出现断片...要去百度一些代码,但是处理问题的逻辑思路都是自己的,对于新知识的学习也是东...

  • 提高编程能力的10种方法 by slacken | published: 2011/07/03   1、学习一种新的编程语言 学习新的编程语言会强迫你运用全新的方法来思考,特别是当这门语言使用一种你还不怎么熟悉的范式。你...

  • 你的团队有没有过这样的经历:开发效率低,招了很多人,天天加班,出活却不多,线上bug频发,领导...本文就如何保证代码质量总结了一些经验和方法,供大家参考。 代码质量本身并没有一个特别明确的量化指标,而且根...

  • codewhisperer 经过数十亿行代码的训练,可以根据您的评论和现有代码实时生成从代码片段到全函数的代码建议。codewhisperer 帮助开发者基于注释生成代码,追踪开源参考,扫描查找漏洞。确保了开发人员可以专注于敏捷...

  • 高质量代码中往往缺陷更少!确保高的 java 代码质量有两个步骤:尽早并经常地编写各个层次的测试用例,以及持续的监测质量状况。那么我们又该如何实践呢?本专题汇集了大量来自代码质量专家们的专业经验、最佳实践...

  • overloads 关键字用与现有成员相同的名称来声明属性或方法,但参数列表与原始成员不同。也可用于隐藏基类中的现有成员或一组重载成员。以这种方式使用 overloads 时,应用与基类成员相同的名称和参数列表来声明属性或方法,并且不提供 shadows 关键字。 overrides 该成员从一个基类中重写一个相同名称的成员。这在你需要为某个特别成员提供自己执行子类的情况下会有所帮助。被重写的方法

  •     随着网络技术的快速发展,b/s架构的系统也更加流行和突出。很多从c/s架构或者没有涉及b/s开发的程序员都普遍认为web开发只是小菜一碟,而往往带着这种思想去开发b/s架构的系统会带来很多麻烦,造成系统框架不合理、系统界面丑陋无比、系统运行效率低下、系统安全性低下等一系列后遗症,对商业系统更是一种糟蹋……       因此web系统的观念需要正确对待,他已经不是单纯的一个技术系统,它涉及了

global site tag (gtag.js) - google analytics
网站地图