Algviz这个项目做了一年多的时间了,从技术上来说,想实现的功能已经基本上实现了,但奈何只是一个人在那里瞎搞。
项目链接:https://github.com/zjl9959/algviz

我做过公众号(基本没人看😂),也在自己的网站上面发布过博客,还在牛客,掘金上面发过帖子,不过也是基本上没人点进去,除了牛客会有少数人评论一下。然后我学习了如何使用必剪(B站官方的剪辑工具)来做视频,并且自己写了一些辅助生成动画片段的脚本来简化工作流程,视频的访问量确实会比纯文字的博客高很多,但是制作视频的成本太高了,一个视频至少2个小时,复杂一点的视频甚至需要半天时间来完成。

我也在力扣上面发过帖子,但是分享技术的帖子还不如抖机灵的水贴点击率高,精心准备的动画题解基本上处于没人看的状态,发的干货分享帖的阅读量稍微高了一点点,但也没啥用。

不过让我意外的是,之前在一个人的帖子下面随口说了一下自己网站的网址以及 Github 项目的地址,竟然有段时间有很多人去点击我的网站,但是每日访问量随后又很快回到了最初的个位数状态。

感谢 Github 上面的这几颗小星星让我多坚持了几个月的时间,但是除了中间有两个外国友人跑过来在我的 Github 项目底下开了两个 issue,我没有得到过任何其他的反馈(也可能好多人用不了Github吧?),然而还是没有任何人点开过那个赞助的链接,倒是这一年来女朋友一直在鼓励我坚持下去。

最后:佛系更新吧,有心情就搞一搞,没心情就继续摆烂!有大佬分享一下搞开源项目搞成功的案例吗?

更新于2023/05/07:
没想到摆个烂还被一群大佬围观了(有点紧张),感谢各位扣友的支持和鼓励,我会继续坚持下去的!
关于为什么要做这个开源项目?其实一开始的目的是想把一些常见算法的解题思路总结到一个 JupyterNote 笔记本中,但是发现文字笔记不太便于记忆。虽然当时已经有一些算法可视化的网站了(例如:AlgorithmVisualizer),但是对于 Python 的支持不是很好,而且不便于集成到自己的笔记中,于是我萌生了自己做一个算法可视化工具库的想法,并开启了断断续续的造轮子之旅。核心功能的开发其实花了两个月就基本上完成了(实现了向量,表格,链表,树,拓扑图等数据结构可视化的支持),其实项目到这里也算是基本上完成了,我甚至还用它在 JupyterNotebook 里面做了个2048小游戏。

22年去了外企工作以后空闲时间一下子变多了,因为工作内容也是和开源相关,我就想着为什么不尝试自己做一个开源项目呢?首先我做了项目规范化(主要是加一些注释、做一些代码格式化以及添加测试用例和使用范例)的操作,当时并没有使用工具,是纯靠手工实现的,其实现在看来大部分的事情都可以交给工具和 AI 来做了,并不需要在上面花太多的时间。在完成了规范化工作之后,我在 PyPI 上面发布的 algviz_0.1.0 版本,并且在 readthedocs 将自己的项目接口 API 文档化,这也在算是一个小小的里程碑吧。
中间有半年时间因为各种原因其实没有怎么管这个项目,只是自己偶尔用一下,发现了bug就及时修复一下。后面发现虽然发布的包也有小几百的下载量(也可能只是爬虫带来的下载量),但是没有得到任何的使用反馈,也不知道到底有没有人在用以及用户的使用体验如何。我想可能是自己的宣传不够吧,于是在相关的平台发了一些图文和视频,这带来了一些关注和下载量,但是依然没有什么反馈消息,我也不知道下一步该继续做什么了,可能项目的开发就要到此为止了!
关于这个项目的价值,我想如果能给用的人带来一些便捷和启发,那就是它的作用吧。

最后,关于下一步的计划:我会优先修复项目中存在的bug,并保证它能够在最新的环境中正确运行,后续有空的话我会考虑更多的数据结构的支持(例如:红黑树,队列等)。
关于用 algviz 生成的动画,我就在这里抛砖引玉一下吧,大家如果想贡献自己的 JupyterNotebook 笔记的话可以提交到这个仓库里面:https://github.com/zjl9959/algviz-launch
下面是一些使用 algviz 生成的动画(如果没法播放的话点击一下图片就可以了):
快速排序算法:

N皇后问题:

字典树:

拓扑排序:

迪杰斯特拉最短路算法:

更多算法等你来补充!🤪