https://dzone.com/articles/7-ways-to-improve-your-code-reading-skill

阅读源代码是软件开发人员的工作描述。然而,这种体验并不总是愉快的。不是每个人都愿意阅读别人的代码,因为他们觉得这很无聊,有时甚至令人沮丧。有些情况下,您开始阅读别人的代码,但最终会因为无法理解或代码写得不好而感到痛苦。大多数开发人员希望专注于编写代码而不是阅读代码,而没有意识到阅读代码也是一项重要的技能。

但是,阅读源代码有很多好处。阅读代码的收益是巨大的。可以将编码与文学进行比较。大多数作家在写作时专注于阅读伟大的杰作。原因是你不能凭空创造任何东西。你必须吸收不同来源的东西并在此基础上工作并创造你自己的杰作。编写代码与此没有任何不同。

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

如果我们想用简单的话来说——代码阅读技能可以提高编码技能。

有几种提高阅读能力的方法。在本文中,我想提及一些。

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

2.找到高层逻辑——当你开始阅读一个项目时,你可能不会跳到每个细节。相反,您应该关注高层结构。从入口点开始。大多数项目都有一个主要方法,从那里开始。此外,如果这是一个 Web 应用程序,请开始查看不同的包,例如业务逻辑所在的位置、UI 代码所在的位置、控制器所在的位置等。基本上,浏览整个项目并获得一个主要想法,然后问问自己你想关注哪里,你想先读哪一部分。您可能不会阅读整个代码库,您可能只对其中的一部分感兴趣。当你找到你的位置时,你可以从方法调用开始,看看它会把你带到哪里。

3.使用/了解工具——有很多工具可以用来阅读和探索源代码,有助于可视化代码。例如,IntelliJIdea 具有导航源代码的功能,允许您按单词、单词的一部分甚至缩写进行搜索。您还应该学习键盘快捷键。使用鼠标浏览源代码可能会非常乏味和缓慢,而使用键盘快捷键可以更快。您可以从源代码的一部分快速跳转到另一部分。

还有另一个很棒的代码阅读软件,叫做 Sourcegraph,它是由两名斯坦福大学毕业生 Quinn Slack 和 Beyang Liu 创建的,他们在花费数小时搜索文档不完整的代码后,决定构建一个工具来帮助他们更好地阅读和理解代码。

4.了解语言/约定——深入了解特定语言有助于提高代码阅读能力。每种语言都有自己的一套约定、风格和句法。这些知识可以帮助您快速熟悉一段特定的代码。例如,在 Java 中,方法名称以小写字母开头,而在 C# 中,它们以大写字母开头。了解这种区别有助于您从源代码中识别方法。

5.阅读最佳实践/设计模式– 你正在阅读的代码,或者它的某个构造,可能看起来晦涩难懂或者你可能不熟悉它,这是很自然的。人们可以使用许多好的实践和设计模式来正确和最佳地做事。例如,有一种称为 Singleton 的模式,其中构造函数保持私有。您可能会问,到底为什么有人要将构造函数设为私有,我一直认为它是公开的,否则,我如何从类中创建实例。好吧,这背后是有原因的。单例模式可以防止您多次实例化一个类,这有很多实际用例。如果你知道这个模式,你就不会为此撞墙。因此,有了某些模式的知识,例如,Gang of Four有 23 种记录的设计模式,

6.代码审查——软件开发是一项非常协作的工作。没有人可以单独构建一个大型或重要的软件。每个软件都是由一个团队构建的。在一个团队中,每个人都为塑造一个项目做出贡献。在一天结束时,每个人的贡献都会合并,成为对客户具有真正价值的好作品。除了实际编码之外,现在每个团队还有另一种做法,即在提出观察、建议和相互学习的同时审查彼此的代码。这是一个强大的工具,可用于构建代码库的知识、在团队中建立牢固的联系并提高代码质量,从而减少系统中的错误并让客户满意。

进行代码审查时,您被迫阅读团队中其他人的代码,这最终会提高您的代码阅读技能。

7.临时重构——临时重构也可以帮助你提高代码阅读能力。您可以开始采用长方法,然后将方法分成多个部分。继续这样做,直到您了解更大方法背后的意图是什么。之后,您可以记下该方法的作用,然后回滚更改。

这可以帮助您理解方法构造并提高您的重构知识。

提高代码阅读能力的 7 种方法相关推荐

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

    原文:7 Ways to Improve Your Code Reading Skills  作者: A. N. M. Bazlur Rahman  翻译:无阻我飞扬 摘要:随着越来越多的公司使用敏捷 ...

  2. 必读|提高代码阅读能力的七种实用方法

    ↑ 点击上方蓝字关注我们,和小伙伴一起聊技术! 随着越来越多的公司使用敏捷开发,能够阅读别人的代码比以往显得更重要.这就需要学习一些如何提高这项技能的技巧.本文提供了7种提高代码阅读技巧的方法,以下是 ...

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

    阅读源代码是软件开发人员的工作任务之一.但是,这种经历并不总是令人愉快的.不是每个人都想阅读其他人的代码,因为他们发现它很无聊,有时令人沮丧.有些情况下,当你开始阅读其他人的代码但最终会因为无法理解或 ...

  4. 是否需要提高代码阅读能力?这有技巧

    阅读源代码是软件开发人员的工作任务之一.但不是每个人都想阅读其他人的代码,有些情况下,当你开始阅读其他人的代码,但最终会因为无法理解或代码写得不好而感到痛苦.大多数开发人员都希望专注于编码而不是阅读, ...

  5. python函数可以提高代码执行速度吗_Python代码运行速度慢?这五种方法很管用

    对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...

  6. 如何增强大脑记忆力?提高大脑记忆能力的20个方法

    如何增强大脑记忆力?提高大脑记忆能力的20个方法 直到今天,我们所知道的关于大脑的秘密也只是冰山一角,在很大程度上,大脑和记忆之间的关系仍是神秘的.记忆是一个过程,当你记忆的时候,实际上就是你把保存在 ...

  7. python运行时很卡-Python代码运行速度慢?这五种方法很管用

    对于Python很多人还是比较了解的,虽然说Python有很多优势但同样具有劣势,Python最大的劣势就是运行效率慢,那么如何提高Python代码运行速度呢?这五种方法很管用. 1.PyPy:在选择 ...

  8. 提升领导力的 7 种方法

    文章目录 提升领导力的 7 种方法 1. 专注于重要的事情 2. 真实 3. 创造心理安全感 4. 授权你的团队去发现他们的超能力 5. 腾出空间思考 6. 了解你的团队 7. 不断进化 提升领导力的 ...

  9. Notepad++去除代码行号的几种方法

    Notepad++去除代码行号的几种方法 (转自:http://hi.baidu.com/beer_zh/item/e70119309ee587f2a8842892) 问:在网页中复制代码时,常常遇到 ...

最新文章

  1. 【Netty】入门Netty官方例子解析(三)处理一个基于流的传输 TCP粘包和拆包问题分析和解决
  2. 使用GitHub存储库中的更改更新本地存储库
  3. (三)通用视图(generic views)
  4. 计算机多用户管理,多用户权限与数据管理的一种方法
  5. 历久弥新 - 微软万亿市值背后的文化支撑(下)|DevOps案例研究
  6. 加载dll api_运行时类加载以支持不断变化的API
  7. 数据流图怎么画_概率图模型怎么画?5个步骤完成专业模型图
  8. 分布式文档存储独角兽MongoDB——系统结构(1)
  9. SAP HANA Backup and Recovery
  10. java根据模板导出pdf,java开发面试笔试题
  11. INFO: task java:27465 blocked for more than 120 seconds不一定是cache太大的问题
  12. 计算机考试模拟系统无法进入,全国计算机等级考试上机考试模拟系统使用说明...
  13. NettyMina (转)
  14. 疏忽导致易接SDK OpenGL error
  15. 电子之TTL和CMOS门电路的区别
  16. 电脑硬盘双击打不开,只能右键打开
  17. 磁盘驱动属于计算机的,计算机基本知识(8005)---HDD(硬盘驱动器Hard Disk Drive)
  18. 补能的争议路线:快充会走向大一统吗?
  19. 光纤跳线如何选择?需要注意什么?
  20. unity汤姆猫自动检测录音,不说话自动播放

热门文章

  1. 大岩量化小白科普:选好基必看两大指标——收益率、波动率
  2. c语言中下标运算符的作用,C语言下标运算符([])
  3. 以最易懂的人话讲分类和聚类算法(建议分享和收藏)
  4. Linux--权限管理
  5. 关于刻录机的安装和软件的使用
  6. [BZOJ1718]:[Usaco2006 Jan] Redundant Paths 分离的路径(塔尖)
  7. Python中__init__方法有什么作用
  8. Android Studio 错误: 编码GBK的不可映射字符
  9. 小白都能轻松掌握,python最稳定的图片识别库ddddocr
  10. vue监听物理返回键事件