沉思录210613

每日自问:

  1. 你想成为怎样的人?

昨天读到一篇文章——关于 Yak Shaving, antfu @antfu 介绍了他关于如何做开源项目的一些想法。

Yak Shaving 字面意思是为牦牛剪毛,而它引申义是,你正在进行一项工作,在这一过程中发现了另一项工作,而又在这另一项工作中发现了第三项工作……如此继续下去,让你忘记最初想要完成的工作,最终什么都没完成。

但是 antfu 却从中受益,因为他觉得这是促成很多事情的重要动力来源。当一个人需要一个工具的当下,他最有动力去实现它。以下是 antfu 的开源经历分享,我概括描述一下:

antfu 去菲律宾毕业旅行时,发觉因为换汇导致公账的记录和结算变得非常复杂。旅行归来后, antfu 和他的同学便萌生了做一款 App 解决这个问题的想法。因为换汇是个跨国家的操作,面向的不是少数几个国家,所以多语言国际化就是一个亟待解决的问题。经过一些尝试,antfu 他们决定建立 i18n Allly(基于 think2011/vscode-vue-i18n)。

App 开发到后期时,正逢 Vue 3 的 Composition API RFC,新的 API 看起来解决了开发中的许多痛点,本着实验的精神,antfu 他们开始试用 Vue 2 的插件。使用的过程中,发现很多函数是经常使用的,借用 react-use 的思想,antfu 便把它们抽离出来做成了 VueUse

鉴于 Vue 3 处于 Alpha 阶段,未来很长一段时间里社区会从 Vue 2 逐步迁移到 Vue 3。所以在做 VueUse 的过程中,antfu 便有意的将它作为 Vue 2 和 Vue 3 通用的工具以便大家进行无缝迁移。后来 antfu 从 VueUse 中找到了一个通用方案——vue-demi,让 VueUse 可以实现一个版本同时支持 Vue 双版本。因为某种原因,antfu 加入了 Vue 团队。

最终 App 没有成功,但是 antfu 却收获很多解决问题做出的各种项目和参与开源的宝贵经验。

antfu 认为,如果利用得当,Yak Shaving 可以成为一个很好的驱动进步的引擎

关于如何把 Yak Shaving 变成一件好事,他有以下几点方法:

一、发现问题

不要只是想如何做出别人想要的东西,而是解决自己遇到的实际的问题。

二、解决问题

开始尝试解决一个问题时,要先寻找社区中现有的解决方案,如果这个问题已经被很好地解决,也都满足你的需求直接用就好了。

当发现这个问题并没有什么解决方案,或是现有的方案无法满足你的需求时,刚好你又有一个不错的点子,那么恭喜你,你找到了一只不错的 Yak。

三、点到为止

利用 Yak Shaving 最重要的一点莫过于点到为止——不要抱太大期待,如果想法被验证了可行,做到够用即可;如果想法不可行,也不必气馁,丢掉便是,也许哪天想明白了也可以再捡回来。要记住:你是做给自己用的,能解决自己的问题就好。重要的是,不要在一个想法上花费过多的时间,及时回去做你本该做的事情。

四、完善项目

在使用产品过程中,你会发现很多需要改善的部分,时不时地去修改完善它。有空的话可以加个 README,描述一下你遇到的问题以及做这个项目的动机,也许可以顺便帮助到一些遇到一样问题的人。

五、发现更多问题

多看多尝试。解决和完善的过程中,很大可能你会发现新的可以解决的问题,亦或是来自社区的 Issue 也可以很好地帮助你找到更多的灵感。