从广义上讲,如何创建像37signals这样的写板?

时间:2011-06-16 18:28:08

标签: ruby-on-rails markdown 37-signals

我处于rails的开始阶段,想要构建像37Signals write board这样的东西,这样我就可以学习并感觉“完成”,但不知道从以下几个方面开始:

  1. 是降价格式的文本 在DB中存储为原始文本?
  2. 将每个编辑/版本存储为原始markdown DB中的文字?
  3. 最重要的是怎么做 我们发现两者的差异 或更多版本?有一套 这个算法?

1 个答案:

答案 0 :(得分:1)

虽然我显然无法回答37Signals的实施情况,但这是我的想法:

  1. 由于写板支持编辑以格式化形式存储降价,这意味着无论何时有人编辑降价,您都必须将格式化的html还原为降价。我非常怀疑这将是一个很好的理想,虽然有人可能会争辩说,如果编辑到无编辑的比例非常小,那么性能优势(因为你不必将降价转换为html)将标记存储格式化将是一个休息优势。您也可以选择在数据库中同时使用该版本,或仅在缓存中使用格式化版本。

  2. 由于写字板可能会变得非常大,您可能会存储每个版本的差异(参见3.)以及完整的最新版本。这样,无论何时显示写入板,您都可以使用完整的最新版本,并且您不必从差异构建它,同时通过不以完整形式存储每个修订来节省空间。

  3. 您可以使用diff,这是在vcs中完成的,如svn和git,diff为您提供两个文本文件之间的区别:哪些字符已更改,插入和删除。