在此页面上
发布按钮是更大承诺的一小部分。当读者打开链接时,页面应该在那里。当编辑更改草稿时,公开文章应该保持原样。当标题改进时,旧书签仍然应该有效。
这些不是可选的改进。它们是使期刊可靠的条件。
将工作副本与公共记录分开
编辑需要思考的空间。这意味着能够重写引言、替换图像和重新考虑结论,而无需广播每个中间更改。已发布的文章及其下一个草稿是同一文档的两个版本,而不是一个带有状态标签的可变 blob。
| 行动 | 工作副本 | 公开文章 |
|---|---|---|
| 保存草稿 | 已更新 | 未更改 |
| 发布 | 已保留 | 原子替换 |
| 恢复修订版本 | 已恢复 | 未更改 |
| 取消发布 | 已保留 | 已从发现中移除 |
这种分离也简化了搜索。索引只应描述公共记录。添加到未发布段落中的词不应突然揭示新的结果。
保持链接有意义
标题可能会更改,但其地址不会更改。当地址必须更改时,旧地址应重定向到新的规范位置。重定向需要成为发布事务的一部分,而不是某人稍后才记住的任务。
with publication_transaction():
validate(article)
preserve_previous_address(article)
update_public_snapshot(article)
update_search_index(article)
代码是说明性的,但顺序表达了一个重要的关系:公共页面、其地址和索引是一个连贯的出版物。
测试普通路径
发布一个故事。在不同的浏览器中打开它。通过搜索找到它。更改其草稿。验证读者仍然看到以前的版本。再次发布。关注旧的URL。最后,取消发布并检查索引、提要和直接路由。
可靠性来自于测试功能之间的连接,而不仅仅是功能本身。
编辑系统通过使这些普通转换平淡无奇来赢得信任。