作为一名 不思进取 积极进取的程序员,如果你想提高编码的能力,大家最容易想到的方法就是多敲代码,这点每个人都知道!
[图片上传失败...(image-188aaa-1597202670738)]
今天播妞要给大家极力推荐另外一种“超佛系”方法,那就是:读!阅读别人的代码,也能明显提升你的编码能力!
说完你可能会不相信,不过先别急着怀疑,下面这篇文章将进行详细介绍,告诉你如何阅读代码?阅读什么样的代码?到底如何提高?
在这里插入图片描述
跟着播妞的步骤来,我相信你将会得到巨大的回报!(如果你已经很擅长阅读别人的代码了,那读完此篇文章,你可能会发现新的方法。)
● 应该阅读什么代码?
这个问题其实很难给出具体的建议,谁也无法简单的告诉你应该阅读这个代码还是那个代码。下面播妞分享一些指导方针以及基本的原则,大家根据个人情况去选择哦!
1.阅读用得着的代码
这一步最好从阅读那些你已经在使用的插件或者库文件开始。
● 你非常喜欢的WordPress插件
● 你觉得很有用的Ruby gem工具包
● 你可能还会使用到的jQuery插件
这些都是非常好的学习例子,因为你已熟悉了它们的公共API,了解它们内部工作原理,阅读障碍是较低的。
2.阅读那些你印象深刻的代码
例如,第一次看到280Slides幻灯片网站时,印象深刻,该网站的代码是基于Cappuccino开源项目。把这些知识塞进大脑深处,当再遇到另一个令人印象深刻,但同样是基于Cappuccino 的应用程序时,便知道这个项目,可以从中学到很多东西。
你最近对什么项目印象深刻?是开源的吗?如果是这样的话,这是一个很好的阅读选择。
3.阅读那些让你尊敬的大师写出来的代码
如果你已经用开源软件编码一段时间了,可能会有其他程序员赢得你的尊重。他们写的代码简直令人羡慕,可以选择阅读他们的代码。
如果目前你脑海里面没有一个受人尊敬的开发者也没关系,他/她很可能已经在前两部分(你能用到的代码,或者给你印象深刻的代码)中授权了一些代码。
4.阅读那些能给你带来灵感的代码
如果你属于冒险型,是一个有经验而且已经很会阅读别人代码的开发者的话,可以考虑投身于一些大型项目,如Ruby on Rails框架,Drupal或jQuery。
不过对于大部分人来说,建议暂时别接触这样的项目,大型项目有更多活动部件,可能最终会因为这些概念而陷入困境,无法学到任何有价值的东西。困惑会导致沮丧。
选择一个小项目阅读的好处是可以一次将整个程序逻辑放在脑子里。这样你就可以关注细节,从而学习到很多知识。
在这里插入图片描述
● 我该如何阅读?
在已经选择好了一些代码,决定来阅读,那么最好的阅读方式是什么呢?下面提供一些方法,使你获得最大化的投资回报率,也就是读的少,但是收获多。
1.先看大框架
首先在宏观层面上,你应该知道你所读的代码是如何实现的。如果没有,建议先阅读项目的网站、教程、文档。
接下来就是浏览项目的架构,可以使用一些具有文件夹层次结构视图的编辑器提供帮助,比如TextMate。熟悉源代码,找出不同逻辑代码的位置,使用的命名空间是什么,以及这些性质。一旦你掌握了大局,你就可以深入挖掘细节了。
2.记录阅读心得
阅读代码不应该是一种被动的行为。当开始理解程序流时,你可以在开始时添加注释,记录假设和结论。也许第一次你的记录可能会是这样:
[图片上传失败...(image-5bb82c-1597202670738)]
随着理解进展,可以删除当时留下的无关紧要的评论,也还可以写一些有意义的、权威的评论,这些评论可能会被提交给你的项目。
3.边阅读边测试,例如Luke
当你阅读别人的代码时,测试是一个很好的起点,因为他们记录了代码应该完成的任务。
在阅读时,试着让测试套件成功运行。这将确保开发环境得到适当的配置,并使您在进行更改时更加自信。
4.亲自动手做
谁说阅读代码时双手就得闲着?只有当你把所有的东西都打乱了,然后自己试着重新拼装好时,才能在这个过程中真正理解。
还记得那些通过的测试吗?想办法让它们失败,添加更多,或者尝试更改实现的逻辑而不破坏它们。尝试添加一个你认为很酷的小功能,或者设置项目范围的日志记录,这样就可以在代码的不同阶段打印输出。
这还是在阅读吗?当然,但在这一点上,就得取决于自己的选择了,看你是把它当作冒险来看,还是把他当作一本神秘的小说来看了。这是一件好事!
5.清除再重复
一旦读完了一个代码库,再选一个,然后重新开始这个过程。代码读的越多,你就能从阅读中获取更好的信息,你花的时间就越少。
我认为你会发现投资回报增长很快,而且这是一种非常有趣的学习方式。
在这里插入图片描述
● 从哪里入手呢?
哪里的代码质量最高,我想给程序员带来最大影响的就是GitHub。这个网站让你很容易找到新的项目和优秀的程序员。
建议先从GitHub开始,然后直到找到一个你认为可以从中学习的项目,再转移到其它网站阅读。
网友评论