写点什么

Vagrant 作者分享开源体会

  • 2012-05-04
  • 本文字数:932 字

    阅读完需:约 3 分钟

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 崩溃,这真是一件让人沮丧的事情。

从融入开源社区的自由精神,到如何在开源社区蓬勃发展,是每个热爱并有意投身开源事业的工程师,需要学习的课题。读者朋友对开源项目运作和发展有任何看法,欢迎大家发表意见,开源项目需要融入和热情。

2012-05-04 03:411967

评论

发布
暂无评论
发现更多内容

python干货——函数

Java学术趴

7月日更

CentOS 7 常用的 11 个小技巧

耳东@Erdong

Linux 7月月更

LibcarePlus 用户态热补丁技术那些事

openEuler

安全 openEuler 漏洞 #开源

Redis管道技术/分区

恒山其若陋兮

7月月更

Qt|字符串生成二维码功能

中国好公民st

qt 7月月更

基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2

琦彦

ubuntu Kubernetes

1000个Okaleido Tiger首发上线Binance NFT,引发抢购热潮

BlockChain先知

微信朋友圈的高性能架构设计

张立奎

通过http请求启动jenkins任务

程序员欣宸

Java jenkins 7月月更

Qt | 设置部件大小 sizeHint、minimumSizeHint、sizePolicy、stretch factor

YOLO.

qt 7月月更

1000个Okaleido Tiger首发上线Binance NFT,引发抢购热潮

股市老人

Harbor2.2 精细化的权限控制

琦彦

Harbor

在openEuler社区开源的Embedded SIG,来聊聊它的多 OS 混合部署框架

openEuler

Linux 开源 操作系统 嵌入式 openEuler

视频号加强打击低俗内容:对违背公序良俗的内容必须赶尽杀绝

石头IT视角

ES6箭头函数的使用

bo

JavaScript 前端 ES6 7月月更

汇编语言伪指令详解(附实例)

timerring

汇编语言 7月月更 伪指令

设计模式之禅(一)

青柚1943

设计模式 SOLID 设计原则

Idea:Git的常用菜单操作和常用命令

琦彦

IDEA git常用命令 git 学习

数据中台:始于阿里,兴于DaaS

雨果

数据中台 数字化转型 数据共享 DaaS数据即服务

openEuler 资源利用率提升之道 01:概论

openEuler

开源 openEuler 内核 资源管理

使用 Vue + Three.js 构建交互式 WEB 作品展示集(一)

devpoint

Vue three.js 7月月更

架构实战营模块二作业

zhihai.tu

1000个Okaleido Tiger首发上线Binance NFT,引发抢购热潮

鳄鱼视界

设计模式之禅(二)

青柚1943

设计模式 设计原则 策略模式 观察者模式 模板方法模式

JAVA编程规范之建表规约

源字节1号

后端开发

D1-H 开发板——哪吒 开发入门

贾献华

7月月更

strncat() strncmp()

謓泽

7月月更

什么是 Rest 动词

宇宙之一粟

REST API 7月月更

计算机网络之初识网络

未见花闻

7月月更

Vagrant作者分享开源体会_Ruby_李湃_InfoQ精选文章