想快速成为编程高手?这个技巧必不可少!

译文
开发
在今天的文章中,我将与大家探讨如何阅读别人编写的代码。如果大家已经拥有这种良好习惯,那么这些建议也许能够进一步改善您的学习效果。

【51CTO.com快译】 经过这几年的编程学习,我认为想要提升编码水平的***途径就是多看、多写,然而阅读别人的代码也确实是快速提升代码水平的一个技巧。在今天的文章中,我将与大家探讨如何阅读别人编写的代码。如果大家已经拥有这种良好习惯,那么这些建议也许能够进一步改善您的学习效果。

我要明确地表述这种方式的好处:

  1. 1.如果大家希望能显著提升编程技能,则需要阅读其他人的代码。

  2. 2.如果大家愿意一试,相信我,这绝对能够带来相当直观的提升效果。

如果您还没有,请别犹豫,马上尝试吧。

 

编程

一、读什么代码?

这个问题非常重要,但同时也难以解答。我无法简单告诉大家应该阅读哪些代码,因为要根据个人条件而定。但我接下来,会给出一些宏观层面的指导意见。

1.阅读相关性高的代码

***的起点就是阅读您正在使用的插件或者库中的代码。

  • 您喜爱的WordPress插件代码。
  • 您经常使用的Ruby gem代码。
  • 您不断重复使用的jQuery插件代码。

这些都是良好的学习素材。由于已经熟悉其公共API,因此了解其内部工作原理会变得更加简单。另外,作为代码用户,大家也可以为项目添加文档、实现新功能或者以其它方式作出贡献。

2.阅读令您印象深刻的代码

我还记得自己***次看到280 Slides时的感受,用“印象深刻”这个词来形容绝对不夸张。接着我就去了解该站点的驱动代码源自开源Cappuccino项目,之后我将这些知识牢记心中,并在我以后的道路也受益很多。相信在大家的从业经历中,也一定会见到过令您印象深刻的代码,如果,它属于开源项目,请务必认真研究并将其融入自己的应用开发当中。

3.阅读您所尊敬的人编写的代码

 

阅读您所尊敬的人编写的代码

如果大家已经拥有一定开源软件编写经历,那么无疑已经结识了不少值得膜拜的大牛。我们可以认真阅读他们编写的代码,并在赞叹之余借此充实自己的头脑。当然,即使没有,想要找到理想的学习对象也绝非难事。

4.阅读您能够切实理解的代码

很多有冒险精神的朋友,可能更喜欢直接投身于Ruby on Rails、Drupal或者jQuery等大型项目当中。但我个人的建议,是大家***能先从易于理解的代码入手。

大型项目的活动组件太多,大家可能挣扎于概念当中而无法快速汲取经验。这种混乱会导致沮丧,甚至在理解当中消磨了自己的学习热情。这时如果先挑选小型项目进行阅读,会让您能够立刻掌握业务逻辑,并专注于研究其中的技术细节。

 

[[180156]]

二、如何阅读

说到这里,新的问题来了——我们该如何阅读代码?我拥有比较丰富的阅读代码的经验,所以下面我要与大家分享自己的一点心得。

阅读代码,应该是既需要广度也需要深度

广度:看的是代码的整体架构,比如模块划分与组织,设计模式的运用等等

深度:挑选自己感兴趣的模块,深入理解学习他的具体实现

1.着眼于宏观

假设大家已经了解了所要阅读代码的宏观作用。如果还没有,那我建议大家通过网站、教程、文档乃至其它来源先弄清手头这些代码的基本用处。

我认为***步应该是着眼于项目结构。根据您所选择的实际代码库规模,这***步的实际强度也有所区别,不过一般来讲应该不会耗费太多时间。

编程组织结构

首先,关注文件结构。大家可以使用TextMate等拥有文件夹层级视图的编辑器作为辅助手段。上图所示即为一份清晰的Twitter Ruby gem视图。

这一步的目的是熟悉源代码。了解哪些文件包含/要求/加载其它文件,主体代码在哪里,是否使用了命名空间等等。了解了这些基本情况下,开始深入细节。

2.记录下您的发现

阅读代码不应该是一种被动的行为。我建议大家随时添加评论,记录下您的假设并总结您理解中的程序流程。您***次阅读后的结论可能类似下面这种形式:

  1. # I think this function is called after 'initialize'  
  2. # What does this equation even do? 
  3. # Pretty sure this variable loses scope after line 17 

而在理解了整个进程后,您可以清理掉这些评论,或者写下更有意义且更为准确的意见。

3.进行测试

希望您选定的项目拥有测试套件。如果没有,大家可以直接跳过此章节(或者另选一个包含测试套件的项目)。

将测试作为代码阅读起点非常重要,因为其中记录了代码所应完成的既定目标。而且无论代码质量多高,查看测试结果都能帮助我们更清晰地理解原程序员的意图。在阅读时,确保测试套件能够正常运行,这将保证您当前的开发环境配置正确。

4.执行、变更、再执行

谁说阅读代码就没法动手参与?大家可以尝试改动现有项目再重新调整,从而真正理解其设计思路。大家不妨添加一项小功能,或者设置更为广泛的日志记录机制,从而输出各个阶段的代码。如此一来,我们的阅读过程就更像是参与一场冒险,而非面对一本晦涩的小说。相信我,这种方法非常有效。

5.重复再重复

在读完一套代码库后,选择另一套继续进行。您阅读过的代码越多,您的学习速度就越快,并越能够享受这种愉快的学习方式。

三、从哪里入手

 

GitHub

我个人的阅读代码旅程始于GitHub。找个适合自己的项目,马上开始学习——GitHub是一座巨大的宝库,感谢开源精神让我们拥有如此珍贵的资源可供利用!

原文标题:One Sure-Fire Way to Improve Your Coding

原文作者:Jerod Santo

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:陶家龙 来源: 51CTO
相关推荐

2012-08-03 10:30:22

JavaScript

2011-03-21 14:08:57

2023-08-22 14:20:21

2011-05-30 16:38:46

SEO

2009-06-25 09:56:14

JavabeanJava

2013-08-26 10:10:23

2014-12-01 15:18:31

虚拟机DockerLinux

2013-07-24 09:22:59

BYOA自备应用程序云应用

2021-03-21 22:32:23

5G网络安全网络攻击

2018-01-10 22:31:07

机器学习开源开发

2017-09-20 17:10:43

灾备

2019-06-06 14:08:37

数据仓库数据分析数据报表

2009-07-01 11:08:21

Firefox插件推荐

2018-06-05 16:32:04

程序员编程工具新手

2009-12-23 17:17:55

Linux高手

2011-03-22 15:58:35

私有云

2022-06-24 16:44:47

人工智能机器人机器学习

2022-03-30 16:13:27

元宇宙CDN负载均衡

2020-05-18 13:35:03

Web前端开源框架

2017-01-10 08:30:01

点赞
收藏

51CTO技术栈公众号