㈠ 如何去阅读并学习一些优秀的开源框架的源码
对于开发者来说,社区里丰富的开源代码其实是笔极为宝贵的财富。如果能充分利用好开放源代码的资源,不仅可以掌握多种编程方法,提高实践能力,还能获得好的思想,激发编程灵感。开源代码怎么学以及怎样才能学好是大家经常关注的话题,日前,在问答网站知乎上,有人抛出了“如何更有效地学习开源项目的代码?”的话题,众技术好手各抒己见,CSDN软件研发频道对本文内容进行了整理,方便大家学习与参考。盛大创新研究院研究员 庄表伟:学习开源 尽可能在代码里找答案 庄表伟提供了以下9个建议:1.在下载源代码之后,首先要跑起来,编译通过、正常运行;2.在你觉得最有可能运行到的地方,设置断点或者抛出异常,这样,就能够找到一个项目在正常运行时的入口点;3.从入口点所在的那个源文件开始阅读,逐步把握整个项目是如何启动起来;4.随便改点代码,看看会不会报错,如果报错,会从哪里报错;5.试着把报错屏蔽、修复、或者绕开;6.尝试理解一个系统的内部结构,多少组成部分,主线模块是哪些?辅助模块是哪些?7.从实际需要出发,修改这个项目,满足自己的某一个小的需求。(注意在此之前,尽量不要在网络上找答案);8.看看相关的讨论与心得,是否与自己的理解相一致;9.提交bug fix或者某个新的功能代码。在学习开源的过程中,有几个方面会获得大量收获,1.架构与模式;2.开源社区常见的一些惯用法;3.相关领域的结构与算法。总结一点:学习开源,尽可能在代码里找答案,而不是在代码之外找答案,那些都是二手的,而且很可能不准确。互联网评论员 朱晓阳:从简单做起 理论联系实践朱晓阳对此发表了两点看法:首先,从简单做起。刚开始的时候学习一些领域内基础理论,然后找一些简单的东西去实现,不能一开始就去找开源项目。建议大家经常动手写一些小程序,如改进宿舍网络登录客户端等。积小成多,能显着提高自己的编程能力。其次,学习的知识一定要和自己生活或工作有联系,这样才会有乐趣或动力。互联网评论员孙竟:先构想一个想做的项目首先,构想一个想做的项目(比如论坛、博客、微博等);然后,思考需要什么功能,应该怎么去实现,尽可能包括各种细节,有必要时记录下来;最后,去找个类似的开源应用,看看它是怎么实现的,和你的想法有什么差异,有什么可以学习或需要改进的地方。互联网草根hqman:我的5个建议:1.反复地使用软件,熟释软件的组成文件和软件功能,注意IE地址栏内的地址变化;2.打开数据库文件或存放数据的XML文件,参照数据字典了解各个表和字段的数据含意;如果没有数据字典,就运行软件输入数据,参照所输入的数据,了解各个表和字段的数据含义;3.利用Visio进行反向工程,将类图抽出来;4.研究类之间的关系,注释各个类的属性和方法,弄清程序的整体框架;5.另开一个项目,按照软件开发的流程,将代码分段复制进新的项目,进行编译调试,关注一些实现细节,学习一些编程的技巧。在读研究生张伟:在校学生空闲时间多参加一下比赛张伟的建议是大家在空闲时间多参加一些比赛。一个完整的项目,不管再小,只要做完了,就会有收获。多看一些比较大的开源项目源代码,每次看完后都会受益匪浅。从网上成熟的开源代码里,可以学到很多的设计思想。他认为,从项目入手,以项目为驱动,可激励自己进步。当然,是否一定需要看开源代码,这将取决于个人的兴趣和需要。画出程序流程图 理解程序流程思想CSDN博客专家i_like_cpp:曾在CSDN分享了《如何将源代码学好》的博文,对此,他给出了四点建议:1. 画出整个程序的流程图,理解整个程序流程的思想。画流程图的方式更让人很直接的理解程序的整体流程,而不会被代码所干扰,让程序员总体上把握整个程序;2. 对流程各节点(函数或过程)的理解,流程的每一节点是构成整个流程的不可缺少的部份;3.再把流程和流程各节点串起来理解整个程序,可能的话最好写出读书笔记;4. 如果想深刻的学习到源代码的精髓所在,请写一个相近的程序进行操练。理解了这个程序并不表明掌握了这个程序,只有在操练一个相近的程序时,才知道你到底理解了多少,掌握了多少。编后语:源代码的学习是一个从整体到不断细化的过程,是一个极为繁琐的过程同时也是一个不断认清事物本源的过程。
㈡ 关于阅读开源项目的源码,有哪些经验值得分享
阅读源代码的过程中,最重要的一点是反复地重复。ttserver来源只是解读台词时,我将不熟悉C,有很多奇怪的代码ttserver习惯,所以硬着头皮vim线看它一遍又一遍,有些不明白的地方,看到十几次,真正理解,可能被视为量变引起质变。
所以我一直认为,写一篇文章,你可以毫无问题地阅读和理解,这是一个好主意。
㈢ 如何看项目代码
问题一:刚进项目组,怎么看代码? 20分 先将做好的这部分项目打开操作一遍,一定要先熟悉这个项目的业务流程,否则不知道他们原来为什么这样写代码。在操作项目的时候,你也可以想想,如果是你来做这个项目,你会怎么做,然后再看看他们是怎么实现的。演示项目的时候可以通过链接地址找到相应模块的源代码文件。作为过来人,我只能告诉你,熟悉业务流程是最重要的。
问题二:如何读项目代码 (再没有文档这个总是有的吧?哪怕是个代号)2.这个项目的性质3.源代码的规模有多少行(其中有多少行是注释),总共有多少个文件(每一类文件分别有多少个,每个文件是多少行)如果是面向对象的,有多少个class,如果是面向过程的有多少个function4.功能的详细整理功能列表函数名 功能 功能描述5.功能模块之间的关系(哪怕没有注释,按名称,调用关系一定能整理清楚)如果你把我上面列的5点搞清楚了,再来抱怨,我想应该是下面这个样子:老大给了我一个项目源码让我看,注释都没有,是一个超级留言本,总共有10万行代码,就两个文件,函数不到10个,功能就是注册和留言,连修改删除功能都没有,大家说我看这样的代码有意思吗?我是不是还要待在这里?如果你完成了我上面说的5步,你仍然觉得没什么值得学的,没有什么需要做的,说明你不适合干编程这一行。下边呢就具体的介绍一下心得。当我们学习程序编码时,首先会看一些程序代码例子,然后学例子去修改编写代码;当我们刚进入一个公司,公司会把要维护修改的项目分给我们,让我们修改维护,要想修改编写,首先要读懂项目主要程序;当我们去看一些优秀的开源项目,想从中学习这些项目的设计思想时,我们也要去看项目代码…如此等等,可以说读代码是为了写代码,写出非常优秀的代码。因此对于程序开发人员来说,快速阅读项目代码是一个必需要掌握的能力。前段时间,我接手了一个php做的系统,公司要求我参阅这个项目重新做一个Demo,在读这个系统代码时,我积累了一些关于读项目代码的心得体会,主要内容如下。 清楚主要功能 想一想如何实现 首先要清楚项目的主要功能,知道它主要是干什么用的,才可能从总体上去把握项目。可以通过向公司同事或其他人请教、或查阅项目需求分析文档,概要设计文档来快速获得项目主要功能,如果没有这些文档,可以在网上搜索项目的功能,如果以上这些都没有条件的话,那只有把此项目运行起来,通过自己的实际操作来得到项目的主要功能了。清楚项目主要功能后,自己首先想一想,如果让我做,该如果去实现呢,这样能够得到对自己来说的技术难点,读源代码时会更留意这些内容,效率也就提高上去了。 运行项目 找到实现主要功能的代码 清楚主要功能以后,就可以去读实现主要功能的代码了,当然还需要找到这些功能是在那些文件,那些类来实现的。为了找到实现类,我们还要把项目运行起来,依据项目类型及特点,通过不同方法找到实现类代码。把这些文件记录下来,随后只需重点看这些文件中的代码,就可以了。 依据代码的类层次关系 了解项目体系结构 通过其他一些工具把这些代码的类图导出来,比如(rational rose或powerdesigner的逆向工程),如果是java项目还可以导出Javadoc。依据导出的内容,了解每一个主要实现类的大致功能,及这些类之间相互关系,这样也就清楚了项目的类层次结构,即项目体系结构。 清楚项目主要实现技术 依据导出的类图和对项目了解的疑点,如果是技术方面,比如自己不知道或不清楚该怎么实现某种功能,那就赶紧参照源代码,找到项目主要实现技术。如果对此技术不熟悉,那就快快在Bai或Google上面搜索一把,ok,一定会很多关于此技术的资料等着你去看呢,抓紧阅读这些资料,尽快掌握此技术的内容。 调试主要实现类,从中了解实现细节 了解了项目的体系结构,并清除项目主要实现技术后,下一步就是看实现细节了。看实现细节,也是从整体到局部,从看各个方法声明出发,在逐步看每个方法体。当然没有必要每个方法都要去一行一行看,只需重点看与实现此类主要功能的核心方法。对某些代码看过一两编后......>>
问题三:如何看一个java web 项目代码 首先把项目跑起来,根据自己想看的功能跟下去。
比如现在我想看商品添加的功能模块,在页面找到添加的按钮,找到后台请求地址,比如请求地址是localhost/sun/proct/add.do
然后再找到该java web的拦截是什么做的,如果是原生的servlet就直接在.java类中通过search找到这个实现了该注解的并继承了Servlet的类
如果是用spring mvc实现拦截的就找实现了spring标准的拦截位置
如果是struts等等根据该框架的标准找到后台控制层代码
我这里全部是讲的mvc模式。
如果是那种没使用mvc开发模式的,那你就可以不用看了,没有看的价值。因为过 了一个月他自己也看不懂自己的代码逻辑。
找到了控制层代码,那么一切就迎刃而解了 ,该打断点打断点,该跟代码的跟代码。。
后台数据库事物那种,就暂且不提了,懂的人一点就通,不懂的我解释也解释不清楚
问题四:C#。。如何查看项目代码? 从你触发的事件开始,比如页面上有一个button按钮,点击后触发该按钮事件,如果点击超链接,就分析链接的页面,如果页面上有内置的控件,看控件设置了哪些属性,不过高手写的代码都不用去设置控件属性的,都是在后台代码中写,你直接在前台页面按F7查看后台代码,可以设置断点单步调试,可以清晰的分析出程序每一步做什么,谢谢,这是我个人心得。
问题五:java中怎么在整个项目里查找代码 这个就要看开发工具了,这个不是java,是开发工具里设置的MyEclipse是ctrl+h
问题六:如何阅读一个大型项目代码 对于程序员来说,写代码永远比读代码来的舒服。但现实情况是,程序员常常需要阅读其他人员写的代码,更多的时候这些代码可能即没文档也没注释。不过,好象有个人说过一句话,代码之前,了无秘密。运用适当的策略可以让阅读工作变的轻松很多。1. 对于常用的系统函数进行追踪。比如ReadFile,CreateDevice,CreateWindow,在这些函数处放几断点,可以看到代码的调用过程。通过这种方式可以方便地把代码分为底层代码和上层逻辑代码。2.依据项目依赖关系进行阅读。项目的依赖关系同时表明了项目的复杂程度。对于大型的项目通常都会分割成若干子项目,根据项目的依赖关系,循序渐进的方式可以让阅读变的简单。3.对于以lib形式提供的子项目。在阅读时,可以先把lib的整个项目做为黑盒使用。根据_declspec(dllexport)或者以头文件方式提供的调用接口,可以减少对于细节的阅读时间。根据模块进行大致的划分,可以有效地对项目的结构有直接的感性认识。4.识别项目中使用的设计模式。对于大型项目来说,设计模式是必不可少的。在庞大的代码中识别设计模式,寻找代码中使用相似手法的代码结构可以极大简化需要阅读的代码。5.根据数据流程分析。动态职责划分。6.修改部分代码,进行调试。修改部分常数或者饶过某些程序执行流程,或者以简化的数据对程序进行追踪。
问题七:怎样看一个SSH项目的项目代码? 1.首先你得启动,看登录流程,再找一个功能点,针对增删改查实现的技术
2.上面主要针对请求的发送响应、连接数据库等;然后就是看前台页面展示如何去后台数据,用到了哪些ext、或是easyUI技术
3.以上2点主要针对有任务了能快速上手;学习项目技术就得看启动时,配置文件怎么写的,xml文件的配置:事物、定时器、连接池、监听器、webservice接口等
4.最后就是项目业务流程了
问题八:如何快速看懂别人的代码 我看了两年,才达到看一个一个准的境界。这是一个过程。慢慢来吧。
问题九:分类汇总结果如何同时显示项目代码和项目名称 利用分类汇总功能试试。应该能满足你的要求。
具体操作:单元格选定在标题行的任一单元格如何。数据---分类汇总----分类字段,选生产部---汇总方式,选求和---选定汇总项,选你要求和的数据列标题---确定。
问题十:如何查看一个包的源代码 查看Eclipse中导入包的源码:1、项目中的Web App Libraries选项2、然后找到刚导入的jar包,并3、双击其中的一个Class文件4、点Attach Source..按钮,在弹出窗口中选第二项External location5、点右面的External File,选择源文件所在路径,选编码格式,一般默认GBK,点OK以后双击这个包下面的class文件,就能直接看到源码了:
㈣ 如何读项目代码
(再没有文档这个总是有的吧?哪怕是个代号) 2.这个项目的性质 3.源代码的规模 有多少行(其中有多少行是注释),总共有多少个文件(每一类文件分别有多少个,每个文件是多少行) 如果是面向对象的,有多少个class,如果是面向过程的有多少个function 4.功能的详细整理功能列表函数名 功能 功能描述 5.功能模块之间的关系 (哪怕没有注释,按名称,调用关系一定能整理清楚) 如果你把我上面列的5点搞清楚了,再来抱怨,我想应该是下面这个样子: 老大给了我一个项目源码让我看,注释都没有,是一个超级留言本,总共有10万行代码,就两个文件,函数不到10个,功能就是注册和留言,连修改删除功能都没有,大家说我看这样的代码有意思吗?我是不是还要待在这里?如果你完成了我上面说的5步,你仍然觉得没什么值得学的,没有什么需要做的,说明你不适合干编程这一行。下边呢就具体的介绍一下心得。当我们学习程序编码时,首先会看一些程序代码例子,然后学例子去修改编写代码;当我们刚进入一个公司,公司会把要维护修改的项目分给我们,让我们修改维护,要想修改编写,首先要读懂项目主要程序;当我们去看一些优秀的开源项目,想从中学习这些项目的设计思想时,我们也要去看项目代码…如此等等,可以说读代码是为了写代码,写出非常优秀的代码。因此对于程序开发人员来说,快速阅读项目代码是一个必需要掌握的能力。前段时间,我接手了一个php做的系统,公司要求我参阅这个项目重新做一个Demo,在读这个系统代码时,我积累了一些关于读项目代码的心得体会,主要内容如下。 清楚主要功能 想一想如何实现 首先要清楚项目的主要功能,知道它主要是干什么用的,才可能从总体上去把握项目。可以通过向公司同事或其他人请教、或查阅项目需求分析文档,概要设计文档来快速获得项目主要功能,如果没有这些文档,可以在网上搜索项目的功能,如果以上这些都没有条件的话,那只有把此项目运行起来,通过自己的实际操作来得到项目的主要功能了。清楚项目主要功能后,自己首先想一想,如果让我做,该如果去实现呢,这样能够得到对自己来说的技术难点,读源代码时会更留意这些内容,效率也就提高上去了。 运行项目 找到实现主要功能的代码 清楚主要功能以后,就可以去读实现主要功能的代码了,当然还需要找到这些功能是在那些文件,那些类来实现的。为了找到实现类,我们还要把项目运行起来,依据项目类型及特点,通过不同方法找到实现类代码。把这些文件记录下来,随后只需重点看这些文件中的代码,就可以了。 依据代码的类层次关系 了解项目体系结构 通过其他一些工具把这些代码的类图导出来,比如(rational rose或powerdesigner的逆向工程),如果是Java项目还可以导出Javadoc。依据导出的内容,了解每一个主要实现类的大致功能,及这些类之间相互关系,这样也就清楚了项目的类层次结构,即项目体系结构。 清楚项目主要实现技术 依据导出的类图和对项目了解的疑点,如果是技术方面,比如自己不知道或不清楚该怎么实现某种功能,那就赶紧参照源代码,找到项目主要实现技术。如果对此技术不熟悉,那就快快在Bai或Google上面搜索一把,ok,一定会很多关于此技术的资料等着你去看呢,抓紧阅读这些资料,尽快掌握此技术的内容。 调试主要实现类,从中了解实现细节 了解了项目的体系结构,并清除项目主要实现技术后,下一步就是看实现细节了。看实现细节,也是从整体到局部,从看各个方法声明出发,在逐步看每个方法体。当然没有必要每个方法都要去一行一行看,只需重点看与实现此类主要功能的核心方法。对某些代码看过一两编后,还是很迷茫的话,没有关系,调试一把,看看它终究是有何作用。调试有很多中,最终要的是一步一步跟踪,但是有些语言编写的代码很难用这种方式做,比如(javascript或applet),那就把一些重要的变量输出出来。了解了主要功能代码的主要方法后,可以基本上说我们已经看懂了项目的代码,把握了项目的整体架构。 修改代码来满足自己需求 看懂了项目代码,最后一步就是根据需要,来修改项目代码,满目我们的需要了。以上就是我在看项目代码中的总结,当然,如果项目非常功能很少,没有使用什么复杂技术的话,了解体系结构和清楚项目主要实现技术就可以跳过了,根据实际,直接需要去看源代码就可以了。
㈤ 如何快速读懂项目源码javaWeb
一:学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml->mvc->db->spring
ioc->log-> 代码
1、先了解项目数据库的表结构,这个方面是最容易忘记 的,有时候我们只顾着看每一个方法是怎么进行的,却没
有去了解数据库之间的主外键关联。其实如果先了解数据 库表结构,再去看一个方法的实现会更加容易。
2、然后需要过一遍web.xml,知道项目中用到了什么拦
截器,监听器,过滤器,拥有哪些配置文件。如果是拦截 器,一般负责过滤请求,进行AOP 等;如果是监 可能是定时任务,初始化任务;配置文件有如使用了 spring
后的读取mvc 相关,db 相关,service 相关,aop 相关的文件。
3、查看拦截器,监听器代码,知道拦截了什么请求,这
个类完成了怎样的工作。有的人就是因为缺少了这一步, 自己写了一个action,配置文件也没有写错,但是却怎么
调试也无法进入这个action,直到别人告诉他,请求被拦
4、接下来,看配置文件,首先一定是mvc相关的,如 springmvc
中,要请求哪些请求是静态资源,使用了哪些 view 策略,controller 注解放在哪个包下等。 然后是db 相关配置文件,看使用了什么数据库,使用了
什么orm框架,是否开启了二级缓存,使用哪种产品作 为二级缓存,事务管理的处理,需要扫描的实体类放在什 么位置。最后是spring 核心的ioc
功能相关的配置文件, 知道接口与具体类的注入大致是怎样的。当然还有一些如 apectj 置文件,也是在这个步骤中完成
5、log
相关文件,日志的各个级别是如何处理的,在哪些 地方使用了log 记录日志
6、从上面几点后知道了整个开源项目的整体框架,阅读 每个方法就不再那么难了。
7、当然如果有项目配套的开发文档也是要阅读的。