最近都在 GitHub 频繁出入,我发现一个老哥的首页上,有一个柱状图,统计了他编写每种语言的时间占比,我觉得这个太新奇了,就研究他怎么实现的。
原来,他使用了一个网络服务,叫 WakaTime,大家可以自己去搜索,我就不放链接了。
WakaTime API遵循常见的REST约定。这意味着您应该使用GET请求来检索数据,以及POST、PUT或PATCH请求来修改数据。所有API请求都必须通过HTTPS进行。
其实,就是一个上报自己的编码行为的 WebService,具体的原理是通过 IDE 的插件完成数据采集和上报,对程序员来说几乎是透明的。十分有趣,我用 VS Code 安装了它家的插件,然后正常工作就行了。假装它不存在,过一段时间它就会采集数据绘制出信息图。
我想,对于每个程序员来说,都是很有意义的。比如我看到不少同学来我这里面试,通过某些网站生成的简历,会列举自己会各种技术,后面还带个评分。也是用柱状图显示的,比如 MySQL 98,Java 95 之类的,我觉得毫无意义,可能就是在那个网站做点简单的题目而已。如果是小时数要有意义得多。比如,Java 9000小时,SQL 400小时,参考价值更大。
另外,如果你在海外从事兼职或者做点零工,很多外国公司会用 Timesheet 来开 invoice,你可以利用 WakaTime 直接出具 Invoice,给你讨要工作更强的底气和更规范的格式。
WakaTime 可以免费使用,但是免费的版本只能记录两周的数据,收费的话,是 6美元一个月。
我在安装 WakaTime 的时候,还发现了对应的竞品,叫 CodeTime.dev 也是完全类似的东西,也通过 IDE 插件它的优势是,免费版本可以保存 90 天的数据。更有优势一点。收费版价格也差不多。
好消息是,你可以两个同时装,也不会有太多的性能负担。我现在就是如此,顺便体验一下两个服务的特色。不过实在是很好玩,这里先分享给大家。
在 GitHub 的 Profile 里,你可以显示你写每种语言的时间总长度,给社区一个良好的形象,有人写了 WakaTime 的 Actions,定期从 WakaTime 下载统计数据,生成 ascii 版的图表,展示在 Profile 的 readme 里,既酷炫又美观。
快去玩起来吧!