「语雀」2000万个代码块的背后?
作者 | 语雀研发工程师阎王
大家好,我叫阎王,是语雀团队的程序员,也是第 158 个注册语雀的用户。作为一名资深用户,今天想跟大家聊聊程序员——比如说我——为什么喜欢语雀。
某乎上有一个不成文的规定,说的是“先问是不是,再问为什么”。那么我先给大家看一组数据:
如果大家使用过语雀,一定对语雀的卡片不会陌生,我们统计了语雀上最受欢迎的文档卡片,其中使用量排行第一的是图片卡片,现在已经有 7100w 个了,而使用量排行第二的是啥呢?是代码块,有 2500w 个,大家可以可以想一想,语雀两千多万个代码块,会是多少个程序员敲出来的。
语雀现在的注册用户是 720w,结合代码块的数据一对比,可以看得出,语雀上的程序员绝不在少数。这当中的原因,我想可能和基因有关,毕竟语雀最开始就是由半个程序员利用业余时间撸出来的,当时只提供了简单的 Markdown 编辑能力。
那我为什么会喜欢语雀呢?有四个原因,分别是“众多提高程序员工作效率的元素”、 “支持思考、整理和表达的结构,利于持续写作”、“作为一个大脑の缓存器”、“见识到语雀上其他厉害的程序员”。下面我就展开说说。
1
众多提高程序员工作效率的元素
语雀里面还有一些让我爱不释手的功能,比如前面提到的代码块,这是一个迭代了好几版的文档卡片。第一版的时候,它只是一个单纯 Markdown 代码渲染,后来在样式和支持的语言上做了加强,再后来,又增加了代码块的命名、主题切换、高度调整、折叠,还有行高亮的能力,基本上可以满足绝大多数代码展示的需要:
再比如功能强大的不那么明显的数据表,使用数据表,几乎可以完成所有日常数据管理和整理需要:
在数据表中,它不仅支持问卷式的数据收集,还可以定制多种展示视图:
为啥说它强大得不够明显呢?平时大家基本都在文档中完成了所有的内容编写,很少会独立去创建一个数据表,不过未来它会被集成到文档中,可以很方便的完成内容和内容之间的串联和整理;当然,即便它现在还没有集成到文档编辑器,但是语雀依然允许通过嵌入文档的方式,将内容加载进来:
这也是为什么我喜欢语雀的一个原因,它支持文档的相互嵌套管理。
另外一个值得一提的是自由画板,以前在语雀画图,为了快,都是直接用文本绘图,三两句代码就勾勒出了一张生动的时序图:
上个月,为了准备一个技术分享,我用起了语雀的自由画板,用了才知道,它已经将思维导图和流程图给合体了,而且提供了非常丰富的绘图元素:
这不是粘贴上去图片哦,这是用自由画板一笔一笔画出来的,看到的时候,我简直下巴都要掉下来了。
除此之外,还有能全键盘操作的文档编辑器、写书一般体验的知识库目录、跟 Github 一样的创作指数绿墙等等,作为程序员,这些都是我比较喜欢的元素。
2
支持思考、整理和表达的结构,
利于持续写作
除了是一名搬砖人员,我的另外一重身份是一个技术自媒体人,用小胡子哥这个笔名写了十多年的博客。作为一个自媒体,少不了要发表一些内容,我日常的写作会有三种状态:
思考,一种是把脑子里面灵光乍现的内容记录下来,这个时候对工具几乎是没有任何要求的,只要能输入;
整理,第二种状态是整理思绪,其实写一篇文章最复杂的工序就在这个环节,我们需要把脑海中的内容和已有的内容做整合,让零碎的知识产生结构和关联,在这个过程中,经常会用到一些绘图工具、数据统计和分析工具,当然,不管是哪类工具,都是为了辅助我们更好地组织逻辑和编排内容;
表达,第三种状态,反而是最轻松的,将整理好的内容撰写成文,只不过在敲击键盘的时候,会不断地思考,假设我此时是一名读者,我正在看这些文字,我的感受是怎样的,不断地尝试换位思考,这样才有可能写出一篇别人愿意看的文章,在这个过程中,写一句删两句,或者一气呵成之后再修修补补,这些都是时常会经历的事情。
无论是哪一个状态,语雀都有不错的工具可以支撑,我经常会在语雀小记上记录生活日常和学习随笔,有时会直接开一个语雀脑图,开始发散思考,这些零碎的东西最终都会语雀知识库下写作的养料。
程序员之间一直有一个梗,我们特别恨那些不写注释的代码,也特别恨那些不写文档的程序员,但往往呢,我们自己就是那种人,大家都知道写作很重要,但是写作并不是一件简单的事情,每一次的“思考、整理和表达”,都需要好用的工具去协助自己,否则事倍功半,是很难坚持下来的。
3
作为一个大脑の缓存器
在语雀上写了好几年,一直不知道自己写下了多少条内容,直到有一天,语雀搞了一个年度账单,我看到我在语雀已经创作了几百篇文档,总字数也达到了十几万字,那个时候我知道,我的生活、学习和工作已经有一大部分都搬到了语雀。
无论是想法、任务、学习笔记还是其他资讯,我们每天接触的信息量非常大,这些信息既要有输入,也需要有序地输出,而整理就是思考的过程。我每天都会去语雀小记里头把最近一天的 TODO list 列出来,整理一番,给脑子清个零。
就像这张图画的一样,在程序员的日常里,不仅我们的代码高并发地跑在机器上,脑子也是一样的,每天我们都要处理非常非常多的事务,处理不过来怎么办呢?这个时候就需要有一个信息的中转站,控制一下信息流转的速度,同时呢,在这个中转站里面,把无效信息给剔除掉,然后分门别类地做好归类,最后再交给大脑处理,这样才能游刃有余地把事情一件一件做好。
4
语雀上其他的程序员们
我一直觉得自己是个喜欢折腾的程序员,但是在语雀上看到一些用户的玩法以后,我表示自愧不如。这张图演示了程序员如何利用语雀的开放接口,将自己在语雀的文章发布个人博客,做法还是十分极客的。
每当语雀有内容更新的时候,都会通过 webhook 将消息推送给一个云函数,云函数给 Github 的任务发送一条消息,让它把语雀的文档内容抓过去,进行一把构建,最后生成网页代码,推到仓库,因为 Github 有一个 pages 能力,会直接将仓库的代码展示为网页,于是就看到了右侧的效果了。
语雀的程序员用户一贯都是很优秀的,还记得语雀 iOS 移动端上线的那天,在苹果的 App Store 上搜索语雀,排名靠前的全部是使用开放 API 制作的三方客户端,这些客户端做的确实也挺不错的,值得我们学习。
我是 2020 年加入语雀的,到现在差不多也两年时间了。还记得 18 年的时候语雀下线了 Markdown 的创建入口,当时我义愤填膺地找到语雀团队,质问他们为啥要放弃 Markdown,你说你一个做 Markdown 起家的,先把程序员先骗上岸了,然后又要抛弃我们,这说的过去么?
后来一个叫平侠的找到我,语重心长地对我说,语雀没有放弃 Markdown,不仅没有放弃,而且将 Markdown 融入到了文档之中,比如通过 # 就可以输入大标题,输入/会弹出一个卡片选择框,等等等等,反正噼里啪啦讲了一堆。
今年我们也启动了一项优化计划,立志做一个“最懂程序员的笔记文档工具”,到时候会有一系列的新功能和新特性推出来,这里也可以提前给大家透露下,比如构建知识网络会用到的双向连接、比 GTD 更好用的个人目标管理工具,还有用于项目推进的团队任务管理工具等等,也希望在未来可以和大家一起让语雀变得更好。
END
截杀阿里腾讯的「云」巨头们
中国黑客关系图