头图

两周半内做好一个开源项目的心路历程及感想

记录一些关于这个项目的心路历程及感想

2022年12月01日

  先说说 鲁班工具箱 (Luban Kit) 这个项目的由来,上周在思考怎么做 Lime 记账 的时候,想的太多了,很烦,在技术选型上纠结在 Bloc 和 getX 上犹豫不决,索性先不弄了,反正也鸽了很久,哈哈哈。于是想着先把文档的选型给弄了,这样以后文档也好写一些。在网上搜索资料的时候发现了 docsify 这个文档项目,简单看了一下官方文档,感觉基本满足了我的需求,而且还支持 Github Page 直接 Git 提交就可以用了,有点所见既所得的味道,所以就自己就跟着文档搭建了一下,先试用看看,结果在看封面配置的时候,感觉渐变色不是很好看,想着能不能使用模糊图片作为背景图片,类似毛玻璃的那种效果,别说还真支持,然后就又去找了壁纸相关的 API。就这样做一个工具箱方面的开源项目的想法慢慢萌芽了。

  网上搜了一圈壁纸 Api ,基本上都是必应壁纸的 Api,而且还是各种个人项目霸榜,简直多如牛毛!其中有几个做的还不错,例如:imgRunioliutodaybing 这三个算是我能找到的比较好的还能用的 Api 了,有不少已经不能用了。仔细对比研究了一下这三个接口,第一个是PHP 写的,源码非常简单,但是源码里面没有提供 UHD 的源码,接口文档里倒是提供了,感觉挺奇怪的,也不支持模糊,有点遗憾。第二个貌似已经很多年了,也支持模糊,就是文档写的一般,基本可用。第三个挺好看的,尤其是网站做的非常好,设计的不错,不过离奇的是有些超高清壁纸需要付费下载,本人表示理解,毕竟服务器也需要花钱维持但是心里有点膈应。研究了一圈,感觉信心来了,这也太简单了,不就调个接口嘛,我上我也行,而且我还有 Deta 这个免费云平台,服务器域名都不用花钱,不用白不用。

  之前其实也没有用过 Deta ,也是偶然间发现的。它支持 python 和 nodejs 刚好我都会,思考了一下,选择了 python 技术栈,必应接口用爬虫的方式处理感觉比较好。框架本来选的是 Flask 的,然后看到 Deta 官方里面有 FastApi 的教程,看它官网介绍的很厉害,速度很快,然后就入坑了,搞了几天,发现在处理图片文件输出的时候和 Pillow 有点不知道怎么写了,都已经是临门一脚了,然后又切回到了 Flask,浪费了几天时间。这里不得不说,Flask 经过这么多年的发展,平台兼容性和资料确实是目前最好的了。又花了几天时间把项目结构和之前写的代码弄好了,也增加了 Json 接口和模糊配置,算是基本能用了。还画了 流程图,算是习惯吧,有利于整理思路。

  在使用 docsify 的时候发现这个看上去简单的文档工具,也不是那么简单的,首先就是文档结构问题,我原本是想按照 Typora 里面文档树的结构来做的,但是看文档感觉有点不知所措,刚开始的时候我创建了一个 zh-cn 的文件夹,目标是把所有的文档全部装到这个文件夹里面,然后再按照文档树的结构来排版,但是好像不太对,因为我并没有多语言的需求,官方文档里面有不少示例都是多语言的示例,前期的时候有点“误导”,但我很快转变了思路,直接看官方文档的 Github 这样更直接,源码里面有更直观的信息,更容易看懂。

  然后是插件,在官方文档里面的所有插件,感觉都想用一下,有些使用的很顺利,直接跟着文档走就行了,但有些却不行。比如我想在文档里面添加评论系统,docsify 给出了 2 个选择,Disqus 和 Gitalk。刚开始的时候我选择的是 Disqus ,之前我也听说过它,也曾在国外的网站上使用过,算是有个印象了。注册了 Disqus 的账号,结合文档看了看,感觉并不是很符合我的要求,而且 Basic 版本有广告,里面的功能也不太符合国内软件的使用习惯,所以就放弃了它。转而去用了 Gitalk ,这也是现在项目文档使用的评论系统,总体感觉还是很不错的,优点是不用注册账号,这点很赞,不用维护账号了。直接使用 Github 登录,基本上会使用鲁班工具箱的人也都会有 Github 账号,所以也贴合目前的使用场景。在使用 Gitalk 这个插件的时候发现其文档写的比较一般,没有示例,有些能看懂,有些不太能,有点歧义,这导致配置出错在页面上总有一行 404 的提示,其实这点也因人而异,每个人的理解不同,我的直观感受也不能代表大多数。能写出一份好的文档也不是一件容易的事情。把Gitalk源码和文档结合着看花了一些时间,也算顺利吧。

  最坑的是谷歌统计,官方文档里的示例已经过时了,现在谷歌统计是用 G-xxxxx 这样的 id 本来我还以为是每个账号的 id 不同,结果测试了很久都没有收到数据,谷歌统计的测试也正常,因为这是我最想添加的功能,所以花了不少时间研究,如果谷歌统计能用,就可以直接看到文档的访问情况,随时调整,结果最后发现不能使用,也找到了 issues 里面的关于这个插件的讨论,不过还在测试中,目前看来是用不了。

  写在最后通过这个非常简单的小项目,发现要把一个开源项目做好,还是一件挺难的事情,一个人做的话要面面俱到,缺一不可。语言、框架、文档、第三方库、插件、CI/CD、部署、UI、甚至是小小的徽章都要仔细弄好,做好一个开源项目实属不易。其实 python 我也学了好久,算是老江湖了,flask、django、分布式爬虫、深度学习、自动化运维或多或少都有涉猎,不过最近两年基本没怎么去用,真的是生疏了不少。总得来说算是合格的做出了一个小小的开源项目出来,至于有没有人用,这点其实已经不是做这个项目的初衷了,初衷还是给自己带来方便,如果在自己用的同时能给其他人带来方便或者其他人能学到东西,也是算是一件乐事吧。

总结:
  • 不足

    • 本来打算做一个在线工具平台的,但目前只有一个必应壁纸接口,很单薄
    • 文档还是有待提高
    • Git 提交说明没有规范,这个需要改进
    • 接口没有 cdn,域名服务器都在国外,访问有点慢
  • 未来计划

    • Json 格式化这个会加上,目前 Json 格式化广告很多,做一个好看的速度快的在线格式化工具
    • 图片占位符,这个其实已经写好了,能用但需要优化一下
    • 其他的暂时没想好

好好学习,天天向上。

1 声望
0 粉丝
0 条评论
推荐阅读
最好用的 python 库合集
🎈 分词 - jieba优秀的中文分词库,依靠中文词库,利用词库确定汉子之间关联的概率,形成分词结果 {代码...} 🎈 词云库 - wordcloud对数据中出现频率较高的 关键词 生成的一幅图像,予以视觉上的突出 {代码...} 🎈 ...

tiny极客11阅读 2.9k评论 2

封面图
数据结构与算法:二分查找
一、常见数据结构简单数据结构(必须理解和掌握)有序数据结构:栈、队列、链表。有序数据结构省空间(储存空间小)无序数据结构:集合、字典、散列表,无序数据结构省时间(读取时间快)复杂数据结构树、 堆图二...

白鲸鱼9阅读 5.3k

openKylin 0.9.5版本正式发布,加速国产操作系统自主创新进程!
2023年1月12日,中国桌面操作系统根社区openKylin(开放麒麟)正式发布openKylin 0.9.5操作系统版本。此版本充分适应5G时代需求,打通平板,PC等设备,实现多端融合,弥补了国产操作系统的短板,有效推动国产操作...

openKylin6阅读 8k

封面图
git 多用户配置(多用户 & 公司/个人)
多用户配置公司和github,经常会遇到要多用户使用git的情况,以下为配置信息,以下拿xiaoxuete1 & xiaofute2举例设置ssh-key {代码...} 会提示存储的文件名,输入如果需要push时确认的密码,可在该步骤输入.pub文件...

小夫特1阅读 7.5k

滚蛋吧,正则表达式!
你是不是也有这样的操作,比如你需要使用「电子邮箱正则表达式」,首先想到的就是直接百度上搜索一个,然后采用 CV 大法神奇地接入到你的代码中?

良许3阅读 1.5k

搭个ChatGPT算法模型,从哪开始?
最近 ChatGPT 很火,火到了各行各业。记得去年更多的还是码农最新体验后拿它搜代码,现在各行各业都进来体验,问它咋理财、怎么写报告和给小孩起名。😂 也因此让小傅哥在头条的一篇关于 ChatGPT 的文章都有了26万...

小傅哥6阅读 1.3k

封面图
程序员适合创业吗?
大家好,我是良许。从去年 12 月开始,我已经在视频号、抖音等主流视频平台上连续更新视频到现在,并得到了不错的评价。每个视频都花了很多时间精力用心制作,欢迎大家关注哦~考虑到有些小伙伴没有看过我的视频,...

良许3阅读 1.3k

好好学习,天天向上。

1 声望
0 粉丝
宣传栏