MyException - 我的异常网
当前位置:我的异常网» 互联网 » 增高代码阅读能力的7种方法

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

www.MyException.Cn  网友分享于:2013-10-22  浏览:0次
提高代码阅读能力的7种方法

 

摘要:随着越来越多的公司使用敏捷开发,能够阅读别人的代码比以往显得更重要。这就需要学习一些如何提高这项技能的技巧。本文提供了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

文章评论

做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
漫画:程序员的工作
漫画:程序员的工作
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
旅行,写作,编程
旅行,写作,编程
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
一个程序员的时间管理
一个程序员的时间管理
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
老程序员的下场
老程序员的下场
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
 程序员的样子
程序员的样子
为什么程序员都是夜猫子
为什么程序员都是夜猫子
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
编程语言是女人
编程语言是女人
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
那些争议最大的编程观点
那些争议最大的编程观点
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
我的丈夫是个程序员
我的丈夫是个程序员
10个调试和排错的小建议
10个调试和排错的小建议
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员都该阅读的书
程序员都该阅读的书
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
中美印日四国程序员比较
中美印日四国程序员比较
每天工作4小时的程序员
每天工作4小时的程序员
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
鲜为人知的编程真相
鲜为人知的编程真相
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
我是如何打败拖延症的
我是如何打败拖延症的
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
代码女神横空出世
代码女神横空出世
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员必看的十大电影
程序员必看的十大电影
程序员的鄙视链
程序员的鄙视链
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有