熟悉开源项目的方法
熟悉开源项目的方法
熟悉开源项目的方法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)、阅读源码的时候,重视单元测试,尝试去运行单元测试,基本上一个好的单元测试会将该代码的功能和边界描述清楚。
- thinkphp接口开发实例(ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解)
- web前端项目的目录结构
- pythonsocket编写web服务器(局域网内python socket实现windows与linux间的消息传送)
- 服务器宕机处理方式(web服务器宕机监控方法大全)
- vscode报错提示框(关于在vscode使用webpack指令显示"因为在此系统中禁止运行脚本"问题)
- web前端字体和图标(web字体加载方案优化小结)
- webpack源码解析(80行代码写一个Webpack插件并发布到npm)
- web.config中customErrors的配置
- apache怎么配置服务器(Apache2 WEB服务器的配置步骤分享)
- html5 webrtc技术详解(Html5 webRTC简单实现视频调用的示例代码)
- 搭建web服务器的步骤(windows下三种web服务器搭建方式)
- 微信小程序可以用h5开发不(微信小程序webView嵌入H5的方法实例)
- pythonweb和nodejs(Node与Python 双向通信的实现代码)
- server2008对前端有啥用(MyWebServer好不好?MyWebServer WEB服务器软件介绍)
- localstorage底层技术(浅谈Web Storage API的使用)
- app怎样像web一样调试(详解webapp页面滚动卡顿的解决办法)
- 谢娜是得罪快乐大本营造型师了吗 全场被黑化(谢娜是得罪快乐大本营造型师了吗)
- 前《iLOOK》时装总监 《快乐大本营》御用造型师上线(快乐大本营御用造型师上线)
- 释小龙晒杀青照片 多重身份惹观众期待(释小龙晒杀青照片)
- 《九牛之人降魔传》开机 演员祁高坤化身九牛之人除魔卫道(九牛之人降魔传开机)
- 王铲铲的致富之路无限金币卡法攻略教学(王铲铲的致富之路无限金币卡法攻略教学)
- 文明6金币太少怎么办 文明6无限刷钱教程(文明6金币太少怎么办)
热门推荐
- 什么是mime编码(Mime类型与文件后缀对照表)
- thinkphp5访问路径(thinkphp5修改view到根目录实例方法)
- echarts柱状图颜色设置(Echarts基本入门之柱状图、折线图通用配置)
- 用python实现atm银行系统(Python实现的银行系统模拟程序完整案例)
- mysql性能怎么看(是什么影响了 MySQL 的性能?)
- python怎么判断文件大小(python3实现指定目录下文件sha256及文件大小统计)
- python复杂的验证码处理(Python 通过打码平台实现验证码的实现)
- sqlserver数据库备份怎么还原(SQL Server2012数据库备份和还原的教程)
- 查看云服务器宽带(云服务器如何测试宽带)
- laravel配置文件动态化(在Laravel 的 Blade 模版中实现定义变量)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9