Try Open Source

2025-06-17

“想参与到某个开源项目”这个念头最早应该可以追溯到刚加入 NyaaCat Community 的时候,发现原来之前在其他 Minecraft 服务器玩到的 RPGItem 插件 原来是开源的!并且一直有在积极维护,这也太酷了吧!

起因

“想参与到某个开源项目”这个念头最早应该可以追溯到刚加入 NyaaCat Community 的时候,发现原来之前在其他 Minecraft 服务器玩到的 RPGItem 插件 原来是开源的!并且一直有在积极维护,这也太酷了吧!

但是这个时候的我并没有编程基础,更喜欢把时间花在使用这些插件以及玩游戏上面。

第一份工作

我的第一份工作的主要职责之一就是基于一个 Django 框架的开源项目进行二次开发,在这之前我没有任何实际的 Web 后端开发经验。 但是开源社区的文档和当时的 Leader 教会了我很多 Web 相关的基础知识,直到现在都受益匪浅。

这个时候我就开始想着,我应该如何才能对帮助过我这么多的“开源社区”做一些贡献呢?

但是直到第一份工作结束,我也没有尝试对开源社区提交过一次 Issue 和 PR 。

第一次贡献

在某论坛闲逛时,发现了一个作者在推广自己开源的轻量级的 Web 文件服务器,当我尝试部署到本地时,发现缺少了依赖,于是我提交了我的第一个 Issue和PR 。 于是我开始焦急的等待,想着作者什么时候会合并呢?想着自己终于迈出了第一步。 大概三小时后,邮件提示我 Issue 和 PR 都被关闭了。 作者回复我说 注意到了这个问题,并自己修复了。 虽然是一个微不足道的修复,但是被这样关闭有一种莫名其妙的沮丧感。

第一个开源项目

其实写 ncmp 这个脚本的念头在大学时就产生了。 在某次查看私信时偶然发现获得了网易云音乐合伙人资格,刚开始还会兴致勃勃认认真真的去评分,到后面由于歌曲质量/重复操作很无聊等等原因,每天每首歌都开始评3分摆烂,想着能维持资格就行。

在第一个 PR 被拒绝后,我开始写我自己的开源项目。 参考了其他脚本的实现方式,并使用我更熟悉的 Github Actions 去实现定时任务。

于是我第一个真正意义上对其他人有用的开源项目 ncmp 就这样诞生了。 ncmp

Dify

最开始了解到 Dify 是在前司研究 Agent 平台时,尝试过 Dify / Flowise / Bisheng 等项目,但是 Dify 的体验在我这里绝对是断层式的领先。无论是在 说明、文档、社区支持、UI还是代码质量上,综合体验与其他开源平台拉开了很大的差距。 所以即使 Dify 的 Lisence 有一些限制,也还是说服公司选择了 Dify 。

我的成长离不开这些优秀的开源项目,我也一直想着,我能为真正的开源社区做一些什么?

我开始在 Dify 上找一些我能解决的 Issue 并尝试提交 PR 。 不得不说,即使你从来没有为开源项目贡献过代码,Dify 仓库绝对是一个很好的开始。它不仅有:

总之,我开始在业余时间给 Dify 提交 PR,收获颇丰。

我也尝试设计过一个大的需求(workflow schedule),由于后续发现官方已经有计划了遂弃坑23333

杂乱的文档: workflow_schedule_design

第一次尝试设计UI: schedule_ul

在为 Dify 贡献的过程中,也学习到了很多设计,无论是前端还是后端,这真的是一个很棒的项目! 在此感谢 Dify 的所有开发人员以及社区运营们没有你们就没有这么棒的项目诞生!

虽然我很少与开发者们交流,在群里也是一直潜水w 但这份感谢是由衷的。

I Love Dify !

Memobase

在五一之前,我主动找到了 memobase 的作者 gusye (坚白),说想为 memobase 开发 Dify 插件。 既能为 memobase 生态添砖加瓦,又能学习到 dify 插件开发,何乐而不为呢?

在插件开发的过程中也找到了 memobase 中的一些小bug以及文档中的一些小错误。 五一假期期间花了两天完成了该插件,放假一个人写代码好舒服!

嘿嘿插件被夸啦 memobase_kuakua

Summary

我没有什么远大理想,写代码是我的爱好,为开源贡献只为满足我自己的虚荣心。

写下这段流水账记录我自己尝试开源贡献的历程,希望能鼓舞到想要尝试开源但是始终没有开始的人。 尽管去做吧!不要太在意别人的目光!

以及正在筹划自己的新项目,敬请期待~

$ 在终端中打开 →