前端开发
在 Next.js + React + Redux…
适用于使用 Next.js、React、Redux Toolkit 和 TypeScript 开发前端应用时,统一代码风格、组件架构、状态管理、测试、安全与可访问性规范。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 Next.js + React + 特定
解决思路
- 遵循 SOLID 原则,产出可维护、可扩展的代码。
- 优先采用函数式和声明式方法,而不是命令式风格。
- 优先保证类型安全并利用静态分析。
- 采用组件驱动架构。
- 缩进:使用制表符(tabs)。
- 字符串:使用单引号,除非需要转义。
- 分号:省略,除非需要消除歧义。
- 运算符:中缀运算符两侧加空格。
- 函数:声明括号前加空格。
- 相等比较:始终使用 `===` 而不是 `==`。
- 行长:最多 80 个字符。
- 条件语句:多行 if 语句使用花括号。
- 集合:多行数组/对象使用尾随逗号。
- PascalCase:用于组件、类型定义、接口。
- kebab-case:用于目录和文件名(例如 `user-profile.tsx`)。
- camelCase:用于变量、函数、方法、hooks、属性和 props。
- UPPERCASE:用于环境变量、常量、全局配置。
- 事件处理器前缀:`handle`(例如 `handleClick`)。
- 布尔值命名:使用动词(例如 `isLoading`、`hasError`、`canSubmit`)。
- 自定义 hooks 前缀:`use`(例如 `useAuth`、`useForm`)。
- 使用带 TypeScript 接口的函数组件。
- 使用 `function` 关键字定义组件。
- 将可复用逻辑抽取为自定义 hooks。
- 正确应用组合模式。
- 策略性地使用 `React.memo()`。
- 在 `useEffect` hooks 中实现清理逻辑。
- 使用 `useCallback` 记忆化函数。
- 对昂贵计算应用 `useMemo`。
- 避免在 JSX 中定义内联函数。
- 通过动态导入实现代码分割。
- 在列表中使用正确的 `key` props(绝不要使用索引)。
- 使用 App Router 进行路由。
- 实现 metadata 管理。
- 应用合适的缓存策略。
- 实现错误边界。
- 使用内置组件:`Image`、`Link`、`Script`、`Head`。
- 实现加载状态。
- 使用合适的数据获取方法。
- 默认使用 Server Components。
- 使用 URL 查询参数处理服务器状态。
- 仅在必要时应用 `use client`。
- 触发 `use client` 的场景:事件监听器。
- 触发 `use client` 的场景:浏览器 API。
- 触发 `use client` 的场景:状态管理。
- 触发 `use client` 的场景:客户端库。
- 启用 strict mode。
- 为 props、state 和 Redux 结构定义清晰接口。
- 使用类型守卫保证 undefined/null 安全。
- 应用泛型提升灵活性。
- 利用工具类型(`Partial`、`Pick`、`Omit`)。
- 对象类型优先使用 `interface` 而不是 `type`。
- 使用映射类型处理动态类型变体。
- Shadcn UI:使用一致、可访问的组件。
- Radix UI:使用可定制的 primitives。
- 组合模式:保持模块化。
- Tailwind CSS:采用 utility-first 方法。
- 移动优先的响应式设计。
- 通过 CSS variables 或 Tailwind 的 dark mode 实现暗色模式。
- 使用可访问的颜色对比度。
- 保持一致的间距值。
- 使用 CSS variables 定义主题颜色。
- `useState` 用于组件级状态。
- `useReducer` 用于复杂状态。
- `useContext` 用于共享状态。
- 使用 `createSlice` 合并 state/reducers/actions。
- 规范化 state 结构。
- 使用 selectors 封装访问。
- 按 feature 分离关注点(避免单体 slice)。
- 使用 Zod 进行 schema 校验。
- 集成 React Hook Form。
- 提供清晰的错误消息。
- 优雅捕获并处理 React 树错误。
- 将错误记录到外部服务(例如 Sentry)。
- 展示用户友好的 fallback UI。
- 使用 Jest 和 React Testing Library。
- 采用 Arrange-Act-Assert 模式。
- Mock 外部依赖和 API 调用。
- 关注用户工作流。
- 正确设置/清理测试环境。
- 有选择地进行 snapshot testing。
- 使用测试工具(RTL 中的 `screen`)。
- 使用语义化 HTML。
- 使用准确的 ARIA 属性。
- 支持完整键盘导航。
- 正确管理焦点。
- 使用可访问的颜色对比度。
- 保持逻辑性的标题层级。
- 使用可访问的交互元素。
- 提供清晰的错误反馈。
- 对输入进行 sanitization 以防止 XSS。
- 使用 DOMPurify 进行 HTML sanitization。
- 使用合适的认证方法。
- 使用 next-i18next 进行翻译。
- 实现 locale 检测。
- 格式化数字和日期。
- 支持 RTL。
- 格式化货币。
- 为所有 public functions、classes、methods、interfaces 编写 JSDoc。
- 使用完整句子和正确标点。
- 提供清晰、简洁的描述。
- 正确使用 markdown、代码块、链接、标题、列表。
- 在合适时提供示例。
适用边界 · 注意事项
- 不适用于非 Next.js、React、Redux Toolkit、TypeScript 技术栈的项目。
- 不适用于明确放弃类型安全、组件化或这些库的小型脚本/原型。
- 如果团队已有强制且冲突的代码风格或工程规范,应优先遵循既有规范,而不是直接套用。