Jackyfei

怎样做好一个开源项目

沟通创造价值,分享带来快乐。这里是程序员阅读时间,每天和你分享读书心得,欢迎您每天和我一起精进。

作者:十三

解读:张飞洪

现在的很多程序员基本上可以说是面向GitHub编程,遇到新项目要启动就会到GitHub上一顿猛烈搜索,然后采用拿来主义,这对那些想要做开源项目,甚至通过开源来收割韭菜的人来说,开源就是一个非常好的机会。

十三从2017年二月份开始开源之旅,差不多和他的博客之路同时开启。根据他个人的体会,开源的辛酸和挫败从一开始就伴随着他,中间有好多次想打退堂鼓。原因很简单,不要以为自己开源了,就会有人看,你要坚信就算你真的是拿出你的家底出来,可能还是有99.99%的人听都没听过,更别提去关注和了解你。

三个阶段

十三提到他做开源的三个心理阶段:

第一阶段:要不要做?

总是在犹豫到底要不要做开源,我为什么要做开源,能和自己的预期一样吗?

第二阶段:能坚持吗?

不知道要做什么,坚持不了怎么办?没有人关注怎么办?最后十三是这么想的:“我不怕千万人阻挡,只怕自己投降”。

第三阶段:如何做好?

既然下定了决心,那么就要开始思考怎么做了,这个也是本篇要谈的重点。

如何做好开源?

  • 前期规划

既然开源是一份需要持续投入的工作,那么开头的规划就非常重要了。十三帮我们罗列了他的做法,比如说:

  1. 要做什么项目?
  2. 要选什么题材?
  3. 什么类型?
  4. 一年内大概有几个版本?
  5. 最终的形态是什么样的?
  6. 这个项目是为了解决什么而出现的?

这些一定要想清楚,好的开源项目有以下几个标准:

  1. 访问量
  2. star数量
  3. folk数量
  4. clone数量
  5. issue数量

明确以上的指标,你的开源之旅就可以开启了。

  • 迈出第一步

第一个项目主要使用spring和spring mvc加mybatis框架整合实践项目ssm-demo,这些框架都是大部分公司的常用框架,稍微修改以下就提交到开源仓库了,所以开源好像也不难。这里开源的并不是底层框架性的基础架构,而是基于知名科技进行业务整合。这种方式确实对一般3-5年的程序员都不是问题。

  • 升级迭代

接下来就和我们平时开发一样,按照最小功能清单进行版本迭代。如此这般,坚持了三年,中间因为spring boot的出现,进行了底层框架的替换。包括常用的后台攻略心跳,资讯发布系统,博客系统,商城系统,以及由此衍生出的各种项目。

每次升级都会在博客里面进行宣讲,让你的关注者有所期待,能了解你的动态和决心,这是和读者互动的重要窗口。

  • 双赢心态

从整合自己手头的项目开始,通过文档编写既能梳理自己的知识,加深理解,也能帮助那些需要的朋友,这里难能可贵的是利他心里,只有利他才能得到他人的帮助,开源的本质其实就是分享。

设身处地去想一下,你去开源项目网站上搜索项目时,是不是为了解决自己目前所面对的问题呢?如果你搜到了一个开源项目,但是代码不全,文档不完整,下载之后根本用不了,那么这种项目你还会使用或者分享给其他人吗?所以我们如果做开源项目,那么这个项目一定要能用,要帮助别人解决当下的问题。我认为这是衡量一个开源项目最基本的标准,也是非常现实的一个标准。

十三基于spring boot技术栈为主的新风商城项目,因为代码和相关的文档非常齐全,帮助了很多的开发者快速掌握spring boot,并使用spring boot技术栈去开发一个大型的商城项目。而且项目帮助了很多在校大学生完成毕业设计这个难题,也帮助了很多的Java求职者找到了工作。

  • 文档+示例

好的开源如果缺失文档,对读者是很不友好的,所以成功的开源都是以程序员为中心,想对方之所想,反过来思考,我们阅读开源项目的时候,也会希望对方如果有配套的文档就更好了。

有了文档再加持示例和Demo,整个体验就会是立体的,你要尽可能把开源当作产品来打磨,否则很难获得成长,所以开源真的不容易,需要持续投入时间和精力。

失败的示范:

  1. 当你进入他的仓库时一时想不通这个项目是干嘛的,或者他能够帮助你干什么。
  2. 项目文档虽然有,但是就几句话,或者只有初始化项目时的默认文档,还没什么排版。
  3. 写好代码并且开源出去就会有人来关注,来看你。

良好的示范:

生活中我们都知道第一印象的作用,我们自己做的开源项目也是这样,当别人打开我们的仓库,那一瞬间就可以看到详细的文档和恰到好处的图片,他可能才会进一步的去了解和研究这个项目,而不是直接点击关闭按钮与我们擦肩而过。

所以总结来说,就是要明白项目基础信息展示的影响力。

具体操作十三介绍了以下几种方式,概况来讲就是:

  1. 一句话介绍我们的项目
  2. 项目的特性和优点
  3. 项目所使用的技术栈以及合适的图片
  • 降低预期

认清自己,并且降低自己的心理预期,这也是一个很真诚的建议。我们并不是开源世界的大佬,也不是流量很大的牛人,在开源项目发布出去的一段时间,不要急功近利,不要给自己设立一些难以实现的目标,这样只会给自己压力,而且徒增烦恼。

开源是为了分享和交流,分享者一定要放宽心,如果没有很好的成绩,我们就继续努力,我能做的就是不断的进化,不断地进步。

我很相信那句话,酒香不怕巷子深。

可能你会觉得我这个人有点傻乎乎的,傻是傻了点啊,但是不痛苦,也没压力,轻装上阵,跑得快。

关键点总结

以上就是十三通过个人经历的分享,另外他也给我们分享了开源项目给他带来的收获:

  • 摆脱由学生身份转变后的一个纠结状态;
  • 认识了很多志趣相投的朋友;
  • 经常受到各种公司的面试邀约,人也自信了一点;
  • 接收信息的渠道增加了,接收到的信息更多了,对自身的进步有很大的积极作用;
  • 在机缘巧合之下,也开启了副业,写起了专栏,写起了书;
  • 最重要的是我发现了一个更大的世界,活得不再闭塞。

十三的GitHub:https://github.com/zhenfeng13

 

posted @ 2022-03-11 14:31  张飞洪[厦门]  阅读(1070)  评论(5编辑  收藏  举报