我的开源项目在五个月内超过了 600 star
其实我在 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 一下哦~
我的开源项目在五个月内超过了 600 star的更多相关文章
- Android 开源项目及其学习
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...
- [转]Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...
- Android开源项目分类汇总
目前包括: Android开源项目第一篇——个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...
- Android开源项目
Android开源项目第一篇——个性化控件(View)篇 Android开源项目第二篇——工具库篇 Android开源项目第三篇——优秀项目篇 Android开源项目第四篇——开发及测试工具篇 And ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- GitHub上史上最全的Android开源项目分类汇总
今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...
- github上有android开源项目
下面是一些比较好的开源项目,总共分为5大类,也许对某一些人有用,有些项目也许将来某一天对自己也有用,所以整理到此,希望对大家有帮助.首先声明非原创,这篇blog的目的是分享给那些可能需要的人. htt ...
- Android开源项目第一篇——个性化控件(View)篇
本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...
随机推荐
- Mysql 存储过程(变量、定义条件、处理程序、光标、流程控制构造)
最近由于有同事编写了存储函数,需要进行验证,但是对存储过程一直不是很了解,所以抽时间了解了一下存储过程的基本语法.本篇文章主要包括介绍了存储过程的5个小语法:declare语句的变量.定义条件.处理程 ...
- PR全套插件一键安装
PR全套插件一键安装,无需注册码软件也是我在别的地方搬来的,自己用着很好,决定分享出来! 我的PR版本是2019,用着没有任何问题.我没有安装其他版本PR,所以无法测试,不过应该是可以用的. 使用截图 ...
- Alpha冲刺——序言篇(任务与计划)
Alpha冲刺--序言篇(任务与计划) 1.整个项目预期的任务量 需求规格说明书 架构设计,原型设计,原型改进(给目标用户展现原型,并进一步理解需求) 编码规范完成.平台环境搭建完成.初步架构搭建 队 ...
- HashMap相关类:Hashtable、LinkHashMap、TreeMap
前言 很高兴遇见你~ 在 深入剖析HashMap 文章中我从散列表的角度解析了HashMap,在 深入解析ConcurrentHashMap:感受并发编程智慧 解析了ConcurrentHashMap ...
- 升级openssl和openssh版本
一.安装telnet-server服务(建议安装) 1. 查看系统是否已安装telnet-server,linux系统上默认已经安装telnet-client(或telnet),而telnet-ser ...
- 微服务开发的最大痛点-分布式事务SEATA入门简介
前言 在微服务开发中,存在诸多的开发痛点,例如分布式事务.全链路跟踪.限流降级和服务平滑上下线等.而在这其中,分布式事务是最让开发者头痛的.那分布式事务是什么呢? 分布式事务就是指事务的参与者.支持事 ...
- C++ 中使用 PRId64
同一份代码,Ubuntu 14.04.1 编译没有问题,centos 7 上编译提示错误: error: expected ')' before 'PRId64' 这里两个地址说得很清楚了: http ...
- [日常摸鱼]bzoj2463 [中山市选2009]谁能赢呢?
题意:两个人在$n*n$的棋盘上玩游戏,一开始棋子在左上角,可以上下左右的走到没有走过的地方,最后不能走的那个输,两个人都采取最优决策问哪个赢 猜结论!$n$为偶数则先手赢,否则后手赢. 考虑用$1* ...
- 洛谷题解 P1051 【谁拿了最多奖学金】
其实很水 链接: P1051 [谁拿了最多奖学金] 注意: 看好信息,不要看漏或看错因为信息很密集 AC代码: 1 #include<bits/stdc++.h>//头文件 2 using ...
- Golang--函数签名相同
Golang--函数签名相同 条件 必须函数的函数名,参数和返回值(类型,个数,顺序)都相同. 验证 例子: 定义函数类型,让相同签名的函数自动实现某个接口. Negtive: package int ...