写点什么

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:411789

评论

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

彰显个性│github和gitlab之自定义首页样式

自定义 主题 6月月更

哈希彩hash竞猜系统开发逻辑游戏玩法(源代码)

开发微hkkf5566

低代码开发是新瓶装老酒吗?

菜根老谭

趣步运动挖矿系统开发模式详情

开发微hkkf5566

淘金家园NFT链游系统开发逻辑分析

开发微hkkf5566

工赋开发者社区 | 风口上的低代码,技术人需要考虑哪些?

工赋开发者社区

低代码 低代码开发 低代码开发平台

Websocket 10分钟快速入门

领创集团Advance Intelligence Group

websocket

淘金家园NFT链游系统开发模式详解

开发微hkkf5566

用 Golang 重写 rsync(2):方案的选择

百家饭隐私计算平台创业者

c golang

3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力

亚马逊云科技 (Amazon Web Services)

UI 系统 新功能 Tech 专栏

数据库:高并发下的数据字段变更

C++后台开发

数据库 高并发 后端开发 Linux服务器开发 C++后台开发

IET技能调研首次落地亚洲国家 为阿联酋工程技术发展提供洞察

E科讯

Hoo研究院|5月下半月区块链行业投资机构动向

区块链前沿News

Hoo

云计算运维需要经常上夜班吗?需要倒班吗?

行云管家

云计算 运维 IT运维

GraphX 图计算实践之模式匹配抽取特定子图

NebulaGraph

图数据库 知识图谱 Nebula Graph

大数据培训Linux常用命令总结分享

@零度

大数据 Linux

WEB3:什么是去中心化数据库

devpoint

分布式 去中心化 Web3.0 6月月更 InfoQ极客传媒15周年庆

【Spring 学习笔记(六)】Spring Bean 后置处理器

倔强的牛角

Java spring 6月月更

多云管理平台和运维管理平台有什么区别?两者一样吗?

行云管家

云计算 多云管理 云管理

阿里超大规模 Flink 集群运维实践

阿里云大数据AI技术

大数据 flink 运维

代码注释的艺术,优秀代码真的不需要注释吗?

阿里巴巴中间件

阿里云 代码 技术分享

软件定义汽车时代下的云原生转型实战方法论

York

容器 云原生 车联网 软件架构 6月月更

2022年公共充电站运营端用户体验指数(UEI)发布

易观分析

汽车 新能源

5G、AI、云计算,什么是云渲染?

Finovy Cloud

人工智能 云服务器 GPU服务器

百问百答第41期:应用性能探针监测原理-Java探针

博睿数据

智能运维 博睿数据 性能检测

TiFlash 源码阅读(三)TiFlash DeltaTree 存储引擎设计及实现分析 - Part 1

PingCAP

函数计算异步任务能力介绍 - 任务触发去重

阿里巴巴中间件

阿里云 云原生 函数计算 FC

分布式数据库下子查询和 Join 等复杂 SQL 如何实现?

TDengine

数据库 tdengine 时序数据库

Seata 企业版正式开放公测

阿里巴巴中间件

阿里云 云原生 seata

Data Summit 2022 大会资料分享(共23个)

墨天轮

数据库 AI 数据仓库 数据湖 BI

一站式智能运维解决方案,企业系统的隐形守护者

云桌派

阿里云 IT 解决方案 智能运维 客户案例

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