`

如何阅读别人的代码

阅读更多

作为初学者,我们可能经常会需要去阅读别人的代码,以求从中学到别人的设计思路,抑或是从代码中了解类库的使用。不管哪种需求,我们都需要做到快速准确地阅读。那么,究竟如何阅读呢?让我们以一个.net(这里无论是java还是C#都是如此,自己去理解,举一反三。那么你就距离成功不远了)的项目为例:当我们打开一个.net解决方案的时候,里面通常有不止一个项目,例如一个三层架构的web项目,里面除了一个web网站外,通常还会包括诸如数据层(DAL)、逻辑层(BLL)项目,另外,一般我们会提供一个通用项目(Common类库),或者把DAL中的model部分抽取出来,这样就可能形成一个包含很多个组件的解决方案。那么我们拿到这个解决方案的时候要怎么入手呢?我的经验是,读别人的代码,由面及点和由点及面相结合的读法是最快的。所谓由面及点,就是说,首先理解整个解决方案的分工,比如叫做“web”项目是网站部分,是MVC架构中的V;名字中包括“BLL”的部分是业务代码,是MVC架构中的C;而名字中包括“DAL”的部分是数据库访问代码,是MVC架构中的M……理解每个子项目的功能,有助于我们直接进入主题,而不用花太多时间去熟悉所谓的框架部分。那么,主题在哪里呢?对于一个web项目来说,主题就是页面和业务代码。而这些,需要我们有点及面地学习。所谓由点及面,就是说,我们先进入一个页面,比如index.aspx(如果没有这个页面,一般也会有UserLogin.aspx之类的页面),打开这个页面,找到其中的功能按钮,根据按钮事件找到下一个页面,在熟悉页面流向的过程中,我们也从事件代码中了解了框架代码的调用方法。 那么,阅读一个具体的页面(包括页面本身和按钮事件,或者说,业务代码)的方法呢?1、代码包括如下部分
1)页面本身,即前台代码
2)页面后台,即各种事件
3)在页面事件中调用到的其他代码(例如数据库访问代码、多层架构中分出的其他层代码等)2、阅读顺序
1)阅读前台代码,对于初学者可以学习控件标签的使用方法,当然,事实上我们是用vs的设计工具来画页面的,察看代码只是为了更加熟悉,或者加深理解。
2)阅读页面后台事件代码,分两步走。首先,宏观理解一个事件的功能,比如点击一个登陆按钮,是要做:取得输入用户名和密码,根据用户名和密码查找数据库,根据返回结果判断页面流向,提示登陆成功或失败信息,等等。只需要理解功能即可,不需要深入理解每句代码的作用。因为这个时候我们是初次察看别人的后台代码,对于封装很好的框架,我们是很难第一次阅读就读懂所有东西的。
3)然后,在我们已经了解了一个事件的功能后,我们再次阅读,此时逐行分析。例如我们会碰到代码中定义了一个数据表对象(如User对象),然后执行数据库查询(此时我们可以熟悉项目中的数据库操作),然后对返回值进行操作(例如判断用户存在否,密码正确否)。在这些操作中我们可以(1)学习基础类库的使用,(2)熟悉框架代码的使用
注:在学习代码过程中,了解框架是意识上的进步,学习代码是技术上的进步,所以在逐步理解代码阶段,碰到人家封装好的类,例如数据库访问类,不用太执着,只要理解即可;而碰到某些编程技巧,则需要深入理解

 

分享到:
评论

相关推荐

    教你如何阅读别人代码的技巧

    面对别人写的代码,你要在原来基础上加以改进,是不是感到很迷茫痛苦,其实掌握了方法不难的!本文总结了怎么阅读别人代码的方法。

    如何更高效地阅读别人的代码

    教你如何更高效的阅读别人的代码,为你节省更多的时间学习

    如何阅读别人的代码(共分十一章)

    1.要养成一个习惯, 经常花时间阅读别人编写的高品质代码. 2.要有选择地阅读代码, 同时, 还要有自己的目标. 您是想学习新的模式|编码风格|还是满足某些需求的方法. 3.要注意并重视代码中特殊的非功能性需求, 这些需求...

    如何阅读别人的代码 为我所用

    天下课本一大抄 看你会抄不会抄 我们要学会“抄袭”

    代码阅读工具(understand )下载

    Understand软件的功能主要定位于代码的阅读理解。界面用Qt开发的。 具备如下特性: 1、支持多语言:Ada, C, C++, C#, Java, FORTRAN, Delphi, Jovial, and PL/M ,混合语言的project也支持 2、多平台: Windows/...

    如何阅读源代码

    源代码要养成一个习惯, 经常花时间阅读别人编写的高品质代码. 2.要有选择地阅读代码, 同时, 还要有自己的目标. 您是想学习新的模式

    如何阅读开源代码

    同时,可以从别人写的好的源代码中间学习到更多的编程方法和技巧。第二个好处是,可 以提高自己把握大规模源代码的能力。一个比较大型的程序,往往都是经过了很多个版本 很长的时间,有很多人参与开发,修正错误,...

    代码阅读方法集合(辛苦收集,吐血奉献)

    如何阅读别人的代码 花了几个小时从网上找到的 格式编辑,可直接打印

    代码阅读方法与实践.pdf

    相当经典的书。能正确引导我们去如何读别人的优秀代码,相信有些做了几年开发的朋友,还是不会读别人的代码。

    如何阅读他人的程序代码.pdf

    这是一篇经本人整理的源于网络的文章,教你如何阅读他人的程序代码。

    关于那些阅读源代码技巧

    写代码是从模仿开始的,提高也是从观摩别人的优秀设计和代码开始的。所以阅读源代码至关重要,接下来赞从下列方面聊聊阅读源码的事情。

    怎样阅读源代码,相信对大家有帮助

    阅读别人的代码技巧,真的不错,大家喜欢就下栽把,肯定对你有帮助......阅读别人的代码技巧,真的不错,大家喜欢就下栽把,肯定对你有帮助......阅读别人的代码技巧,真的不错,大家喜欢就下栽把,肯定对你有帮助

    最全C++命名规则.doc

    匈牙利命等命名法的一些常用变量前缀,方便阅读别人代码时用来查阅

    VS2010使用方法(笔记).docx

    文档介绍了VS的常用功能和快捷方式,阅读别人代码的小技巧和心得。 总结了VS使用过程中常见的报错及解决办法,问题原因的分析等。旨在分享希望能够帮助大家

    EditPlus代码格式化

    有时候下载别人的js代码看起来非常混乱、只有一行显示或是显示比较凌乱、这种代码无论是谁都无法坚持看完、使用Editplus代码格式工具可以将代码转换成常见的代码格式、看起来比较舒服、易于阅读

    Javascript代码加密解密自动缩进程序

    这样会使别人拿到你的代码无法阅读,并减小JS文件的大小. 2.可以对自己写的javascript代码进行正规的对齐缩进,解决了dotnet无法实现的功能.当然同样适用于C/C#/Java/Php等代码的自动缩进. 3.对组合成一行的js代码自动...

    Visual Basic代码管理器

    编写此软件的目的是为了尽量的解脱VB程序员的负担,在任何一家软件公司里,新的程序员都会面临一个问题,就是去读别人所写的代码,可是由于习惯的问题,不是每个程序员都会按照标准去书写程序的,如果面对几十兆的...

    简谈创建React Component的几种方式

    前言 当我们谈起React的时候,...后来在阅读别人代码的时候又发现了PureComponent以及完全没有继承,仅仅通过返回JSX语句的方式创建组件的方式。 下面这篇文章,就将逐一介绍这几种创建组件的方法,分析其特点,以及如

Global site tag (gtag.js) - Google Analytics