«
Next.js 全栈研发架构指南

时间:2024-11   


Arno 在使用 next.js 为阿里巴巴的钉钉(DingTalk)和其他大型项目提供他最好的最佳实践(BP)。

该文章使用 GPT 翻译自原文:Next.js Full Stack App Architecture Guide

Server

通用 API 和架构风格

Application 层(控制器)

控制器  /  路由 :对于 next.js 来说,api-routes 使用  函数  编程风格,传统的应用层。

Service 层

Service :用面向对象(OO)风格封装领域服务和管理器,处理业务逻辑的模块

// API Routeexport const POST = composeAPIRoute([authUser, authBizLogic, async(req, res, ctx) => {}])

// Page Serverexport const getServerSideProps = composePageServer(function(params, ctx) {  return <div>...</div>}, [authUserInPage, authBizLogicInPage])

// Server Actionexport const serverAction = composeServerAction([authUserAction, authBizLogicAction, async(req, res, ctx) => {}])

具体的 Sample 代码可以参看:https://github.com/SurfaceW/arno-packages/tree/main/server/next

Manager 层

Manager :以面向对象(OO)风格管理可复用代码的业务逻辑模块

数据持久层

Next.js 最佳实践指南

充分利用 Node / JavaScript 生态系统中的工具/库

避免重复造轮子,使用 Node / JavaScript 生态系统中最好的工具和库。

库和目录结构指南

我的实践:

Web 客户端

React 最佳实践指南

逻辑封装

性能和存储的提示

网络和通信

UI & UX 提示

特定领域的技术

不要重复造轮子,使用特定领域的技术来处理特定任务。

原生客户端

Arno 仍在探索 🧭

常见模式和约定

为 next.js 全栈应用开发提供开发者可以遵循和使用的一些常见模式和约定。

错误处理模式 (Error Handling Patterns)

0错误处理是最佳的错误处理,但在现实世界中我们无法避免错误,因此我们需要优雅且恰当地处理错误。

[2024-03-12 12:00:00] [ERROR level] [ServiceName] [ErrorTypeCode] [ErrorMsg] [?ErrorStack] 如有必要

文件类型和约定

类方法命名约定

参考资料

我的相关文章:

关于本文的注释