代码所有权规则
团队协作规范
代码风格统一是团队协作的基础。使用工具如ESLint、Prettier强制格式化代码,避免因缩进、分号等风格问题引发争议。配置示例:
// .eslintrc.js
module.exports = {
extends: ['airbnb', 'prettier'],
rules: {
'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx'] }],
'no-console': 'off',
},
};
Git工作流需要明确定义。推荐使用Git Flow或Trunk Based Development模式,feature分支命名遵循feat/xxx
格式。合并代码时必须通过Code Review,典型操作流程:
git checkout -b feat/user-auth
git commit -m "添加JWT认证模块"
git push origin feat/user-auth
每日站会时间控制在15分钟内,使用Jira等工具跟踪任务状态。代码审查要具体指出问题,避免"这里需要优化"等模糊表述,应改为"函数参数超过5个,建议改用对象参数"。
代码所有权规则
模块级所有权采用"谁开发谁维护"原则。在Monorepo项目中通过OWNERS
文件明确责任人:
# src/components/table/OWNERS
@fe-team-zhangsan
@fe-team-lisi
共享代码需设立委员会制度。对于跨团队使用的公共组件,变更必须经过3个以上核心成员批准。版本发布遵循语义化版本控制:
// package.json
{
"version": "2.1.0", // MAJOR.MINOR.PATCH
"private": true
}
废弃代码处理要规范。使用@deprecated
标注并保留至少两个迭代周期:
/**
* @deprecated 使用新版useModal代替
* @remove-after 2024-06-30
*/
export function openDialog(config) {
// 旧实现
}
文档规范
所有新功能必须配套文档。使用TypeScript时自动生成类型定义文档:
interface PaginationParams {
/** 当前页码,从1开始计数 */
current: number;
/** 每页记录数 */
pageSize: number;
}
复杂算法需添加流程图说明。使用Mermaid语法嵌入Markdown:
```mermaid
graph TD
A[开始] --> B{条件判断}
B -->|是| C[执行操作1]
B -->|否| D[执行操作2]
```
API变更记录必须更新CHANGELOG.md,格式参考:
## [2.1.0] - 2023-11-20
### Added
- 新增虚拟滚动表格组件
### Changed
- 分页器默认样式调整
质量保障措施
单元测试覆盖率要求核心模块达到90%以上。Jest配置示例:
// jest.config.js
module.exports = {
collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}'],
coverageThreshold: {
global: {
branches: 80,
functions: 85,
lines: 90,
statements: 90,
},
},
};
E2E测试使用Cypress编写典型测试用例:
describe('登录流程', () => {
it('成功登录后跳转仪表盘', () => {
cy.visit('/login')
cy.get('#username').type('admin')
cy.get('#password').type('123456')
cy.get('form').submit()
cy.url().should('include', '/dashboard')
})
})
性能监控需接入Sentry等工具,捕获运行时错误:
import * as Sentry from '@sentry/react';
Sentry.init({
dsn: 'https://example@sentry.io/1',
release: process.env.REACT_APP_VERSION,
});
紧急情况处理
生产环境事故按严重程度分级响应:
- P0级:30分钟内响应,全团队协作处理
- P1级:2小时内响应,模块负责人主导
- P2级:下一个工作日处理
回滚操作必须记录操作日志:
-- 数据库回滚记录
INSERT INTO rollback_log
(operator, version, reason, timestamp)
VALUES ('zhangsan', '2.1.0', '分页组件导致白屏', NOW());
热修复分支命名规范为hotfix/日期-问题简述
,合并后需同步到所有长期分支。
本站部分内容来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:cc@cccx.cn