QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

评论

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

Android | Tangram动态页面之路(三)使用

哈利迪

android

用原理认知世界,用情绪驱动行为

史方远

职场 心理 成长

识别代码中的坏味道(二)

Page

Java 面向对象 复杂代码优化 重构 CleanCode

键入网址后,其间发生了什么?

小林coding

TCP 计算机网络 网络协议 IP HTTP

如何发布一个npm包-创建,发布,更新,撤销及常见问题解决

Brave

npm

写在开头

宋胖子

解决 Django 多进程下,logging 记录日志错乱问题

AlwaysBeta

Python django 编程 日志 log

汉字不能编程?别闹了,只是看着有点豪横!容易被开除!

小傅哥

spring 小傅哥 aop 汉字编程

写作对我的意义

Neco.W

总结 思考 写作 感悟

如何用一套引擎搞定机器学习全流程?

Apache Flink

大数据 flink 流计算 实时计算

走进Golang之编译器原理

何磊

编译原理 Go 语言

新mac笔记本需要做的事情

好好学习

Mac

谈谈控制感(6):虚幻的控制感也好用

史方远

职场 心理 成长

一想到有95%的问题还没解决,我就calm down了

赵新龙

科普 宇宙 后真相时代

CentOS 6 升级 glibc

wong

centos glibc

《零基础学 Java》 FAQ 之 8-Java方法调用是传值还是传引用

臧萌

Java

一文带你了解 HTTP 黑科技

苹果看辽宁体育

大前端 HTTP

MySQL事务解析

一个有志气的DB

MySQL 事务隔离级别 mysql事务

比AtomicLong更优秀的LongAdder确定不来了解一下吗?

一枝花算不算浪漫

并发编程 jdk源码

如何搞定Kafka重复消费?

奈学教育

kafka kafka配置

回“疫”录(20):世界从来不会欺负听话的人

小天同学

疫情 回忆录 现实纪录 纪实

Design Sprint 教你五天完成产品迭代

Yanel 说敏捷产品

产品 敏捷 设计 产品设计 团队

英语学习中听和说的区别

董一凡

学习

Jenkins权限管理

kcnf

中小企业如何做运维自动化?

外滩运维专家

运维 spug 运维自动化 jenkins ansible

JAVA内存模型与线程

颇风

Java 内存模型 JVM

2020第一篇技术博客

java劝退师首席大弟子

生活

Dart 进阶 | 深入理解 Function & Closure

LitaVadaski

flutter dart

华为“补洞”:去年重新设计超过6000万行代码

罗燕珊

华为 实体清单

PhotoShop切图,一篇文章就够用了

cwang

Web 工具 PhotoShop

笔记:《如何系统思考》之如何应用系统思考

wiflish

思维方式

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