个人与开源

本文最后更新于:2021年9月9日 凌晨

场景

昨天,吾辈的 GitHub 提交已经超过了去年一整年。就在前几天,有人从 GitHub 上找到了吾辈,所以想谈一些吾辈关于开源的认识。

2020

1624672304685

2021

1624672317484

为什么要做开源项目

最初的想法是觉得开源很酷,许多厉害的人都创造了许多有趣的开源工具,典型的就是 Linux。后面工作之后坚持下来的原因更多是公司的项目很一般,所以只能通过开源项目来提高技术能力,并希望做出一点有用的东西。

收益

  • 学习开源项目的架构和设计
  • 实践自己的想法、尝试新的技术
  • 证明自己的技术能力
  • 认识一些志同道合的人
  • 做自己使用的工具总是可以做的更好

成本

  • 花费额外的时间和精力,对于工作的人来说这两个的重要程度不言而喻
  • 几乎无法得到经济上的回报
  • 前期可能没什么人会在意你,会有一段时间的孤独(不仅仅是做开源项目,任何创作型的行为皆然)

两个方向

就如同所有事情一样,做开源项目也有不同的选择,吾辈正在做的主要有两个方向:

  • 面向开发者的工具
  • 面向一般用户的工具

面向开发者的工具

正如其名,是做面向开发者使用的工具,从 UX 角度包括各种函数类库、CLI 命令行工具以及可视化开发工具等等。

  • 函数类库:lodash、moment 之类,对于开发者最灵活的方式,一般绑定编程语言
  • CLI 命令行工具:create-react-app、vite 之类,一般是为了解决某一类问题创建,可以跨编程语言组合
  • 可视化开发工具:例如 @vue/cli-service、VSCode、JetBrains 插件之类,一般是为了提供更加直观的使用方式,但也最不灵活和难以集成

怎么说呢,由开发者创建的开发者工具总是更容易的,尤其是当自己也使用时,更容易理解和优化功能。吾辈在工作之后创造了一些工具

  • @liuli-util/* 系列函数库:主要是希望减小工具库的 API 面积(lodash 许多函数吾辈很少用到)
  • @liuli-util/cli:主要是为了解决上面一系列工具库打包的问题,做到零配置打包的能力,类似 microbundle(preact 作者创建的工具)
  • i18next-dts-gen: 为 i18next 的 json 配置文件产生类型定义的方法,主要是应用在下面的一系列面向一般用户的工具中
  • vite-jetbrains-plugin: 将 vite 集成到 jetbrains ide 的插件

但同样的,这种选择也有自身的缺陷:主要是开发者本质上也只是用户的一个小部分群体,相当于放弃了开发者之外的庞大用户。而且开发者总是吐槽别人家的文档写的很烂,但同时又觉得写文档是一个麻烦的事情,所以使用体验一般不怎么样,许多名不见经传的工具往往只有作者能在 5 分钟内开始使用它。

面向一般用户的工具

相比于面向开发者,面向一般用户首先就天然拥有更多的受众,像每周基本上都会出现在 GitHub 热点中的 hexo 主题便是如此。但同时,想要创造一个对一般用户友好的工具并不简单,一般用户对各种麻烦的容忍程度不比开发者,否则也不会有产品经理、UI/UX 这种岗位了。

  • 没有文档:不容易或找不到正确使用的方法,一般就会不用了
  • 出现错误:我才不管是谁的锅,你让我用的不爽,我就不会用你。
  • 使用命令行:虽然现在命令行已经比较友好了,但对于一般用户而言仍然很难使用,更何况这是个很多人只用手机的时代。
  • 有外部依赖:依赖于 nodejs、python 等运行时对于一般用户而言都很麻烦

吾辈主要在做的是 joplin 相关的一系列工具

  • joplin-vscode-plugin install: joplin 的 vscode 插件
  • joplin-blog: 将 Joplin 作为数据源导出 blog/wiki
  • joplin-search-integration: 在 Google/Bing/Baidu 搜索中集成 joplin 笔记的搜索结果
  • joplin-batch-web: 处理一些 Joplin 本身不支持的批量操作,以可视化界面的形式展现出来。
  • joplin-api: Joplin 的 api 封装,适用于 web/nodejs,也是以上成果的基础
  • userjs: 一些自用的油猴脚本,主要用来改善网页浏览体验。

事实上,能够做面向一般用户的工具(吾辈也是一般用户),也是吾辈从后端转向前端的理由之一。

总结

无论如何,现在的世界都已经筑基于开源项目之上,吾辈也会坚持一直做下去。


个人与开源
https://blog.rxliuli.com/p/d4305821fd2a4dfc827811c17ca85fe6/
作者
rxliuli
发布于
2021年6月26日
许可协议