Ervy:在终端中渲染图表

2018-11-13 17:07

#Node.js #UI #ES6

2018 年 10 月 31 日,万圣节,夜。

没有糖果吃,也不热衷于过西方节日的我将 Ervy 开源到了 GitHub。这是一个凝聚了我大量心血的项目,我当初的目标是希望能够在 GitHub 上获得 100 star, 没想到截止到现在(写这篇文章时)已经收获了 1 k+ star。虽然不能说 star 多项目就好,但是对我来说,Ervy 是一个里程碑式的作品,极大地满足了我的虚荣心,毕竟大部分人都希望自己的项目成果能被人喜欢、使用。

起因

一直想造个可视化数据的轮子,可是又觉得现在的轮子已经够多够好用了,使用 Canvas、SVG 或者 DOM 渲染图表的框架一抓一大把,跟风也没什么意思。直到我了解到有关 ANSI escape code 的知识,才发现可以用光标作笔,以字符为墨,在终端中绘制图表,虽然有些简陋,不过也有那么点 ASCII art 的意思。

推广

GitHub 每天都有大量新建的项目,如果不推广一下,一般不会引来什么关注量。如果没有人关注自己的作品,自己大概率也会失去兴趣,Ervy 就变成一个玩具项目。只有引来关注,才有人使用,然后解决使用中的问题,增加用户希望的功能,项目才能“活”起来。第二天,我在自己喜欢的站点(V2EX、 Reddit、 Hacker News 等)发布了推广,最后上了 GitHub 的每日热榜,最好成绩冲到了第十位,引来了很多人的点赞(star)。虽然老话说“酒香不怕巷子深”,但是适度的推广还是很有必要的,这是一种自信的表现。如果你觉得自己的项目不错,就可以大大方方地推广一下,收获一些意见与建议,最终让这个项目变得更好。

想法

随着计算机的发展,字符界面(CLI)已经慢慢地离开了大多数人的视野。但是我发现自己已经开始慢慢喜欢上终端与字符了,所以有了这个项目。简简单单的字符,搭配一点想象力,就会有意想不到的表现效果。Ervy 在国内社区的反响比较平淡,但在 Reddit 的 JavaScript 版块上却成为了当日热帖,感谢这些鼓励者。

这个项目如果要介绍给别人,他会问一句“有什么用呢”,我也知道其实没什么用,但是好玩就足够了。很多人都想做有意义的事,做事情之前和之后都要问有什么意义,我觉得这样太累了。在业余时间,用自己喜欢的技术,最终构建出一个自己喜欢的作品,不用考虑 KPI 与产品需求,这个过程本身就很有意义。Ervy 的 README 中也明确地表达了自己的心声:

问:为什么做这个项目?答:因为我能。

还有就是项目取名的问题(好名字都被别人取了系列),为了项目取一个看得过去的名字,搜索了无数遍,基本上有涵义、和项目契合的名字早就被人取了,找不到满意的,Ervy 这个名字并不是单词,是自己用字母胡乱拼出来的,唯一个好处就是“短”……

想说的就是这些。