0

我对开发并不陌生(在 .net、php 甚至 node.js 上开展了许多业务),但我对从头开始创建自己的应用程序很陌生。我一直在研究应该使用哪种语言,并且我倾向于使用 django 和 postgreSQL 或 mongoDB 作为数据库的 Python。我很乐意修改现有代码,但我将开始尝试从头开始构建一些东西。

我想构建一个非常简单的在线代码编辑器,用户可以在其中输入一些代码在他们的浏览器中(颜色编码和格式化就像传统的 IDE)。但是,我希望发生两件事:

1.) 当他们输入代码时,其他人(查看者)可以看到输入的代码,因为它是实时输入的。

2.) 当用户在网络代码编辑器中输入代码时,他们的击键和点击被记录下来,以便以后可以回放。

这个想法是有人可以编写一段代码,然后有人可以稍后回放该代码段(几乎就像一个视频),看看编码员是如何得出这个解决方案的。这有点像屏幕录制,除了录制屏幕(如果没有在最终用户系统上安装应用程序,这是不可能的),我将记录他们的输入,以便可以重播这些输入。

这可能使用 python/django 吗?django(或其他)中是否已经有一些东西可以为我提供这种录制/播放功能?

如果说 100 个用户同时执行此操作,那么 postgreSQL 是否能够跟上所有这些读/写操作?这可能是一项更适合 mongoDB 之类的任务,但我不希望将 noSQL 数据库用作整个站点的数据库。

如果您觉得对此有更好的框架(例如 Rails),我也会有兴趣了解这一点。

4

1 回答 1

2

使用 Django(或任何与此相关的 Web 框架)是可能的。虽然对于第一个项目来说似乎有点困难。

困难的部分将是性能/可扩展性。由于您需要实时通信(一位观众实时看到另一位观众输入的内容),您可能需要将websocket合并到您的堆栈中。否则你将无法处理负载。

“重播”部分更容易。这将发生在前端(Javascript),您将在其中以小批量存储击键,您将定期发送到服务器以保持持久性。

您不必担心 PostgreSQL 跟不上负载。请参阅此演示文稿 https://speakerdeck.com/zeeg/building-to-scale,它解释了您的数据库很少成为瓶颈。MongoDB 也比宣传的要慢得多。大多数时候它不会在 Postgres 面前举起蜡烛。

另一个有趣的文件是这个基准(pdf)

至于现有的 django 项目可以满足您的需求,我认为没有。

于 2013-04-02T07:32:10.393 回答