在为网络和移动建立共同功能时, 共享多长的单曲

2026年8月9日2 次浏览来源:Dev.to阅读原文

本文为日文正文的英文译名.

当我在已有的Next.js网络服务中添加了"博览会"应用软件时,我起初希望尽可能共享代码.

在实践中,类型和商业规则共享良好,而UI和运行时间依赖则更容易单独管理.

SquadNote使用pnpm工作空间和Turborepo,由.,和.组成.

当前分割根工作空间配置简单:只管理构建和打字检查依赖性.

与其增加共享的自定义构建步骤,我首先从一个每个软件包输出TypeScript源的结构开始.

我分享的最大好处来自TRPC类型.

移动类型输入网络,使用相同的输入和输出.

我还把颜色、间距和字体大小分开, 业务规则如等待列表成为共享候选人,作为纯函数,不依赖React或DB.

它们很容易测试,结果在网络和移动之间没有差别。

我不分享的东西,我不分享屏幕组件。

Next.js DOM和React Introduct View有不同的相互作用,可访问性和布局限制,即使它们看起来相似.

认证存储也不同: Web: NextAuth cookie session Mobile: SecureStore Bearer JWT 两者都到达同一个API,但共享登录屏幕和信使存储需要处理每个环境对许多分支的关注. routing还有"Next.js App路由器"和"博览会路由器"的单独实施.

我所认同的是一个通用的功能包装的意义。

标准 在将代码移到包之前, 我先检查一下: 它取决于DOM, 反应原生,节点,还是Cloudflare API?

网络和移动是否有同样的理由改变?

树枝会增加吗?

我能单凭单位测试来验证意义吗?

商业规则和类型往往有相同的改变理由。

UI即使为同一特性,也会用设备来分解其变化原因.

独行侠的优势在于不能分享一切.

它能够稍后移动共享边界。

我先执行内部应用,然后在规格漂移成为比重复更大的问题时提取到包上.

分享