3

造一个 Postman 平替的「创作历程」

 11 months ago
source link: https://www.v2ex.com/t/982967
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

造一个 Postman 平替的「创作历程」

  darkings90 · kings1990 · 2 小时 15 分钟前 · 1426 次点击

各位 V 友以及开发者,今天聊聊我的IDEA 插件 Fast Request创作历程,一个类似 Postman 一样的懒人插件。

pNEdUZ7.png

我是一个非常非常的人,怎么懒呢?比方说要将 100 个字符串整点啥东西改成另外 1 个东西,手写替换是不可能手写的,只要涉及到经常要手写的就很烦,宁可画半个小时写正则替换,绝不手写,最笨效率最低但也是不大会出错的方法。

同时作为一名增删改查 crud工程师,每天要调试几十个接口。有一天我打开一个别人写的保存接口,居然有上百个字段,彻底懵了,下次完蛋了造数据得死。对了一开始我用 postman ,后来觉得有点难用,后来用 mac 上面的 paw ,现在叫Rapid Api,确实非常简捷,但是后面 Postman 发展迅速,就又用回来了。

但关键是我不喜欢手写,所以寻思着用意念搞点事情。当时为了不想手写Rap2的接口文档于是搞了一个Rap2 Generate,这个是创作 Fast Request 之前的一些积累。在闲的时候想把这个项目转到 IDEA 里面,最后发现好难,放弃了。

但有一阵子我实在太闲了,闲的发慌(在完成任务以后)。于是乎又想到了之前一直要手写 API 中 100 个字段的 Body ,实在太痛苦,就开始想搞个自动生成参数的工具。当时有 RestfulToolkit ,但是满足不了需求而且停更了,于是乎想着搞个啥玩意,可以快速请求 API ,至少先能生成 100 个字段的参数吧。当天我创建了一个项目,就叫Fast Request

前几天啥都没搞,一直在写参数生成的逻辑,参考了 Rap2 Generate 的一些解析逻辑。发现用正则来做解析实体类,简直就是一堆,突然发现 IDEA 里面有关于一些PSI相关的文档,同时也参考了一些实体类转 JSON 生成的一些插件。然后就坑此坑次开始写解析的逻辑。写得太投入被领导发现了,领导说:"你在写啥,什么玩意,Fast Request 什么项目,业务都清楚了么",被 PUA 半个小时。我想说,写 crud 多了有时候真的有点腻,想玩点有点意思的。当天我暗暗下定决心,一定要搞个神器出来,干死你。

艰难的开始

本着“干死你”的理念,我开始创作了。搞一个 IDEA 插件真的太难了,只有这些文档,其他的自己 Google ,自己看文档,自己看源码。前期太难了,没人教。还好当时参考了阿里大神写的Easy Javadoc,也提交了一点 PR 熟悉了一些代码,比起一点都没至少有项目可以参考了,很多小白选手至少参考。于是乎,我差不多花了 1 个多月,第一个版本成了,啥都没,就点一下生成参数到 console ,跟你下面看到的界面简直差了 10 万个版本

pNEdUZ7.png

UI 这一块,我比较注重。我出了很多个版本的界面,不停的优化,同时参考了 JetBrains 的 UI 设计规范以及其他的例如JetBrains 设计准则,所以励精图治得改,改界面,加功能,UI 风格保持一致。最后界面也越来越受到大家的认可。随着 JetBrains 新 UI 的到来,插件也打造了跟新 UI 风格一致的界面,保持整体简洁大方。

在这个过程中,功能的开发也确实难,在 Swing 基础很差的情况下,想要搞一个全是由 Swing 组件构成的工具,简直就是痴人说梦,于是我又查了很多关于 Swing 的资料以及 demo ,这边有很多例子需要的同学可以参考。整个前期真的没有周末,周末都是干到晚上 11 点以后,搞这个插件真的太累了,又太兴奋了,学了很多知识。合理运用了很多时间去学习技能。

最后随着一步一个脚印,我的插件慢慢有了用户,同时用户也会给我一些反馈,前期自己的灵感占了 90%,用户给我提一些问题,又可以解决一些常见的痛点。功能越来越丰富,同时也参考了 Postman 的一些功能,设计一些必要的功能,毕竟它是业界最优秀的 API 调试工具值得学习。但是插件要做到的不只是发送请求这么简单,还要跟代码结合,做一些更加有优势的功能,那就是能让用户懒的功能。我也是一直如此,毕竟 Fast Request 的格言就是“为简化 API 调试而生”。

什么很重要

打造一个能吸引人的软件,首先创意和想法很重要,需要不停的肝新功能、好功能,能直接解决用户痛点,持续输出。然后就是用户慢慢累积的过程。开发过程就是硬碰硬克服困难,很多不会的需要去研究克服,在此过程中积累经验,对后期就非常有帮助。自学能力也非常重要,得会问问题,查问题,现在又有 AI ,给工作带来不少的便利。

叫过人一起干

前期想法非常多,但是个人输出有限,就叫了一些朋友看是否有想法加入。但是每一个人似乎都挺忙,要么就是入门太难接不住,好吧,这玩意确实有点难度,我一个人承包了设计、开发、测试、网站建设、推广一条龙服务。后期随着熟练度的提升,目前感觉开发这一块一个人也基本忙的过来了。也就没有继续叫朋友来协助了,毕竟生活大于一切,像我这种投入的,生活上也是有所牺牲的,经常被女朋友骂大晚上还不睡觉,一路走来还是非常感谢家人和朋友的支持的。

没人来帮忙,所有的一切只能单干。好家伙,别人是一个团队干一件事,我是一个人干一个团队的事。上面描述的过程可能并没那么简单,一路走来碰到了非常多的磕磕碰碰,不幸的是中途倒下过一次。由于长期劳累,坐在电脑面前工作,导致腰椎间轻微突出,在家躺了 3 天。所以我也劝解各位开发者要注意劳逸结合,千万不能太上头了,身体是革命的本钱,一定要走可持续发展的道路。这一点相信很多一路陪伴的小伙伴也知道,前期几乎一个礼拜一个版本,用户都觉得速度太快了有点刹不住车...

相信很多开发者可能会说,插件啥都好,就是要收费。但是收费也是经过我深思熟虑的,这毕竟会对软件的推广有一定的阻碍,很少会有博主来推广付费的东西。但是积极作用更大。一个人的精力和热爱也许会时间的流逝慢慢减退,收费对我来说,也是更加对用户负责的开始,是变更加强大的开始,这也让我更加有热情去更新功能,修改 bug 。同时也感谢一路支持的朋友没有因为收费就抛弃 Fast Request 了,相信这是一个双向选择的结果。对于需要的开发者,对于工作日一天花费 3 毛多的成本来提升工作效率,相信也不多。不喜勿碰哈哈哈哈。

当前最大的挑战就是推广问题,似乎还有很多很多的开发者不知道有这么一个神器,可以一键调试接口。但是收费了似乎吓退了一波的开发者,用户起码少了三分之二以上,不过这个模式我既然开始了就不会再改变。运营推广对我来说也是没啥经验的,期间也一直在出视频教程在各大技术网站上投稿,效果一般。当然也有一些技术大咖比如 java guide 、程序员 DD 中间给软件写了几篇博文,对于 Fast Request 来说也是非常大的帮助与支持,做了一波推广,在此非常感谢。同时也希望得到更多大神与技术老铁给予相助和支持,提提意见,给一个不懂流量的技术人一点帮助,多帮忙推荐推荐 Fast Request 。

目前斩获了17w的下载量,用户也非常喜欢 Fast Request 给他们带去的帮助。这一点我非常开心自己的作品被大家认可。除了经济上的一些收入,当然以下几点是非常重要的。

1.结识了一大批粉丝朋友
2.加入了 Dromara 社区,认识了一大批软件圈大佬
3.结识了一批 IDEA 社区工作者大佬,也给我提供了一些建设性意见,非常感谢
4.上过 JetBrains 中国 Bilibili 的码上道栏目直播,非常荣幸
5.无聊的时候没那么无聊了

相对比较全功能文档: https://api-buddy.cn/fast-request/guide/features/

部分功能截图↓↓↓

3aVkeqB.png
KL6hLly.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK