熟悉开源项目的方法
熟悉开源项目的方法
熟悉开源项目的方法1、首先,查找和阅读该项目的博客和资料
通过google你能找到某个项目大体介绍的博客,快速阅读一下就能对项目的目的、功能、基本使用有个大概的了解。
2、阅读项目的文档
重点关注类似Getting started、Example之类的文档,从中学习如何下载、安装、甚至基本使用该项目所需要的知识。
3、读读单元测试用例
不要上来就看源代码,这样很容易迷失在源码中,特别是当项目的源码很多时,你不知道这个类或这个方法是用来干嘛的,类之间的依赖和关联更让人困惑和畏惧,导致很快失去了兴趣。可以先读一读单元测试用例,它们是代码的活文档。
4、如果该项目有提供现成的example工程,首先尝试按照开始文档的介绍运行example
如果运行顺利,那么恭喜你顺利开了个好头;如果遇到问题,首 先尝试在项目的FAQ等文档里查找答案,再次,可以将问题(例如异常信息)当成关键词去搜索,查找相关的解决办法,你遇到了,别人一般也会遇到,热心的朋 友会记录下解决的过程;最后,可以将问题提交到项目的邮件列表,请大家帮你看看。在没有成功运行example之前,不要尝试修改example。
5、运行了第一个example之后,尝试根据你的理解和需要修改example,测试高级功能等
为了感知代码,做出修改,然后运行,看修改前后的变化,这能很快的感知代码 的作用。特别是对于参数,光看代码很难知道那一大堆参数是干什么用的,修改一下,改成相反的值或是改成不合常规的值,看程序有什么反应,很快便能知道它的作用。
6、在了解基本使用后,需要开始深入的了解该项目
例如项目的配置管理、高级功能以及最佳实践。通常一个运作良好的项目会提供一份从浅到深的用户指南,你并不 需要从头到尾阅读这份指南,根据时间和兴趣,特别是你自己任务的需要,重点阅读部分章节并做笔记。
7、尝试从源码构建该项目
通常开源项目都会提供一份构建指南,指导你如何搭建一个用于开发、调试和构建的环境。尝试构建一个版本。
8、如果时间允许并且有兴趣,可以尝试阅读源码
(1)、阅读源码之前,查看该项目是否提供架构和设计文档,阅读这些文档可以了解该项目的大体设计和结构,读源码的时候不会无从下手。
(2)、阅读源码之前,一定要能构建并运行该项目,有个直观感受。
(3)、阅读源码的第一步是抓主干,尝试理清一次正常运行的代码调用路径,这可以通过debug来观察运行时的变量和行为。修改源码加入日志和打印可以帮助你更好的理解源码。
(4)、适当画图来帮助你理解源码,在理清主干后,可以将整个流程画成一张流程图或者标准的UML图,帮助记忆和下一步的阅读。
(5)、挑选感兴趣的“枝干”代码来阅读,比如你对网络通讯感兴趣,就阅读网络层的代码,深入到实现细节,如它用了什么库,采用了什么设计模式,为什么这样做等。如果可以,debug细节代码。
(6)、阅读源码的时候,重视单元测试,尝试去运行单元测试,基本上一个好的单元测试会将该代码的功能和边界描述清楚。
- 由于Web服务器上的“ISAPI 和CGI 限制”的解决方法
- webapi 参数的传递
- docker部署golang(如何使用Docker部署Go Web应用的实现)
- HttpWebResponse.StatusCode请求状态代码
- idea 部署到tomcat 的项目在哪儿(使用IDEA创建Web项目并发布到tomcat的操作方法)
- 如何用tomcat部署web项目(一文搞懂如何部署启动多个tomcat并移植项目)
- html5 web技术(html5视频常用API接口的实战示例)
- web界面测试中需要测试的几个点
- tomcatweb 管理(Tomcat源码解析之Web请求与处理)
- Web开发中的几个建议
- web渗透网络基础(响应式Web之流式网格系统)
- iisweb服务器的启动与配置(win7 iis配置怎么配置 Win7配置IIS服务器图文教程)
- 常见的web应用服务器有哪些(常用的web服务器软件整理)
- websocket聊天室怎么设置(基于websocket实现简单聊天室对话)
- django对话框(基于django channel实现websocket的聊天室的方法示例)
- web服务器增加性能(Web 服务器性能与站点访问性能优化)
- 杯酒人生---瓦伦丁酒杯和奥丁格啤酒(杯酒人生---瓦伦丁酒杯和奥丁格啤酒)
- 中秋节买啤酒,预算超过7元试试这8种啤酒,麦香浓郁都是真啤酒(预算超过7元试试这8种啤酒)
- CellPress旗下的6 期刊,国人友刊来了解一下吧(CellPress旗下的6期刊国人友刊来了解一下吧)
- ()
- SCI检索 SSCI检索 EI检索 ISTP检索 CSCD检索简介(SCI检索SSCI检索EI检索)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
热门推荐
- sqlserver连接字符串函数(SQL SERVER 2012新增函数之字符串函数FORMAT详解)
- python读取文件怎么用(Python基础之文件读取的讲解)
- 有了云服务器还需要服务器吗(为什么云服务器淘汰了传统服务器?)
- 宝塔linux面板搭专业版(宝塔linux面板怎么卸载?)
- python迭代函数(详解Python中的内建函数,可迭代对象,迭代器)
- vue编程加入购物车(vuex实现简单的购物车功能)
- 云web应用防火墙(几款免费web应用防火墙云waf介绍及测评)
- css中的background:transparent的作用
- sql怎么把表移到另一个数据库中(sql存储过程实例--动态根据表数据复制一个表的数据到另一个表)
- python实用教程(Python简直是万能的,这5大主要用途你一定要知道!推荐)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9