所有文章2 MIN READ

从一个小工具开始,把想法变成作品。

不等一个完美的点子。找到日常里重复出现的小问题,把第一个版本做出来。

打开一个空文件的时候,最容易想的,是它最终会变得多么完整。登录、数据库、统计、设置,一张功能清单很快就能写满一页。

但一个值得被使用的工具,通常从更具体的地方开始:有件事,自己已经重复做了很多次。

先观察,再写代码

可以花几天记下工作里的小摩擦。比如每次发布文章都要手动检查链接,每次分享图片都要调整尺寸,或者每周都在重新整理同样的笔记。

问题越具体,越容易知道工具是否真的有用。与其说「我要做一个效率平台」,不如说「我想让整理这十个链接少花五分钟」。

让第一个版本只有一条路径

画出使用工具的最短过程:输入是什么,工具做什么,结果是什么。

以整理链接为例,第一版可以只有一个输入框和一个复制按钮。用户粘贴链接,工具移除空行和重复项,然后输出一份干净的列表。

javascript
function uniqueLines(input) {
  const lines = input
    .split('\n')
    .map(line => line.trim())
    .filter(Boolean);

  return [...new Set(lines)].join('\n');
}

这段代码不是完整产品,却已经解决了一个真实问题。先把这条路径做好,再考虑其他入口。

把完成条件写清楚

「做得更好」没有终点。「粘贴二十行文字,复制去重后的结果」则可以直接验证。

为第一版写下三个条件:

  1. 正常输入能得到预期结果。
  2. 空输入和重复点击不会让页面出错。
  3. 刷新后,用户知道怎样重新开始。

完成条件足够具体,开发过程就更容易保持方向。暂时想不到怎样验证的功能,可以先留在笔记里。

用几次,再决定下一步

第一次使用时,常常会发现按钮位置不顺手、提示不清楚,或者真正需要的功能和开始想的不一样。

这些发现很有价值。让实际使用决定第二版,比沿着最初的功能清单一路做下去更可靠。

小工具不一定要长成大产品。能稳定解决一个问题,已经是一件完整的作品。

感谢你读到这里。
我们在下一篇文字里,再见。