-
如何参加开源项目
- 时间:2024-11-05 23:02:40
大家好,今天Win10系统之家小编给大家分享「如何参加开源项目」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!
1.如何加入开源项目
为什么加入一个开源项目?
首先,有很多加入开源项目的动机。排在第一的可能是“酷”:)当你告诉你的朋友“嘿,我在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)。
2.如何找到适合自己学习的开源项目
1、先给自己定定目标(大、小、长、短),这样学习会有一个方向;然后梳理自身的学习情况,找出自己掌握的薄弱环节、存在的问题、容易丢分的知识点;再者合理的分配时间,有针对性的制定学习任务,一一的去落实。
2、可以学习掌握速读记忆的能力,提高学习复习效率。速读记忆是一种高效的学习、复习方法,其训练原理就在于激活“脑、眼”潜能,培养形成眼脑直映式的阅读、学习方式。速读记忆的练习见《精英特全脑速读记忆训练》,用软件练习,每天一个多小时,一个月的时间,可以把阅读速度提高5、6倍,记忆力、理解力等也会得到相应的提高,最终提高学习、复习效率,取得好成绩。如果你的阅读、学习效率低的话,可以好好的去练习一下。
3、要学会整合知识点。把需要学习的信息、掌握的知识分类,做成思维导图或知识点卡片,会让你的大脑、思维条理清醒,方便记忆、温习、掌握。同时,要学会把新知识和已学知识联系起来,不断糅合、完善你的知识体系。这样能够促进理解,加深记忆。
4、做题的时候要学会反思、归类、整理出对应的解题思路。遇到错的题(粗心做错也好、不会做也罢),最好能把这些错题收集起来,每个科目都建立一个独立的错题集(错题集要归类),当我们进行考前复习的时候,它们是重点复习对象,保证不再同样的问题上再出错、再丢分。
3.如何更有效地学习开源项目的代码
1.在下载源代码之后,首先要跑起来,编译通过、正常运行;2.在你觉得最有可能运行到的地方,设置断点或者抛出异常,这样,就能够找到一个项目在正常运行时的入口点;3.从入口点所在的那个源文件开始阅读,逐步把握整个项目是如何启动起来;4.随便改点代码,看看会不会报错,如果报错,会从哪里报错;5.试着把报错屏蔽、修复、或者绕开;6.尝试理解一个系统的内部结构,多少组成部分,主线模块是哪些?辅助模块是哪些?7.从实际需要出发,修改这个项目,满足自己的某一个小的需求。(注意在此之前,尽量不要在网络上找答案);8.看看相关的讨论与心得,是否与自己的理解相一致;9.提交bug fix或者某个新的功能代码。在学习开源的过程中,有几个方面会获得大量收获,1.架构与模式;2.开源社区常见的一些惯用法;3.相关领域的结构与算法。总结一点:学习开源,尽可能在代码里找答案,而不是在代码之外找答案,那些都是二手的,而且很可能不准确。
4.怎么在GitHub上为开源项目作贡献
你要看下它的开源许可协议,不同的协议限制是不同的,如下是一些常见的协议
apache lience允许使用者修改和重新发布代码(以其他协议形式),允许闭源商业发布和销售。
bsd协议,需要遵守以下规则(2-clause则不带第3条):
1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的bsd协议;
2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档那个和版权声明中包含原来代码中的bsd协议;
3.不可以用开源代码的“作者/机构的名字”或“原来产品的名字”做市场推广。
gpl的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
mit是和bsd一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。
要点:商业软件可以使用,也可以修改mit协议的代码,甚至可以出售mit协议的代码。
5.如何加入一个开源项目?
这不是一篇权威的指南,只是一些你需要遵循的基本规则,这些规则可以让你对开源项目的贡献使得你和项目维护者都感到愉快!为什么加入一个开源项目?首先,有很多加入开源项目的动机。排在第一的可能是“酷”:)当你告诉你的朋友“嘿,我在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)。
6.如何参加开源项目?
If you wanted to join an open-source project first thing you do is get on the mailing list.I started working with it. I saw these problems. I fixed them. Here they are. 这类人可以加入.I am a Java engineer from Dallas, Texas. Ive been working for five years, and I really would like to help. Give me something to do.这些人往往什么都不做.他们是光说不练的专家. 第三类人是空想家,他们说,I think Freenet is great, but it needs permanent storage, announcements, and boadcasting. 他们往往永远都不会参与进来.我在想是什么让核心程序员与众不同呢,他们愿意做那些没人做的任务,因为我认为他们对个人职责和长期的路线有着很好的理解. 所以那些不太积极的人将会去做简单或有趣的工作,而核心程序员会出现在需要他的地方,以便项目能持续地发展下去. 参与开源项目需要团队精神,也许就是助人为乐,高风亮节之类的吧. 我比较欠缺这种精神,应该多为别人着想才是啊. 并且,光说不练是不行的,但光练不说也不行,我觉得一个团队应该多交流,不管说的对或错,也不管是不是有人格问题,表达思想应该是自由的,只要不互相攻击就行. 根据上文资料的意思,只要去做了就已经参与到项目中了,无需别人分派任务,但对于Joiner来说,起码应该有一个引导或者说明吧,对项目有个起码的了解是必要的啊?应该乐于修改原有的代码,这叫hack,应该抱着这样的心态,反正又不是我的东西,改了又没啥损失. 我觉得开源的本意就是鼓励这样做的~
以上就是关于「如何参加开源项目」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~
【此②文为Win10系统之家www.ghost580.net文♀章,转载请联系网站管理人员!】
相关文章
-
1.如何加入开源项目为什么加入一个开源项目?首先,有很多加入开源项目的动机。排在第一的可能是“酷”:)当你告诉你的朋友“嘿,我在XYZ项目开发团队!我很潮吧?”但是这并不是一个很好的原因。加入一个开源项目的首先需求是...
-
1.个开发项目(web前端),需要做哪些准备web前端开发工程师,做的工作与网站前/后台系统的页面相关,使用到的主要技术包括:HTML、CSS、JavaScript,如果能会后台编程语言,当然会更好。现代web前端开发已经不能像传统web开发...
-
1.企业参加校园招聘会流程步骤都有哪些?第一阶段:准备阶段,要做的工作有确定招聘职位和人数;成立招聘小组;联系招聘学校;准备相关资料。1、确定招聘职位和人数:这是招聘应届生的前提,就是要招哪些职位的储备人才,要招...
-
1.明日之子的报名方式?有腾讯直播APP、微博、K歌平台报名三种报名方式。1、腾讯直播APP报名(1)下载腾讯直播APP;(2)点击明日之子招募banner,火速前往报名(实名制);(3)选择合适的专属渠道,输入报名信息;(4)审核后就可直播...