我为什么要构建实时协作应用程序(DocuMe Devlog 1)

简介

因此,我的使命是通过构建每次都带来新挑战的实际项目来提高我的软件工程技能。

我最近开发了我的第一个全栈应用程序 On the Rocks,它教会了我集成前端、后端、数据库和云托管服务的基础知识。虽然我对此感到非常自豪,但我知道这只是一个开始。还有很多东西需要学习。

这让我想到了我的下一个项目:像 Google Docs 一样的实时协作应用程序。

想法:为什么要开发实时协作应用程序?

随着公司转向远程或混合工作模式,Google Suite 和 Microsoft 365 等协作工具已成为必需品。这些工具通过提供对文件的轻松访问和即时可见的更新来实现高效的团队合作。

**目标:构建实时文档协作应用程序并掌握可应用于其他项目的概念**

我不会在这里重新发明轮子,但这个项目将是一个挑战自己并成长为一名开发人员的好机会。

特点

待办事项列表和食谱追踪器等全栈应用程序实际上只需要实现 CRUD 操作即可实现完整的用户功能。

构建实时应用程序需要我们扩展基础技能,并解决以下功能:

  • 实时更新 - 跨多个客户端同步更新需要使用 WebSockets
  • 富文本编辑 - 为了让用户轻松设置文档样式并将其格式化以存储在数据库中,需要使用像 Quill 这样功能丰富的编辑器
  • 处理并发编辑 - 我必须对此进行更多研究,但应用程序需要一种方法来处理同时发生的文档编辑并操作相同的数据
  • 版本历史(延伸目标)
  • 此外,我很高兴了解到:

  • AWS Web 服务托管 - 可轻松扩展,具有适合应用程序所需需求的不同层级
  • 谷歌OAuth
  • 第一步:高层概述

  • 前端框架:React 用于用户界面 Tailwind CSS 用于快速响应式设计 TypeScript 用于类型检查和调试
  • 后端:Node.js Express MongoDB
  • Quill 富文本编辑器
  • 用于实时通信的 Websockets
  • 谷歌OAuth
  • 部署:Vercel(前端)AWS(后端)
  • 我可能会探索使用 Redis 进行数据库缓存和扩展准备。

    展望未来

    这就是目前为止的应用程序!在接下来的几周内,我将解决 Quill 集成、Google Oauth 实施和实时协作等功能,以实现这一愿景。我将记录我面临的挑战并分享可以帮助其他从事类似项目的人的解决方案。

    请继续关注下一个开发日志,我将在其中讨论如何设计应用程序的前端和后端架构!

    你怎么认为?

    我很乐意听听您的想法或分享您构建实时应用的经验。在评论中分享您的反馈或在 LinkedIn 上与我联系!