阅读更多

2顶
0踩

开源软件

原创新闻 如何才能运作好一个开源项目?

2013-08-16 10:40 by 副主编 wangguo 评论(5) 有7850人浏览
将一个项目的代码开源出来很容易,但是将它长久维护下去,并吸引更多人参与,这就比较难了。开发者Jim Cowart结合自身的开源项目维护经验,给出了本文这些建议,希望能为你的开源之路带来一些帮助。



1.  坚持遵循Wheaton法则

Wheaton法则的中心思想是“Don’t be a dick”,意思是不要成为一个不顾别人感受的人。在这里,我想说的是,你要耐心对待你的开源项目的用户。

我以前是一个音乐家,但是后来开始喜欢编写软件。我常常认为我的知识和同事相比就如同瑞士奶酪(千疮百孔),但是很快我发现,每个人与其他人相比在某些方面都存在一些优势和差距。因此,对于那些在某些知识领域不如你的人,要有耐心。

每个开源项目,无论大小,都会产生一个与它相关的文化。当你创造了这样一个文化,也意味着你已经创造了一个空间,供各知识水平的人来交流学习。要知道,能够成为其他人学习新事物路上的一个向导,将是一种荣誉。

2.  选择一个开源许可证

我选择的许可证是MIT。如果必要的话,你可以使用双许可证。你可以参考http://choosealicense.com/网站,或者阅读opensource.org中具体的许可证规范。

3.  不要急于发布1.0版本

你需要一些空间来对项目进行迭代、改进、重构和更改。

如果有人使用了你的v0.2.3版本,那么说明他们认为你的项目中存在的风险是可以接受的,即使项目还在起步阶段。你可以在README或者其他文件中提醒用户该项目还处于实验阶段,并可能随时会更改。

虽然我们都知道标上“1.0”标签在某些时候并不意味着完全可用于生产环境,但是大部分开发者都会有这种感觉。因此,不要急于将项目标记为1.0状态,这将有助于项目后续的改进。

4.  不要害怕重建API(但要负责任地做)

在早期维护postal.js这个项目时,我犯了一个大的错误——没有以我希望的方式重建API,现在回想起来,这样做似乎使得项目开发工作滞后了几个版本。

但我最终更改了API,我觉得这个项目有了新的生命,按我的想法进行扩展变得更加容易。

5.  不要害怕说“不”、“请提交测试”,“请修复{X}”等

有时你会收到一个有可怕想法的pull请求。但有时它也可能是一个伟大的想法,但不应该属于代码基本功能(也许应该作为一个插件)。

有时你会得到一个没有经过测试的pull请求。这些情况下,你需要以某种方式说“不”。当你这样做的时候,请参照第1条,应该礼貌地说明你的理由,而不应该只有一个“不”字。

如果你因为他们没有进行测试而说“不”,那么你最好也应该先对自己的代码进行测试。此外,如果你有一个特定的代码风格(制表符、空格等),请在你的README中说明。

6.  明智地选择合作伙伴

如果你的项目已经增长到需要合作伙伴的地步,那么可以考虑让其他开发者来作为项目共同所有者或维护者。前提是,你要明智地选择这些人。

要知道,没有人的想法会和你完全一样(这是很好的事情),但是你要确保你们的想法大部分能够重叠,以便项目能够朝着一个方向发展。无论一个人有多么博学或受欢迎,如果他是一个dick(见第1条),那么就不能让他成为项目所有者。如果在开源项目中出现派别争斗,那么项目离结束就不远了。

一些好的做法是,给予贡献者和所有者不同的权限。如果一个初级开发者想参与修复问题,不要给他所有者的权限。

7.  不要吝啬赞美和鼓励,给予贡献者应得的荣誉

作为一个开源项目所有者,如果有人为你的项目贡献了一条非常好的建议,一定要在公开场合经常表扬他。这样可以鼓励更多的人贡献更多的想法或代码。

我现在和一些人一起工作,如果他不能给我一些应得的荣誉的话,我想我在大多数事情上会对他产生不信任——不只是在开发工作上。

8.  不要害怕放弃

我之前开发过几个项目,当时我认为这些项目的想法很伟大,但是现在我已经放弃了这些项目。如果还有人发现你的项目有用并正在使用它们时,你很难放弃。但如果你因为学到了一些更好的方法,使得你放弃这个项目,你需要解释一下原因,有可能这会促成一个新的开源项目,并可以更好地帮助这些用户解决问题。如果你因为没有时间而放弃,你可以问问其他人是否愿意接管这个项目。

如果你放弃了一个有人在使用的项目,用户可能会沮丧。不幸的是,这就是现实。你要从长远来看。比如,我之前写了很多工具,但现在看来,这些工具充斥着各种糟糕的代码,似乎放弃这些是一个明智的决定。

总结

开源是美丽而危险的。美丽是因为可以让很多人为了一个目标而努力,危险是因为你需要有持之以恒、乐于分享的精神。

现在的一些光辉夺目的开源项目并不能代表所有,每天都会有大量的开源项目被创造,也有大量的开源项目死亡。你会发现一些对你有很大帮助的项目有可能在不久的将来会消失,除非该项目获得了足够多的贡献。这就是为什么持之以恒的精神和创造力对于一个开发者和开源项目来说比其他方面更重要。

英文原文:Open Source Project Advice
  • 大小: 12.1 KB
2
0
评论 共 5 条 请登录后发表评论
5 楼 MaxOmnis 2013-08-18 22:37
4 楼 马晨辉 2013-08-18 15:36
开源是一种信念,需要坚持与维护
3 楼 damoqiongqiu 2013-08-17 17:00
503718696 写道
damoqiongqiu 写道
我想,第一个条件是要有钱

可怕有钱还不行吧,要有钱多吧

呃,钱是第一个条件。
然后,请楼下继续补充。。。
2 楼 503718696 2013-08-16 13:13
damoqiongqiu 写道
我想,第一个条件是要有钱

可怕有钱还不行吧,要有钱多吧
1 楼 damoqiongqiu 2013-08-16 11:12
我想,第一个条件是要有钱

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • promote-open-source-project::page_facing_up:如何推广我的开源项目?-Open source

    本备忘单总结了在最佳条件下促进开源项目应遵循的重要步骤。 您可以单击项目以展开并从主题中获取更多信息。 可用语言列表: 缺少一种语言? 想要改善这份备忘单吗? ! 1。 :roller_coaster: 准备步骤 :OK_hand:...

  • ChatGPT 会开源吗?

    最近,我被一款叫做 ChatGPT 的人工智能(AI)聊天机器人,刷屏了。网上有人说它是搜索引擎杀手,还有人说它将取代程序员...最后,我还是没扛住铺天盖地的赞美,跑去注册了个账号,抱着调侃“人工智障”的心态,想要...

  • 【Java经验分享篇01】小白如何开始学会看开源项目?

    文章目录前言1.理解开源1.1.什么是开源?1.2.开源的定义1.2.1.开源软件优点1.2.2.经典开源软件案例1.3.关于开源协议1.3.1.如何选择开源协议2.如何查找开源项目2.1....如何分析一个开源项目3.2.1.观察

  • java的开源项目哪里找_如何做好一个开源项目(一)

    做好一个开源项目其实是一件比较费时费力费心的工作,它的最大难点除了代码维护之外,还包括后期的维护和持续的跟进。我曾经做过不少开源项目,但是坚持下来的,目前有信心能够持续维护...如何打造一个好的开源项目...

  • 中国第一个 Apache 顶级开源项目的突围之路!

    开源创业者如何才能在一片红海中乘风破浪

  • 作为Java新手,如何才能快速的看透一个Java项目呢?

    技术学习是一个总结、纠错、触类旁通的过程,而不是单纯重复练习的过程,如果你问一个做过5年以上Java的老码农,他们很多人都会有很强的“搬砖感”,这种“搬砖感”其实就是对Java项目的触类旁通、看出套路来了,...

  • 大数据相关开源项目汇总

    调度与管理服务 **Azkaban **是一款基于Java编写的任务调度系统任务调度,...**YARN **是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,解决了旧MapReduce框架的性...

  • 作为Java初学者,如何才能快速的看透一个Java项目呢?

    技术学习是一个总结、纠错、触类旁通的过程,而不是单纯重复练习的过程,如果你问一个做过5年以上Java的老码农,他们很多人都会有很强的“搬砖感”,这种“搬砖感”其实就是对Java项目的触类旁通、看出套路来了,...

  • 开源 (open source) 是什么?为什么要开源?

    从「开源」的早期讲起,其实和大多数人想象的不同,软件一开始并不是闭源的。 在上世纪 60 年代,IBM 等公司开发的软件都是自由分发的,同时也提供源代码。那个时候的商业模式更多是以硬件为主,软件作为硬件的附属...

  • [安卓开源项目]Android-炫酷的3D音乐播放器-各种特效OpenGL.zip

    毕设安卓源码,分享给需要的人。 对于现阶段的Android开发而言,技术深度很大一部分就体现在对...例如一个线程可以有几个Looper可以对应几个Handler?(字节跳动、小米) 如何更新UI,为什么子线程不能更新UI?(美

  • 工程师如何对待开源——一个老工程师的肺腑之言

    |作者:谭中意|编辑:李佳阳|设计:苏子馨|责编:王玥敏工程师如何对待开源本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20年的工程师,亲身经历或者亲眼目睹很多工程师对待开源软件的优秀实践,也看到...

  • 李凌:6 年,我如何从开源小白成为 Apache 顶级项目 PMC

    开源,是一条历史悠久的长河,一个 6 年的周期,相对这条长河很短;但一个 6 年的周期,却能让一段人生因开源而改变,李凌的成长就是其一。2016-2021 年,李凌完成了从一个纯「开源小白...

  • 我们需要什么样的开源教育?

    点击上方“开源社”关注我们| 作者:庄表伟|编辑:沈于蓝| 设计:宋传琪‍文章缘起‍写这篇文章的原因,是和几个朋友的闲聊。再之前,是因为看到了几篇文章2020-12-18 《欢迎加入!开...

  • 程序开源与不开源区别_什么是开源程序办公室? 为什么需要一个?

    程序开源与不开源区别 开源计划办公室是任何现代公司必不可少的组成部分,其计划要有一个雄心勃勃的计划来影响软件生态系统的各个领域。 如果公司希望增加影响力,澄清其开源消息传递,最大化其项目影响力或提高其...

  • 开源治理工具选一个

    随着开源技术在云计算、大数据、AI领域的不断运用,不断破除技术壁垒,让企业快速建立自身的应用,在开源软件基础一,自主研发部分代码,便可以推出企业自身品牌的产品,开源技术的应用极大的推动了云计算、大数据、...

  • 如何看待国内开源现状?贾扬清、李沐、陈天奇等大牛如是说

    选自知乎机器之心报道陈天奇、李沐、贾扬清、老师木等人如何看待国内开源现状?这篇文章也许能为 AI 社区的开发者们提供洞见。近年来,「开源」成为了国内科技公司对外传播技术实力的热门词汇。特...

  • 什么是开源的「第一性原理」?

    PART ONE「开源」遇见「第一性原理」第一性原理,First principle,维基百科的定义为:从基本的定律出发,不外加假设与经验拟合的推导与计算。「第一性原理」自 2017 年特...

  • 张海宁:首个 CNCF 中国开源项目 Harbor 的修炼之道

    「WeOpen Talk」是腾源会全新上线的「对话开源」内容专栏,每周为读者呈现一期与尖峰开源人物的精彩对话内容。在「WeOpen Talk」栏目中,我们将深刻诠释开源先锋者们的开源精神、...

  • python学习导航.txt

    python

Global site tag (gtag.js) - Google Analytics