研发协作
在 Tamagui/Turbo/Next.js/Expo/S…
当使用 Tamagui、Turbo、Next.js、Expo、Supabase、Solito、Stripe 构建 TypeScript 跨平台 monorepo 应用时,按统一规范组织代码、样式、状态、性能、导航与支付集成。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 Tamagui/Turbo/Next特定
解决思路
- 编写简洁的 TypeScript,优先使用函数式模式
- 使用带辅助动词的描述性变量名,例如 isLoading
- 使用命名导出组织文件,导出组件、辅助函数和类型
- 优先使用 interface 而不是 type
- 使用 Zod 进行 schema 校验
- 使用字面量类型而不是 enum
- 使用 TypeScript interface 定义 props 构建函数式组件
- 使用 Tamagui 构建跨平台组件
- 实现移动优先的响应式设计
- 在 Web 与原生端保持样式一致
- 使用 Tamagui 的主题能力
- 使用 Zustand 管理状态
- 使用 TanStack React Query 进行数据获取与缓存
- 尽量减少 useEffect 的使用
- 在 Web 端使用 i18next 和 react-i18next
- 在 React Native 端使用 expo-localization
- 国际化所有面向用户的文本
- 优先考虑边缘情况
- 使用 guard clauses 提前处理错误
- 实现自定义错误类型以保持一致
- 同时优化 Web 和原生平台
- 在 Next.js 中使用动态导入
- 实现懒加载
- 使用合适格式优化图片
- 遵循 Turbo 最佳实践
- 通过正确的依赖管理隔离包
- 使用共享配置
- 按 package.json 组织 workspace
- 使用 Solito 进行导航
- 为平台特定代码创建 .native.tsx 文件
- 使用 SolitoImage 实现跨平台图片兼容
- 实现支付处理和订阅
- 使用 Stripe Customer Portal
- 处理 webhook 以接收订阅事件
- 将订阅状态与 Supabase 同步
适用边界 · 注意事项
- 不适用于非 monorepo、单端 Web 或单端 React Native 项目
- 不适用于未使用 Tamagui、Turbo、Next.js、Expo、Supabase、Solito、Stripe 技术栈的项目
- 不适用于无需跨平台、国际化、订阅支付或云端同步的轻量项目