跳转到内容

为什么本地优先的软件依然重要 ​

一个人的工作成果,通常最好就保存在自己身边。这不是因为网络不好,而是因为距离会带来依赖,依赖又会带来故障点。

本地优先的软件始于一个简单的承诺:即使网络连接失效,产品也应当依然有用。

网络不是产品本身 ​

云服务让软件更容易交付,也更容易分享。同时,它们也让我们逐渐接受了一种奇怪的交换:为了便利,我们放弃了对工作成果存放在哪里、何时可用,以及能够访问多久的控制权。

一个不登录就无法打开的文档编辑器,在服务宕机时并不只是偶然出了状况。它揭示了产品认定工作成果应当归属于何处。一个需要借助远程服务才能搜索你自己电脑上照片的图库,也基于同样的假设。

本地优先的设计将用户的数据和核心体验放在网络连接的用户这一端。服务器仍然可以协助备份、协作、发现和同步,只是不再是产品得以真正存在的唯一场所。

所有权改变使用体验 ​

当软件在本地运行时,所有权就变得切实可感。文件可以被查看、复制、备份、迁移,也可以交给其他工具使用。产品成为工作流程的一部分,而不是围在流程外的一道关卡。

这会改变许多细节,多得出人意料:

  • 导入可以撤销,而不是一经执行就无法回退。
  • 搜索可以很快,因为无需等待一次网络往返。
  • 私密文件默认就能保持私密。
  • 账号可以是可选项,而不是打开产品后看到的第一个界面。
  • 导出可以是日常操作,而不是紧急逃生通道。

这些不只是技术上的好处,也是尊重用户的体现。它们告诉人们:工作成果属于他们自己,产品是来提供帮助的,而不是将这些成果扣作人质。

隐私是一项产品决策 ​

隐私常常被表述为一份政策文件,但本地优先的系统可以将它落实为产品行为。如果工具能够在设备上分析文件,就不必仅仅因为上传在架构上更容易实现,而把文件上传出去。

这并不意味着本地软件天然就能保护隐私。一个疏于隐私保护的桌面应用也可能收集大量数据。它意味着产品有了更好的起点:用户无需进行不必要的信息披露,就能完成有用的操作。

离线能力体现产品质量 ​

离线支持也是对产品质量的检验。它考验的是:没有远程状态指示、加载动画或权限检查时,核心交互是否仍然完整连贯。它迫使团队明确产品究竟在做什么。

好的离线体验不是一种特殊模式,而是附加条件更少的默认体验。

同步应当保持谦逊 ​

同步很有价值,也让许多本地优先的承诺变得复杂。冲突、未完成的上传、被删除的文件、时钟漂移,以及不兼容的版本,都是实实在在的问题。

解决办法不是把复杂性藏在一个仿佛无所不能的云朵图标后面,而是让同步过程清晰可理解,并且能够恢复。展示尚待处理的内容。尽可能保留历史记录。宁可留下重复副本,也不要悄无声息地丢失数据。让用户决定何时处理需要关注的冲突。

最好的同步系统,不是声称绝不会出错的系统,而是让问题易于理解、能够安全修复的系统。

与软件建立更安静的关系 ​

本地优先的软件让人们与所依赖的系统之间保留一点距离。它让工具可以随时提供帮助,却不掌控一切。在许多产品都想成为包办一切的场所的时代,这是一种有意义的转变。

我们不需要每个工具都变成平台。我们需要更多这样的工具:做好一件有用的事,让用户的工作成果留在身边,并与系统中的其他部分协同运作。

网络依然重要。本地优先只是始终记得:网络是手段,而不是目的。