我的开源实践:探索开源的真正含义

发表时间: 2020-03-07 19:09

前言

就在不久前,我终于将自建的测试平台打磨成了我最喜欢的模样,这一天,我决定将他开源出去……那种感觉,好似小女儿出嫁了一般,担忧而又期望。


正文

为什么要开源


I. 测试平台的由来

刚开始决定(大概是开源前一年左右)自己开发测试平台时,首要目的是 解决自己当下的问题

  • 测试脚本越堆越多,难看
  • 测试脚本越堆越多,不想维护
  • 测试脚本越堆越多,不易于管理

故下定决心选择将自动化测试 平台化,虽然有大把看似功能完善的开源测试平台,但是我坚信,只有自己开发的才是最合适、最好用的。测试平台整个开发过程非常艰辛、痛苦。最开始、我预估只需要一个月左右就能产出一个勉强能用的测试平台。后来发现脸被打的很疼、很疼。光是一个数据表结构的设计失误,都至少需要几周的时间去重新思考、重新构造,开发过程中还经历了几次较大的代码重构、这次经历让我真正感受到了从零构建一个测试平台的艰难。不过还好,我努(腿)力(长)、迈过去了~


II. 开源的理由

那么我为什么要选择开源呢?

一、实现自我价值

「每个软件工程师都应该拥有自己的作品」,在几年前刚接触编程时,这句话深深地影响着我。所以当测试平台逐渐趋于完善时,我觉得也逐渐实现了我作为一名软件爱好者的价值。

二、帮助更多人

软件的好处就是可以任意部署,光我一个人使用多没意思呀,作为一个乐于助人的人,应该让测试平台帮助到更多人,还记得曾经读过的一篇文章中,有一段话非常触动我,其中核心观点为以下两点:

  • 解决你自己遇到的问题
  • 尽快将解决方案分发出去

我非常赞同这个观点,并且,这个项目我本人使用起来已经非常开心,顺手,所以我完全可以相信他有能力去 帮助更多 需要他的人。

三、让项目更健壮、完善

通过开源社区的反馈可以不断完善我的开源项目,无论是正反馈或者是负反馈都是非常有价值的,他能够让我项目中的每一处 优点 / 缺点 都得以最公正的评价,要相信群众的力量的伟大的~

四、扩大自身影响力

虽然这一点我暂时没有体会到太多,但我相信,一个优秀的开源项目一定是能扩大项目作者自身在行业内的影响力的,当行业大多数人都使用过你的开源项目,并且觉得体验非常棒的时候,你还不能算是行业内的 佼佼者 吗?

综上所述,项目开源的好处还是非常非常多的,我非常建议每一位软件爱好者都能将自己有意义的项目开源出去。

拥抱开源、助人助己~



开源后的责任

一个良好的开源项目需要作者积极的运作, 并不是说将项目开源出去就万事大吉,不用管事了。

下面将会以我第一人称的视角去阐述一个项目开源后作者应肩负的责任~

I. 优化部署文档

一般来说,项目部署文档会跟着源代码一起开源,但是难保公开的部署文档中存在缺陷,当使用者找到我并一起解决了部署问题后,我需要更新并优化公开的部署文档,让下一位使用者有更好的体验~

II. 编写使用文档

平台刚刚开源时,我还没有编写一套完整的使用教程,仅仅有一段主流程的演示。当看到使用者越来越多时,我觉得我有义务让他们更好地去使用这个平台,于是我花费了几个周末的时间去编写了一篇非常详细,生动的教程,每一个细微的功能点都配有一张动图(gif)作为演示,虽然制作过程非常累,但我觉得这是一个优秀开源作者应该做的事情~

III. 维护项目

虽然平台已经投入生产环境使用了半年多的时间,但是难保不会遗留一些小缺陷,当别人发现 确实应该进行修复的缺陷 时,我会及时响应并修复他~

IV. 答疑解惑

平台开源后,有非常多对平台感兴趣的人会私聊我咨询问题,大部分人都是比较友好地请教问题,所以我也非常乐意与愿意去耐心解答使用者的困惑~

选择开源,责任在肩~

开源后的收获

平台开源之后,反馈很多,总得来说有以下几点收获:

  • 热心网友的优化建议(也帮忙找到了一些缺陷)
  • 热心网友的体验服务器提供(让更多人体验平台的魅力)
  • 热心网友的鼓励 & 认可(正能量)
  • 热心网友的捐赠(一杯咖啡~)
  • 热心网友的质疑(没错,质疑也是收获,可以帮助你反省、成长)

可以说,项目开源就像对软件世界打开了一个窗口,各种反馈,无论正面负面,都会非常真实的向你袭来。当我开始收到正反馈时,会让我的心情十分愉悦(谁不想被夸呢),并更坚定了维护开源的决心 ,而当我接受到负反馈时,我也会 冷静思考,分析项目中存在的缺陷,为下一次平台迭代作计划。总得来说,项目开源后给我带来的感觉是:


五味杂陈,但非常值得一开(源)。