摘要:随着越来越多的公司使用敏捷开发,能够阅读别人的代码比以往显得更重要。这就需要学习一些如何提高这项技能的技巧。本文提供了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.临时重构——临时重构也可以帮助您提高代码阅读技能。你可以找取一段长的方法代码,然后不断地把方法细分成多个部分。持续分解,直到你了解这一大段方法代码背后真正的意义。之后,你可以对这些方法做些注释,然后回滚这些更改。
这可以帮助你理解方法的架构,也可以增加你代码重构的知识。
http://www.iteye.com/news/32711
相关推荐
利用IDE(集成开发环境)和版本控制系统(如Git)可以极大地提高代码阅读效率。IDE的代码提示、跳转、查找等功能能帮助我们快速定位和理解代码。版本控制系统则可以帮助我们追溯代码的历史变化,理解代码的演进过程...
“他山之石、可以攻玉”,通过仔细阅读并学习本书,可以快速地提高读者代码阅读的技能与技巧,进而从现有的优秀代码、算法、构架、设计中汲取营养,提高自身的开发与设计能力。 本书适用于对程序设计的基本知识有...
通过学习《代码阅读方法与实践》,学生不仅能够掌握不同编程范型的原理,还能提高自己在实际项目中的代码分析和调试能力。课程的总结部分可能包括对学习过程的反思,学生可能分享了在课程中遇到的挑战、解决的问题...
7. **代码文档与注释**:强调文档和注释的重要性,以及如何编写有效的文档来提高代码可读性。 8. **代码审查**:介绍代码审查的最佳实践,包括审查目标、过程和反馈机制,以及它在团队协作中的作用。 9. **版本...
2. **代码折叠**:允许用户隐藏不相关的代码块,聚焦于感兴趣的区域,提高代码浏览效率。 3. **查找和替换**:快速定位特定的代码行或模式,进行全局搜索和替换。 4. **依赖关系分析**:展示函数、类或模块之间的...
此外,使用科学的方法也是提高代码阅读效率的关键。这包括: 1. **注释和文档**:充分利用代码中的注释和外部文档,它们可以提供上下文信息和设计意图。 2. **代码审查**:与团队成员共享和讨论,多人视角可以帮助...
通过以上所述的步骤和方法,开发者不仅可以提升代码阅读能力,还能逐渐养成写出高质量代码的习惯。在实践中,要不断反思和总结,通过代码审查、临时重构和团队讨论来不断提高个人和团队的编程素养。
"他山之石、可以攻玉",通过 仔细阅读并学习本书,可以快速地提高读者代码阅读的技能与技巧,进而从现有的优秀代码、算法、构架、设计中汲取营养,提高自身的开发与设计能力。 本书适用于对程序设计的基本知识有一定...
《代码阅读方法与实践》是一本专注于提升程序员技能的重要书籍,它涵盖了代码阅读的重要性、技巧以及实际应用。这本书分为中英文两个版本,旨在满足不同语言背景的读者需求,帮助他们更好地理解和解析他人编写的代码...
此外,阅读开源项目的代码是提高代码阅读能力的一种有效方式。开源项目通常具有较好的代码质量和文档,是学习代码结构、设计模式和编程风格的宝贵资源。通过阅读开源代码,可以学习到不同编程范式和不同编程语言的...
- 结合语法高亮和智能导航等功能,提高代码阅读效率。 #### 总结 虽然初次接触Linux内核源代码时可能会觉得困难重重,但只要掌握了正确的方法和工具,就能够逐渐适应并从中获得乐趣。此外,在阅读过程中遇到问题时...
书中还可能涵盖了如何处理大型项目、如何应对复杂代码库、如何利用版本控制系统辅助阅读等多个方面,这些都是提高代码阅读能力的重要组成部分。通过系统学习和实践,程序员不仅可以提升个人技能,还能在团队中发挥更...
《MATLAB图像处理:能力提高与应用案例》是赵小川撰写的一本专业书籍,旨在帮助读者提升在MATLAB环境中进行图像处理的技术能力和实践应用。这本书的随书代码提供了丰富的实例,让理论知识与实际操作相结合,加深理解...
12. **最佳实践**:在代码阅读中,学习并遵循编程最佳实践,如代码风格一致性、可读性、可测试性等,能提高代码质量。 在"代码阅读整理5"的压缩包中,17至21号文件可能包含了一系列逐步深入的代码实例或分析案例,...
4. **代码审查**:代码审查是提高代码质量的一种方式,也是学习他人的代码的好机会。通过审查,我们可以发现潜在的错误,同时也能学习到新的编程模式和最佳实践。 5. **版本控制**:利用Git等版本控制系统,可以...