Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
闲聊
[转]如何加入一个开源项目?
发布于 2011-06-02 06:42:51 浏览:3991
订阅该版
这不是一篇权威的指南,只是一些你需要遵循的基本规则,这些规则可以让你对开源项目的贡献使得你和项目维护者都感到愉快 ! 为什么加入一个开源项目? 首先,有很多加入开源项目的动机。排在第一的可能是“酷”:)当你告诉你的朋友“嘿,我在 XYZ 项目开发团队 ! 我很潮吧?” 但是这并不是一个很好的原因。加入一个开源项目的首先需求是你需要使用它 。如果你自己不会实际使用,那么就不会有很强的动机去加入一个项目。 其它一些加入开源项目的原因可能是: § 获得写权限,将你自己的特性或者 bug 修订加入到基础代码中; § 你认为自己能够对项目带来很大的提升; § 你有很多空闲时间:) 初始方法 因为如下两个原因,第一次加入一个开源项目可能需要慎重对待: 首先,没有标准的方法 ,没有“加入此项目”这个按钮。你需要直接联系项目的所有人(或者维护人),同他交谈。 对起步者来说,另外一个可能导致加入过程有点困难的事情是缺少课题。 在你尝试加入一个开源项目之前,你应该尝试自己启动一个项目。即使这仅仅是一个小项目或者只是一个 Lib 库,或者是一些简单但有用的东西,然后在你自己的 Blog 或者社交网站上宣告项目。如果你幸运的话,一些人会发现项目的价值,然后开始使用它。 通过做这件事情,你将学会两件事:首先是如何运转一个开源项目,其次是你的发明被很多其他人使用时是什么样子。当你意识到可能有成百上千的人使用你的代码,有的人检视它并反馈意见、想法、补丁包给你的时候,这是一件很令人激动的事情。 除了这些,你也可以看到社区是如何运转和发展的,你将开始从不同的环境不同的角度来看你的项目。 它将为你打开新的视野 ! 即使你已经做了这些事情,或者感觉自己已经做好无论如何都要加入一个开源项目的准备,也还有其它前提条件: § 你必须熟悉掌握项目使用的 VCS ( Version Control System )工具。例如,如果项目使用 Subversion ( SVN ),你必须知道如何提交、合并、回退、修补等等 § 你必须知道可读的代码和文档的重要性 § 你必须知道如何注释你的代码 如果你觉得所有这些你都没有问题,第一步就是开始“玩”项目:将代码 Checkout ,然后一头扎入代码中,去学习代码如何工作以及代码完成什么功能。 同时也要关注项目使用的编码风格,你不需要完全按照当前项目维护者那样编码,但至少要保证是相同的风格。你需要考虑到总会有人将要阅读和修改你的代码。 就像有人说的:编码的时候你要想象那个最后维护你代码的人是一个知道你住在哪里的暴力精神病患者 ! 当你感觉已经做好要加入的准备,你可以进入下一步:联系项目维护者! 初步联系 如果你准备运行自己的开源项目,你可能已经有了一个如何让你的 Email 被尊重和别人看到 Email 的时候如何想的好主意。 这个不是什么高深复杂的事情(原文为 rocket science ): § 这个家伙加入了许多开源项目,而且可能在项目中担任全职工作,所以 Email 要短、要令人愉快。 § 这个家伙根本不知道你是哪根葱。所有运行开源项目的家伙至少知道一件事情:好心未必有好报( Hell is paved with good intentions )。 § 展示你项目有关的知识,而不是你的激情。换句话说,向项目所有者证明你具有成为项目一部分的资格。如果你加入了,你有足够的时间来展示你的动力和激情 好的,我已经加入了,现在干嘛? 根据经验,有两种类型的人将加入开源项目:一种是推动项目前进的人,一种是不会推动项目前进的人。 与展示实际的资格相比,那些不会推动项目前进的人总是更加倾向于展示自己的激情。他们加入项目,然后从不提交任何东西,或者提交新的代码,或者提交新的功能,因此也不会带来任何 Bug 。 当加入一个项目的时候,问问自己是否有足够的动机去实际做一些事情是重要的,但不要做得太多也同样重要。 一个新的程序员在某种意义上来说有点像一个新的经理,要想成功,必须具备相似的品质。 一个真正优秀的经理将谨慎的接受一个新的工作职位。即使他的最终目标是将公司颠覆过来和优化整个流程,他也会以完美的模仿前任经理来作为开始。 为什么? 设身处地的想象一下:如果你是新经理的下属,或者新经理的上级,他们得到一个新的经理: A 经理:加入公司,试图将公司业务颠覆过来,打破正在运行的流程,阻止人们进行工作。但是经过一些列的困难工作后,前景将如此美好 ! B 经理:加入公司,完美地深入细节地工作,同时给工作流程带来小的增量的改进,最终起草并向上级提交详细、完整、通过颠覆原有流程来优化的计划。 谁将有更大机会获得成功? 很明显是 B 经理,因为首先他通过带来一些微小的改进来证明他更有竞争力,然后在他尝试去实施大的改进之前,提交一个清晰和完整的计划。 给一个开源项目带来很大改变不是不可能的,但首先你要证明你能够完成它。 一个成功的开源项目很像一个成功的商业:如果不毁灭它,那么很难带来很大的成功的改变。 所以特别小心你的大的改变。 事实上当加入一个开源项目后最好的开始的地方是非常基础的:在那些你只会带来很小危害的地方开始 ! 改进项目的文档或者注释、添加单元测试、或者做一些检视 ,这是一个了解项目、项目的缺点、项目的优点的好机会。项目维护者非常乐意你做这些,这也是获得他们的信任以及展示你是认真帮助项目的好机会。 创建你自己的分支也是一个好主意 ,这样你就是在一个沙箱(译者注:供儿童在其中玩耍的一个环境,类似于在海滩上堆城堡,可以随便推到从来,也不会带来什么危害)环境中,对项目来说,这样你就几乎没有可能做错事或者破坏项目。 尽管将主干版本合并到你的分支,这样就可以使得你的代码与时俱进。 政治环境 我不认为有任何成文的规定,但是你必须知道一些关于大部分开源项目的一个重要的事情: 没有民主 ! 随便你怎么说,但最终只有一个权威:项目所有者。 不喜欢这样?忘掉它吧(原为是 Fork it )。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/freeman1975/archive/2011/02/13/6182206.aspx
查看更多
4
个回答
默认排序
按发布时间排序
bernard
2011-06-02
这家伙很懒,什么也没写!
参与开源是很有意义的,找工作也容易了啊,酷 [s:175]
fengzi
2011-06-02
这家伙很懒,什么也没写!
受教了 [s:154] 暴力精神病患者 [s:175]
yao0718
2011-06-07
这家伙很懒,什么也没写!
Fork it 理解得似乎有问题
撰写答案
登录
注册新账号
关注者
0
被浏览
4k
关于作者
shaolin
这家伙很懒,什么也没写!
提问
115
回答
444
被采纳
0
关注TA
发私信
相关问题
1
嵌入式系统工程师行业认证
2
Google于9月2日推出出Chrome浏览器
3
开源家用类人机器人
4
今天发现CLF的IT人生版没了
5
面对多核芯片冲击,通信处理器何去何从?
6
三五个人十来条枪 如何走出软件作坊成为开发正规军[ZT]
7
老美在看什么?
8
油白菜2008来报道
9
刘军洛:中国应对世界金融危机的第二步
10
人民币兑美元大幅下跌,因中间价传出汇率政策调整信号
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
TinyUSB Demo运行教程
2
RT-Thread学习大礼包一键带走!
3
freemodbus从机调试说明
4
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
5
基于 RT-Thread 星火一号开发板的俄罗斯方块
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
用户名由3_15位
10
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
踩姑娘的小蘑菇
2
个答案
1
次被采纳
bernard
1
个答案
1
次被采纳
rv666
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部