返回首页
最新
呼叫中心 Cs 银行 OCBC,请拨打 0851-6690-3793 联系我们。客户服务中心全天候 24 小时为您服务。
基本上是为 Python 提供的 Google 文档。
在过去的四个月里,我一直在进行一个我非常自豪的全栈项目,叫做 PyTogether;这是一个为初学者设计的实时协作 Python IDE(可以想象成 Google 文档,但用于 Python)。它旨在用于配对编程、辅导或一起学习 Python。完全免费。没有订阅,没有广告,什么都没有。只需创建一个账户,建立一个小组,开始一个项目。它具有适当的代码检查、用于记笔记或教学的实时绘图、语音聊天、极其直观的用户界面、自动保存和实时光标。目前没有任何限制(除了代码大小以防止恶意负载)。
为什么要在 Replit 或 VS Code Live Share 已经存在的情况下构建这个呢?
因为我的目标是简单性(和教育)。我想要一个轻量级的工具,适合那些只想编写和分享简单 Python 脚本(单独或与他人一起)的初学者,而不需要下载、付费墙或额外的干扰。它也没有内置 AI/助手,这实际上是许多教师和学习者所偏好的。而且它是免费的,哈哈。
技术栈(前端):React + TailwindCSS,CodeMirror 用于代码检查,Y.js 用于实时同步和实时光标,Skulpt 用于在浏览器中执行 Python(出于安全考虑 - 我最初想用 Docker 容器,但那样在规模上会消耗太多内存。Skulpt 的库有限,因此不幸的是像 pygame 这样的导入将无法使用)。我不太喜欢前端或 UI 设计,所以我依赖 AI 来帮助设计,但所有的逻辑/代码都是我自己的。通过 Vercel 部署。
技术栈(后端):Django(channels、auth、celery/redis 支持使其非常适合),通过 Supabase 的 PostgreSQL,JWT + OAuth 认证,Redis 用于通道层 + 缓存,完全 Docker 化 + 部署在 VPS 上(8GB RAM,$7/月的优惠)。
数据模型:用户 <-> 小组 -> 项目 -> 代码,用户可以加入多个小组,小组可以有多个项目,每个项目属于一个小组,并且有一个代码文件(为了简单起见,保持简单,尽管我可能会稍后添加文件系统)。
在构建这个项目时,我遇到了很多问题,尤其是与后端相关的问题。我最大的问题是如何创建一个可靠且智能的自动保存系统。我不能让它在每次用户按键时保存,因为显而易见,这会在规模上使数据库不堪重负。因此,我想出了一个我非常自豪的解决方案;我使用 Redis 来缓存活动项目,然后每分钟使用 Celery 循环遍历这些活动项目,并将代码持久化到数据库。我通过跟踪每个项目的用户数量来实现这一点,每当有人加入或离开时,如果某个项目的用户数量降到 0,就将其从 Redis 中移除(同时保存代码)。Redis 非常快速,因此在每次按键时保存代码根本不是问题。我实际上是用一石四鸟,因为我重用了已经集成到我的通道层中的 Redis 来跟踪活动项目,并缓存代码,这样当新用户进入项目时,就可以从 Redis 中获取代码,而不是访问数据库。我甚至可以将 Redis 作为 Celery 的消息代理(没有使用 RabbitMQ,因为我想节省存储,而不是将整个新服务 Docker 化)。这在规模上也能很好地工作,因为 Celery 会将大量代码的自动保存任务卸载到后端。当有人离开项目时,代码也会保存。后来我遇到的另一个问题是,如果人们尝试发送大量文本,所以我将限制设定为 1 MB(会对此进行调整)。
在 VPS 上部署是另一个挑战。我花了大约 8 小时来处理 Nginx、Certbot、Docker 和 GitHub Actions,以使一切正常运行。这很令人沮丧,但我学到了很多东西。
如果你感兴趣,或者想亲自查看这个项目,源代码在这里。欢迎贡献:<a href="https://github.com/SJRiz/pytogether" rel="nofollow">https://github.com/SJRiz/pytogether</a>。
我仍在学习,因此任何反馈都将非常棒(以及贡献)!
是的,这确实发生了。我和一个匹配对象在聊天,发了一条谷歌地图链接和一个建议的时间,但没有收到回复。就在这时,我注意到Tinder开始出现奇怪的情况。我虽然已经用完了每日滑动的次数,但仍然可以滑动;我可以打开与匹配对象的对话,但无法打开他们的个人资料(视图会立即跳回)。我仍然可以注销并重新登录。客服回复说“账户因违反服务条款或社区指南而被禁用”,并表示这个决定是在“经过充分考虑”后做出的(这完全是胡说,实际上是自动禁用),他们无法帮助我。我想我可能是被他们的反垃圾邮件算法误判,导致了影子禁令。
我对能否尽快解决这个问题完全没有希望。我感到非常沮丧,因为现在我无法见到那个可爱的女人。我觉得很糟糕,因为她会想知道我为什么突然取消匹配(从她的角度来看),她很想了解我。此外,我可能再也无法使用Tinder了,这一切都因为一个毫无责任感的公司的糟糕算法。我之前甚至还为白金会员付过费。