Mitchell Hashimoto 是一名开源软件工程师, Vagrant 项目的作者, Vagrant 是一个用 Ruby 实现的用于构建虚拟化开发平台的工具。 如今 Vagrant 已经被无数人使用,并成功获得了两个赞助商做收费技术支持。 Mitchell 在其博客上,分享了开发开源软件的经验和心得,这里不仅仅是技术,还有如何做一个好的开源项目维护者,以及如何推广自己的产品。
第一块是开源软件文化——适用大部分开源软件
- 友好的态度
- 不要对开发者设置过严的开发规范
- 开发文档的编写很重要
- 有一个清晰的沟通方式
- 一个人不可能懂所有的事情
第二块是市场推广相关的心得——如何推广自己的产品
- 将项目提到 Hack News 社区里面,并做好回答问题的准备
- 和优秀的博主合作,让他们书写你的项目来获得更多的关注
- 在参加正式会议之前,多参加本地聚会做演讲
- 在区域性会议上做演讲
- 在正式大型会议上做演讲
第三块是软件工程方面的点滴——软件开发过程需要注意的事情
- 测试、测试,不论是单元测试还是系统集成测试,都对软件产品的发布起到至关重要的作用
- 尽早支持 Windows,可以规避后期底层依赖对于 Windows 不兼容而导致大量代码改动的风险
- 避免使 Ruby FFI 库,它的定期更新和升级会带了很多麻烦
- 与你依赖的第三方库的维护者交朋友,这样可以更多了解 bug 的严重性和需要修复的期限
以上 Mitchell 的博客分享,引发了一系列的评论:
@Rob G 说:有两点让人印象非常深刻
- 注重文档,大部分开源社区都不太讲究这个,大家的思维差不多都是代码就是文档
- Windows 兼容性,好多开源软件支持 Windows 是件费时费力的工作,大部分人不爱做这件事
对于 Minitchell 的分享,也存在不同的声音:
@postmodern 说:避免使用 FFI 库这种说法,简直是太荒谬了。 FFI 库从 0.6 版本,我就开始一直使用,我可以报告给大家说 FFI 1.x 版本是非常稳定的。很多 FFI 的问题都是开发者自己的错误造成的。
Minitchell 针对此评论进行了回复:
FFI 本身是很好的功能库,但 Ruby FFI 库实在太差了,我尝试使用 18 个月,但结果只有痛苦。一觉醒来,发现 Ruby FFI 一个版本的发布就导致 Vagrant 崩溃,这真是一件让人沮丧的事情。
从融入开源社区的自由精神,到如何在开源社区蓬勃发展,是每个热爱并有意投身开源事业的工程师,需要学习的课题。读者朋友对开源项目运作和发展有任何看法,欢迎大家发表意见,开源项目需要融入和热情。
评论