阅读更多

11顶
14踩

开源软件

翻译新闻 如何做一个真正牛X的开源项目

2013-04-25 17:45 by 副主编 wangguo 评论(17) 有37042人浏览
近年来,越来越多的开发者选择将自己的产品以开源形式发布,有时的结果是——你满怀诚意地开源,却无人问津。尽管你的产品做得相当好,但是仅把产品的源代码公布出来,这还不算开源,因为其他用户可能无从下手。没有用户,久而久之,你的满腔热情就会熄灭。

那么如何才能让开源项目为更多人所知,成为一个真正牛X的开源项目呢?除了项目自身优秀外,你还需要注意以下事项。

一、有一个真正有用的README

即使你为你的开源项目制作了一个很好的网站,但是一些潜在用户很可能会首先通过阅读README文件来了解这个项目。因此,你要确保在README中提供尽可能全面的信息:

1.  依赖、安装信息

尽可能写清楚依赖、安装信息,最好能够让用户通过复制粘贴相关代码来添加依赖。比如这样

2. 项目成熟度状态

不至于让用户在生产环境中用了几个月后才发现你的项目才处于Alpha阶段。

3.  详细说明项目支持的语言、运行环境和工具的版本

不至于让用户花费大量的时间去摸索你的项目的兼容性。

4.  明确所使用的许可证

这个许可证需要是流行的、用户都知道的,如果你自己创造一个或使用一个陌生的(比如WTFPL),那么没有用户敢于在自己的产品中使用你的开源项目的。你可以选择比较友好的 Apache Public License 2.0Eclipse Public License等。需要注意的是一些许可证(比如MIT)也是比较流行的,但是没有提供任何专利保护。你也可以采用APL2/GPLv2双许可,让用户挑选适合他们的。

二、为你的项目写一个文档

写文档并不容易,且比较费时,但是对于用户来说,文档是了解一个项目最便捷、最省时的方式,还可以让用户相信你不会轻易放弃这个项目。

在文档中,把你的项目可以帮助用户完成的事情放在首位,这是用户决定是否使用这个项目的关键。此外,你要让用户相信做这个项目的是个人,而不是一个会产生代码的机器人。

关于开源项目文档,建议你阅读:开源项目文档应规避的13处“硬伤”

三、项目可以很容易地升级

随着项目中bug的修复和一些功能的改进,你需要发布另一个版本。需要注意的是:

1.  向后兼容

不要因为不向后兼容,而让用户重写大量代码。这样会让用户愤怒,继而抛弃你的项目。当然,你也不必像OpenJDK那样兼容15年前的产品。

2.  更新日志

有一个清晰明确的更新日志,需要包含:该版本发生了什么变化?会破坏用户现有项目的代码吗?等等。比如Twitter的做法:

  • 每修复一个bug,就在更新日志中写上一个简短的条目
  • 每添加一个功能,就简要描述一下并附上一些示例代码
  • 每改变一个API,就需要在日志中用粗体明确指出
如果你有多个分支,就需要为每个分支都写一份更新日志。

3.  版本标签

为你的项目的每一个版本打上一个标签,比如v1.0.0-alpha1、v1.0.0、v1.1.2,可以让你的用户很清晰地分辨出项目的版本。

4.  发布公告

项目发布后,接下来就需要为这个事件写一篇博文,或直接将公告发布到项目的邮件列表中。

在公告中需要说明这个项目有什么用,是否向后兼容,并给出更新日志的链接。

5.  项目状态标签

有些项目很长时间一直使用相同的版本号,比如1.1.0,而项目一直在改进。如果这是一个开发版本,你也需要通过标签来说明项目所处的开发阶段。比如:

  • 1.1.0.pre1
  • 1.1.0-alpha1
  • 1.1.0-SNAPSHOT
总之,你要确保项目有一个严格的版本命名规划。

四、使用GitHub

在GitHub上,你可以很容易地做下面的事情:

  • 发布你的项目
  • 浏览和搜索代码
  • 专注于项目issues
  • 参与贡献,合并用户的贡献
五、确保有一个为用户提供支持的地方

如果你的项目达到一定的普及程度,你就会不断收到用户的提问。你需要有一个收集和回答用户提问的地方,比如论坛、邮件列表等。只要有一个交流的地方,用户也可以彼此提供帮助。久而久之,就会形成一个很不错的社区。

六、项目传递

不排除这种情况——你可能会对项目维护失去兴趣,或者你换了一个新工作不再使用当前的项目了。你可以在邮件列表上公布,让其他开发者接管你的项目。在Github上项目所有权转移会更容易,尤其是在别人为你的项目引入了新功能后。

无论如何,不要让项目死掉。

七、总结

总之,在你打算发布开源产品时,请确保它有:

  • 清晰的依赖/安装说明
  • 至少有一个简短的文档/指南
  • 库中包含更改日志和相关标签
  • 一些关于支持语言、运行环境、工具版本、项目成熟度的信息
  • 邮件列表,供用户提问、相互帮助
八、最后

总之,要想让你的开源项目“发扬光大”,首先应该让它对用户更友好。除了项目文档外,其他事情花费不了多长时间。

另外,将项目开源出来容易,长时间维护就难了,因此,你还需要具备坚毅的精神和打持久战的准备。当然,如果你只希望将项目开源出来,而不指望它能够发展得多好,那么你完全可以忽略以上的所有内容。

英文原文:How to Make Your Open Source Project Really Awesome
11
14
评论 共 17 条 请登录后发表评论
17 楼 twtiyb 2013-05-07 17:36
差沙 写道
好文,我的开源项目要借鉴。确实做一个合格的开源项目很难,尤其是在非英语系国家,想要向国际化发展更难。顺便广告一下 http://xadmin.io


这界面看起来华丽了,不过只是眼前一亮,但是想看什么东西还是挺费劲的。
16 楼 guaishou 2013-04-28 10:40
leon1509 写道
guaishou 写道
哇哈哈,看来我的开源项目算是及格了,200多页的开发手册呢~~(广告:code.google.com/p/portal-basic/)


您的开发手册就像老太太的裹脚布!新手看不明白,技术好的大部分都会,没说出你框架的主要特点。一点读后感,别介意!

不介意,任何意见都得听。你是第一个说不好的,这很重要。
15 楼 leon1509 2013-04-28 10:05
guaishou 写道
哇哈哈,看来我的开源项目算是及格了,200多页的开发手册呢~~(广告:code.google.com/p/portal-basic/)


您的开发手册就像老太太的裹脚布!新手看不明白,技术好的大部分都会,没说出你框架的主要特点。一点读后感,别介意!
14 楼 PetriNet 2013-04-27 19:58
房贷,孩子,养老,压得直不起腰,哪有这闲工夫,扯
13 楼 guaishou 2013-04-27 11:00
geminiyellow 写道
guaishou 写道
哇哈哈,看来我的开源项目算是及格了,200多页的开发手册呢~~(广告:code.google.com/p/portal-basic/)

有没有计划port到git上去呀,总觉得google code看起来不舒服。

刚好相反,我觉得google上最省事,下载一个文件就什么都全了,github不知是我不会用还是怎样,只能下载源代码。难道想用一个东西还要自己编译、打包?
12 楼 SpringLin 2013-04-27 10:18
感觉提议不错, 需要注意的地方还挺多的
11 楼 geminiyellow 2013-04-26 23:43
guaishou 写道
哇哈哈,看来我的开源项目算是及格了,200多页的开发手册呢~~(广告:code.google.com/p/portal-basic/)

有没有计划port到git上去呀,总觉得google code看起来不舒服。
10 楼 guaishou 2013-04-26 21:54
哇哈哈,看来我的开源项目算是及格了,200多页的开发手册呢~~(广告:code.google.com/p/portal-basic/)
9 楼 phlsbg 2013-04-26 20:14
xxg2810 写道
这是老外写给老外看的,中国哪个程序员有功夫做开源项目?有点时间睡睡觉,别加班就不错了

还在加班。。
8 楼 xxg2810 2013-04-26 16:28
这是老外写给老外看的,中国哪个程序员有功夫做开源项目?有点时间睡睡觉,别加班就不错了
7 楼 McYeah 2013-04-26 14:00
  随便看下而已,还没有开发开源项目的实力...
6 楼 afuer 2013-04-26 11:23
的确不错。开源项目,只有代码是不够的。不能很好的坚持也是不行的。
5 楼 差沙 2013-04-26 11:14
好文,我的开源项目要借鉴。确实做一个合格的开源项目很难,尤其是在非英语系国家,想要向国际化发展更难。顺便广告一下 http://xadmin.io
4 楼 weng 2013-04-26 10:36
geminiyellow 写道
好苦逼,又要给你看,又要给你做科普。

3 楼 geminiyellow 2013-04-26 09:45
好苦逼,又要给你看,又要给你做科普。
2 楼 minimu 2013-04-26 09:33
这些其实都不是核心的东西,纯技术人员写的东西。技术和项目,距离也许是咫尺,也许是天涯
1 楼 kukuzidian 2013-04-26 08:48
国内很多开源项目只有源码,没有项目相关的设计文档、或者文档没有及时更新。
文章写的太棒。。。。。。支持。。

发表评论

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

相关推荐

  • 尖峰对话区块链.zip

    火星财经及共识实验室发起人王峰从区块链的技术、应用、投资与创业等角度,与以太坊创始人V神、阿里巴巴集团学术委员会主席曾鸣、比特大陆联合创始人吴忌寒、币安创始人赵长鹏、360公司董事长周鸿祎等在区块链领域中产生过重要影响的15位人物,展开了富有启发性的尖峰对话。区块链技术爱好者、互联网从业者、加密资产投资者可以从中认识到区块链这个新物种的技术发展脉络及市场成长潜力。

  • 电脑电容:不可小觑的作用

    电视与电脑电路的工作状态不太一样:电视电路的多在高电压、低电流(相对而言)状态下工作;而电脑的CPU工作在低电压、大电流状态---大电流需更大的滤波电容才能稳定工作,所以电脑主板上多见大容量电容。理论上讲电容容量越大滤波效果越好、CPU工作越稳定,但容量越大,体积越大(安装空间有限制),价格也越高。   电容在主板中主要用于保证电压和电流的稳定(起滤波作用)。现在的PC越快,随着CPU主频和系统总线工作频率的提高,对主板供电的要求也越来越严格,因此主板稳定工作的前提是必须有纯净的电流供应。从机箱电源出来的电流如果用示波仪器观察会发现有很多的尖峰和杂波,这些尖峰和杂波都是主板稳定工作的大敌,因

  • 尖峰集团:尖峰集团2020年年度报告.PDF

    尖峰集团:尖峰集团2020年年度报告.PDF

  • 尖峰对话区块链241页.pdf

    尖峰对话区块链241页.pdf

  • 乘风破浪的中国数据库

    相比 2012 年的 O2O 大战、2015 年的双创热潮、2016 年的小巨头合并,以及2018 至 2019 年的中概股扎堆上市,2020 年显得格外寂寞。早在几年前,英特尔 CE...

  • 如何做一个真正牛X 的开源项目

    近年来,越来越多的开发者选择将自己的产品以... 那么如何才能让开源项目为更多人所知,成为一个真正牛X的开源项目呢?除了项目自身优秀外,你还需要注意以下事项。 一、有一个真正有用的README 即使你为你的开源...

  • 如何做一个牛X的开源项目

    近年来,越来越多的开发者选择将自己的产品以开源形式发布,有时的... 那么如何才能让开源项目为更多人所知,成为一个真正牛X的开源项目呢?除了项目自身优秀外,你还需要注意以下事项。  一、有一个真正有用的READ

  • Android 开源项目和文章集合(更新:2022.03.21)

    我做了一个思维导图,专门总结我学的博客文章:https://mubu.com/doc/j6EJGn9kZT 1.不用命令也能看依赖树 https://www.likecs.com/show-204343781.html 2022.3.21 1.你永远想不到一个try-catch可以玩出这么多花样...

  • 牛x!基于Springboot 2.0 + LayUI开发的物流管理系统(已开源)

    点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网...

  • 「转」中国数据库40年历史:隐秘的江湖与恩怨

    转自: https://baike.baidu.com/tashuo/browse/content?id=a2db9e0a9f98abf4eeb7771c&lemmaId=&fromLemmaModule=pcBottom 诞生于恢复高考之后 1978年,恢复高考以后的第一批学生,离开他们工作的农场、工厂,乃至西双版纳的热带森林,重新捡起书本,走进了大学校园。 迎接他们的老师萨师煊...

  • 如何高效地学习开源项目

    今天这期“特别放送”,我想和你聊聊如何高效地学习开源项目,一方面澄清开源项目学习过程中的几个误区,另一方面谈谈我自己具体实践时的一套方法论。 得益于开源运动的蓬勃发展,众多技术顶尖的公司、团队或者个人...

  • 一个前端开发者投稿了两个不错的前端开源项目

    今天给大家推荐的开源项目是来自于一个投稿者,这个投稿的作者一看就是前端开发者,因为投稿了两个开源项目都是前端相关的。第一个:echarts-map-demo这个开源项目的作用是干什么的呢?我们作为前端开发者是不是经常...

  • 我在 GitHub 上看到了一个丧心病狂的开源项目!

    有人说,写作是少数可随时间推移而不过时的技能之一。但实际情况是,尽管许多人在写作这条道路都做出了尝试,可最终坚持下来的只有极少部分人。在这当中,导致他们放弃或停止写作的最...

  • 如何做一个有效的开源

    近年来,越来越多的开发者选择将自己的产品以开源形式发布,有时...那么如何才能让开源项目为更多人所知,成为一个真正牛X的开源项目呢?除了项目自身优秀外,你还需要注意以下事项。  一、有一个真正有用的README

  • Android最牛的开源整理

    这是一个基本把github上所有优秀安卓的开源代码整理了,下面是都是转自https://github.com/Trinea/android-open-project,都是一些牛人,很有开源精神的达人做的,学习时,同时力推荐...这个网站把许多开源项目进行了...

  • android 各类开源项目整理 包括 个性化控件 工具库 完整优秀项目

    注 内容来自github ...Android 开源项目第一篇——个性化控件(View)篇包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、TextView、ScrollView、TimeView、TipView、FlipVi...

  • 辽东满族望族八大姓氏探源

    辽东满族望族八大姓氏探源     辽东地区是满族的发祥地,现今仍是满族人民集居的地方。在辽东诸多的满族姓氏中,满族集居地人民通常将佟、关、马、索、赫、富、那、郎八个满族姓氏,推崇为陈满洲著姓,同时又将其俗称谓“满洲八大姓”。然而,现今俗称谓八大姓的满族著姓姓氏,是自清代中期以后而冠用和改用的汉字姓。而历史上,他们是女真人的直系后裔,是早期进入辽东地区的满族先世。        查寻辽东满洲八大姓的

  • 八字实战讲义之二

    孙膑求财歌  世应是财求易得,卦若无财少准凭,财爻化鬼成凶象,鬼化为财是吉神。财破空亡难把握,若逢二煞贼相侵,难求外怕财爻动,易见财时在内兴。世若克财休启齿,财来克世得千金,诸爻若总无财象,子动龙爻亦可寻。世应若合最为吉,子孙合时为福德,月建月德要相扶,求财数倍终须德。内为人兮外地头,人克地头有淹留,地头克人兼旺相,若遇求财数倍收。日辰克我贷出手,若克地头贼相守,青龙发动最为佳,阴阳得位财须有。外

  • 夏季大米容易生虫子 办法:米桶里放些干海带

    夏季大米容易生虫子 办法:米桶里放些干海带  2005-08-15     胶东在线消息 市民孙女士说,她家贮藏的大米生了许多白色的小虫子,她不知该怎么办?帮办员咨询专家得知,对付大米里的虫子办法很简单,只要在米桶里放一些干海带就可防治它们。   具体办法是:将海带和大米按重量1:100的比例混放,每周取出海带晒去潮气,便能保持大米干燥不霉变,并能杀死米虫;将装米的布袋在煮沸的花椒水中浸泡,把大米

Global site tag (gtag.js) - Google Analytics