构建可扩展的全栈Web应用程序需要从一开始就需要仔细的计划和战略决策。 从框架选择到身份验证,都会影响成本,可伸缩性和适应性。 本文详细介绍了ENT堆栈背后的设计选择,这是一个可重复使用的全堆栈解决方案,该解决方案由Express,Next.js和Trpc。
ENT堆栈的目的是成为一个可部署的项目,该项目在允许独立部署的同时共享后端和前端之间的代码。 它专为成本效益而设计(最初以低成本VPS运行),但具有可扩展性来处理未来的增长。 为了避免昂贵的重构,在十三个关键领域进行了预先做出的关键决策:框架选择,项目结构,API层,环境和配置,数据库,身份验证和授权,验证和错误处理,州管理,国际化,国际化(I18N),日志记录,邮寄,邮件,测试和DevOps。
> ENT堆栈可作为github上的monorepo和一个NPM软件包,可轻松脚手架。
github存储库
1。框架选择
后端(express):> T3 ENV确保对环境变量的静态验证。 自定义配置类管理静态设置,而ESM(ecmascript模块)支持后端和前端之间的代码共享。 Tailwind CSS用于前端样式。
选择一个符合酸的MySQL数据库,以提供可靠性和交易保证。毛毛雨ORM为数据库交互提供了轻巧的类型安全方法。
6。身份验证和授权(无密码,路线级保护)标志实现的。
10。记录(pino) >
>
protected
7。验证和错误处理(ZOD,TRPC错误Formatter,Sonner)>标准化错误处理。 Sonner Toasts向用户显示错误。自定义
确保明确的错误处理。errorFormatter
8。国家管理(Zustand,Tanstack查询)ErrorService
9。国际化(I18N)(使用INTL-MESSAGEFORMAT的自定义解决方案))的自定义I18N解决方案提供了类型的安全性和自动树木震动。 路线也是完全可以翻译的。
intl-messageformat
Pino为后端和前端提供结构化日志记录,提供速度和一致的输出。
>重新启动简化电子邮件,车把创建电子邮件模板,并促进电子邮件测试。
剧作家都可以处理前端E2E和后端API测试(与Supertest集成)。
aws ecs,Terraform,github Action,S3和CloudFront管理基础架构和CI/CD,在单独的存储库中详细介绍。
以上是ENT堆栈:在5中构建全堆栈Web应用程序的关键决策的详细内容。更多信息请关注PHP中文网其他相关文章!