我的开源项目在五个月内超过了 600 star

2021-01-08 12:46:33 +08:00
 DtFlys

其实我在 2016 年年底就开始写了这个项目:Forest,一个能够将 HTTP 的所有请求信息(包括 URL 、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求的 Java 框架。

而当时并不知道有 Feign 的存在,Retrofit 也只是听说在 Android 上使用的类似框架,在 Java 后端没有相应的、能和 Spring 或 SpringBoot 良好集成的对应物。只能老老实实用 HttpClient 进行包装,导致我们公司项目有各种各样对 HTTP 千奇百怪的工具类封装,大多只要工具类的作者知道怎么使用。由于要大量请求第三方 Restful 服务,一段时间之后,各种第三方服务的 URL 变得难以管理,靠一个配置文件难以 hold 住各种不同的请求方法、有 Head 传参、有 Body 传参、有 JSON 格式、有 XML 格式。

所以我当时的需求很简单:有这样一个框架,能统一管理项目中所有第三方 URL 接口,不管是 HTTP 还是 HTTPS,是 JSON 还是 XML,是传 Query 参数还是 Body 表单数据,都能用一种统一且优雅的方式给描述出来,还能让不同的开发人员一目了然地知道这些接口是做什么的,url 是什么、body 是什么一看便知。

MyBatis 正好在这时候是国内最火的时候,JPA 也有用过,我就自然而然想到了用 Java 接口 + 注解的方式。接下来花了 1 个月就将 Forest 第一版就写好了,然后用它写了自己项目部分网络请求部分,之后便在公司内部推广开了,其中也是不断碰到问题不断解决的过程。

之前做开源 5 、6 年了,但真正入门,关于如何运营一个开源项目还是这最近 4 个月的事。 一开始只是将项目放到 Github 、Gitee,然后发一篇推广文就结束了,不知道后续工作要做什么,也不想去做。 所以几年来项目几乎无人问津、一直处于将死不死的状态。

直到 2020 年 7 月份开始,才意识到这样下去是行不通的。开源的关键还在于社区,需要有一个不断向你反馈问题的管道。于是开通了微信群,通过适当的推广不断有人加入进来,不断有人提出问题,不断反馈 BUG,我便引来了高考后最繁忙的几个月。进入到这样一个正向循环后会感到很忙、很累,每天都有解决不完的问题,上班完成公司工作之后,晚上要维护更新开源项目到凌晨 2 、3 点。但带来的收获也是可观的,除了见证了 Forest star 数的增长,也感受到了自身的成长,虽然没有经济利益上的收益(还要贴钱进去 〒▽〒)。但能看到自己的工作能带给其他程序猿价值,也是种无法言语的成就感。

哈哈,感谢看了我那么多废话,如果 Forest 对您有帮助,请 star 一下哦~

6730 次点击
所在节点    Java
33 条回复
DtFlys
2021-01-08 18:04:56 +08:00
@lzuntalented 不错了,我的项目在 gtiee 上也有 2 年多时间了,但真正的增长是近几个月才有的,之前 2 年多只有 100 不到的 star
PoetAndPoem
2021-01-08 18:09:21 +08:00
部署,上手快吗
DtFlys
2021-01-08 18:15:07 +08:00
@PoetAndPoem 照着文档做,啪的一下,很快的
Rache1
2021-01-08 19:01:18 +08:00
这个文档的对比度太高了,刺眼睛
Helsing
2021-01-08 21:40:41 +08:00
Retrofit 就是设计给 Java 用的,底层是用的 okhttp,Android 要加别的库才可以使用
gaoyujian2015
2021-01-09 09:54:56 +08:00
请教下楼主怎么做早期的宣传推广,最近也想把一些项目开源但是不知道怎么宣传
yazoox
2021-01-09 18:23:05 +08:00
又有需要学习的了
LowBCoder
2021-01-09 19:32:20 +08:00
是不是相当于于 SpringBoot 版本的 Feign ?
DtFlys
2021-01-09 22:12:56 +08:00
@Helsing 是的,我后来也有所了解,不过 Retrofi 和 SpringBoot 没有直接的集成,不过最近有个国内的小伙做了 retrofit-spring-boot 也挺好的
DtFlys
2021-01-09 22:13:53 +08:00
@LowBCoder Feign 本身就可以和 SpringBoot 集成,当然也可以不集成,不过 Feign 更多的是用来微服务领域作为 RPC 框架。
DtFlys
2021-01-09 22:15:57 +08:00
@gaoyujian2015 首先需要把文档写好,不但要写的详细,还是写的简单易懂,容易上手,最好能配合一些上手的 Demo 更好。此外再是写一些文章介绍你的项目,投放到一些流量高的平台,至于文章写得好不好就看你本事了。
SkyLine7
2021-01-12 16:29:01 +08:00
大佬牛逼,坚持就是胜利
lrvinye
2021-01-14 13:58:09 +08:00
针不戳!希望可以一直维护下去,别用着用着没了 :(

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/742948

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX