DEV Community

Cover image for 我为什么打造小型、本地、单一用途的软件
Matt Senter
Matt Senter

Posted on Originally published at mattsenter.com

我为什么打造小型、本地、单一用途的软件

AI 已经让「生成一个庞大的应用」变得便宜到近乎无足轻重。你描述一个铺得很开的产品,几分钟内就能拿回好几千行看着挺像样的代码。

所以有必要把我实际一直在发布的东西直说清楚:小工具。Comoji、Burly、Premail。它们只做一件事,跑在你自己的机器上,而且完全不要求你注册任何账号。

这不是一个我需要为之道歉的局限。这就是全部的策略。

诱惑在于什么都做

当生成代码近乎免费时,人天然会被拉向「更多」。更多功能、更多设置、更大的覆盖面——因为这一切看上去前期都不花什么成本。

但代码才是便宜的那部分。生成之后的一切,才是真正的成本所在:为它提供支持、向人解释它、保证它的安全、在它坏掉时修好它,以及决定它应当拒绝去做什么。模型可以在一分钟里写出一个功能,却没法在接下来的三年里背着这个功能走。

所以在一个由 AI 辅助的世界里,更有用的自律不是把代码写得更快,而是决定不做什么。把范围保持得小,是我让这个决定保持诚实的方式。

一个应用,一件事

看看我实际发布过的东西,那个模式很难被忽略。

  • Comoji 给你本来就在输入的文本框,加上 Slack 那样的冒号 emoji 快捷方式。它就只做这件事。
  • Burly 接住你点击的链接,把它在正确的浏览器配置里打开。它就只做这件事。
  • Premail 在噪音抵达你的收件箱之前,把它从邮件里滤掉。它就只做这件事。

它们没有一个想变成平台。每一个都解决一个具体而单一的烦恼,然后让开。你可以用一句话说清它们中的任何一个,而这并非巧合。如果我没法用一句话描述一个工具,那通常说明我还没想清楚它是什么。

一个只做一件事的工具,同时也是一个你有可能做完的工具。一个什么都做的工具,则是你要永远维护、却永远做不太对的工具。

默认本地

这些应用共有的第二件事,是它们在你的设备上运行,并把你的数据留在那里。Comoji 在本地完成补全,你敲下的字从不离开这台 Mac。Burly 在机器上完成链接分流,没有任何 URL 被发往别处。Premail 在你自己的电脑上给邮件分类,而不是把它们导流经过别人的服务器。

这和我另外写过的 StockCar 背后是同一种本能:不要账号、不做绑定,你的持仓不会存在某台服务器上。我总是落到同一个地方,因为我一直在问同一个问题。

在加入任何需要服务器或登录的东西之前,我强迫自己回答:

  • 这个功能是真的需要收集数据,还是只是让我这边更方便?
  • 如果我们把这些存下来,谁就此成了保护它的责任人?
  • 万一这个存储泄露了,最坏会发生什么?
  • 如果用户得知这些数据离开了他的机器,他会感到意外吗?

大多数时候,诚实的答案是:这个账号的存在是为了公司的好处,而不是用户的。默认本地移除了一整类风险,因为你从未收集的数据,就是你永远不会弄丢的数据。

「小」是一种商业策略,不是安慰奖

人很容易把「小的、本地的、单一用途的」读成那个谦逊的选项:在你做不出更大的东西时退而求其次的那个。我的看法恰恰相反。

一个小工具,是单独一个人能够从头到尾拥有的工具。这意味着:

  • 它真的能被发布出去,而不是永远停在半成品状态
  • 它可以被完整地理解,于是缺陷无处藏身
  • 它可以在没有团队的情况下被维护,从而让经济账保持清醒
  • 它可以被信任,因为它没有多少可以背叛你的表面

随着 AI 加速了那些过去需要一支团队的部分,一个人如今可以设计、构建并发布一个打磨精良的原生应用。但这份杠杆只有在应用小到一个人还扛得住时才成立。范围,就是决定 AI 的杠杆是复利累积还是轰然坍塌的那个变量。

对这类工具来说,「做完」意味着什么

对一个单一用途的应用而言,「做完」是一个真实存在的状态,而不是一个不断移动的靶子。做完,意味着它承诺的那一件事可靠地运转、感觉迅捷,并且不挡你的路。

这让最难的工作变成了说不。Comoji 大可以长出一个有四十个选项的设置面板。Burly 大可以试图去管理你的浏览器,而不只是把链接送过去。Premail 大可以变成一个完整的邮件客户端。这些新增的每一样,都会让应用变得更大,也让承诺变得更模糊。

给 Mac 应用签名并公证,让选择器即刻响应,把邮件过滤得安静到你忘了它在运行:时间应该花在这些打磨上。克制不是没有野心。对这类软件来说,克制就是野心。

信任的红利

这样构建有一种容易被忽略的、会复利累积的好处。当一个应用小、本地、且不需要账号时,一个人可以在无需信仰之跃的情况下采用它。

没有注册流程要走完,没有数据要交出去,也不必琢磨你的信息之后会怎样。你下载它,它做它的事,而且不往家里打电话。这把「试一试」的成本压到几乎为零,也意味着你赢得的信任是真的,而不是榨取来的。

在一个 AI 让「用千篇一律、饥渴收数据的应用淹没世界」变得轻而易举的时刻,稀缺的是人们真的愿意放进自己一天里的软件。小而本地,是我试图从一开始就把这份安心内建进去的方式。

我一再回到的那条准则

廉价的生成改变了你能造多快。它没有改变什么值得造。如果说有什么变化,那就是当所有人都能产出更多时,产出更少但更对的那份自律,反而成了区分度所在。

所以对任何新开始的东西,我都会施加同一套检验:

  1. 我能用一句话说清它做什么吗?
  2. 它能不能在用户自己的机器上、不用账号就跑起来?
  3. 一个人能不能完整地拥有它?
  4. 我知道「做完」长什么样吗?

当这四个问题的答案都是「能」时,这个工具通常值得发布。当答案不是时,我多半正要造一个我撑不住的、比我大的东西。

小的、本地的、做完了的,胜过大的、托管的、没完没了的。这就是我押的注,而我一直在押。

Top comments (0)