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崩溃,这真是一件让人沮丧的事情。
\
从融入开源社区的自由精神,到如何在开源社区蓬勃发展,是每个热爱并有意投身开源事业的工程师,需要学习的课题。读者朋友对开源项目运作和发展有任何看法,欢迎大家发表意见,开源项目需要融入和热情。