在此页面上

发布按钮是更大承诺的一小部分。当读者打开链接时,页面应该在那里。当编辑更改草稿时,公开文章应该保持原样。当标题改进时,旧书签仍然应该有效。

这些不是可选的改进。它们是使期刊可靠的条件。

将工作副本与公共记录分开

编辑需要思考的空间。这意味着能够重写引言、替换图像和重新考虑结论,而无需广播每个中间更改。已发布的文章及其下一个草稿是同一文档的两个版本,而不是一个带有状态标签的可变 blob。

行动 工作副本 公开文章
保存草稿 已更新 未更改
发布 已保留 原子替换
恢复修订版本 已恢复 未更改
取消发布 已保留 已从发现中移除

这种分离也简化了搜索。索引只应描述公共记录。添加到未发布段落中的词不应突然揭示新的结果。

标题可能会更改,但其地址不会更改。当地址必须更改时,旧地址应重定向到新的规范位置。重定向需要成为发布事务的一部分,而不是某人稍后才记住的任务。

with publication_transaction():
    validate(article)
    preserve_previous_address(article)
    update_public_snapshot(article)
    update_search_index(article)

代码是说明性的,但顺序表达了一个重要的关系:公共页面、其地址和索引是一个连贯的出版物。

测试普通路径

发布一个故事。在不同的浏览器中打开它。通过搜索找到它。更改其草稿。验证读者仍然看到以前的版本。再次发布。关注旧的URL。最后,取消发布并检查索引、提要和直接路由。

可靠性来自于测试功能之间的连接,而不仅仅是功能本身。

编辑系统通过使这些普通转换平淡无奇来赢得信任。