# 工程体系

# 初始化

# 工程模板

  1. 选择合适的工程模板,确保项目结构合理,文件夹层次清晰。
  2. 使用脚手架工具(如 Yeoman、Create React App)快速生成项目模板。
  3. 定制项目模板以满足特定需求。

# 物料

  1. 整理和管理常用组件库、工具库。
  2. 确保物料库中每个组件有详细的文档和使用示例。
  3. 物料库的版本管理,保持与项目的兼容性。

# 最佳实践

  1. 遵循代码规范(如 Airbnb JavaScript Style Guide)。
  2. 使用 ESLint 进行代码质量检查。
  3. 编写高质量的单元测试,保证代码覆盖率。
  4. 持续集成和持续交付(CI/CD)流程的实施。

# 开发

# Code Lint

  1. 使用 ESLint 或 TSLint 等工具进行代码规范检查。
  2. 配置项目级别的 lint 规则,保证代码一致性。
  3. 在 CI 环节中强制执行 lint 规则,避免低质量代码进入主分支。

# Mock

  1. 在开发阶段使用 Mock 数据进行接口模拟。
  2. 使用工具如 Mock.js 或 JSON Server。
  3. 配置 Mock 数据以匹配实际接口结构,确保前后端开发解耦。

# Debug/Preview

  1. 使用浏览器开发者工具进行调试。
  2. 集成 VScode 等 IDE 的调试工具。
  3. 本地和预发布环境的预览功能,确保功能正常。

# Code Review

  1. 确立代码评审流程,确保每个提交都经过审查。
  2. 使用 GitHub 或 GitLab 的 Pull Request/Merge Request 功能。
  3. 评审标准包括代码质量、性能、安全性和可读性。

# WebIDE

  1. 配置和使用 WebIDE,如 Cloud9 或 CodeSandbox。
  2. 集成常用插件,提高开发效率。
  3. 保障 WebIDE 环境的一致性和稳定性。

# 构建

# 本地构建

  1. 使用 webpack、Rollup 或 Parcel 等构建工具。
  2. 配置构建脚本,实现本地环境的快速构建。
  3. 保证本地构建结果与线上环境一致。

# 云端构建

  1. 集成云端构建服务,如 Jenkins、Travis CI 或 GitHub Actions。
  2. 配置自动化构建和部署流程。
  3. 确保构建过程的安全性和稳定性。

# 多语言构建

  1. 配置多语言支持,使用 i18n 等工具。
  2. 确保构建过程中的语言文件加载和替换。
  3. 支持不同语言环境的打包和发布。

# Source Map

  1. 在构建过程中生成 source map 文件,方便调试。
  2. 确保 source map 文件的安全性,避免泄露源码。
  3. 在生产环境中配置 source map 的加载和使用。

# 测试

# 单测/E2E

  1. 编写单元测试(unit tests),使用 Jest、Mocha 等工具。
  2. 编写端到端测试(E2E tests),使用 Cypress 或 Selenium。
  3. 确保测试覆盖率和质量,集成测试报告工具。

# 安全扫描

  1. 使用 Snyk、OWASP 等工具进行安全扫描。
  2. 定期扫描项目依赖和代码,发现并修复安全漏洞。
  3. 配置自动化安全扫描流程,集成到 CI 环节中。

# CI

  1. 配置持续集成(CI)流程,使用 Jenkins、Travis CI 或 GitHub Actions。
  2. 集成代码检查、测试和构建等步骤。
  3. 确保每次代码提交后自动触发 CI 流程,保证代码质量。

# 发布

# 卡口

  1. 配置发布流程中的各个卡口,确保发布的顺利进行。
  2. 包括构建卡口、测试卡口和安全检查卡口等。
  3. 确保每个卡口的顺利通过,保证发布质量。

# 权限控制

  1. 配置发布权限,确保只有授权人员可以执行发布操作。
  2. 使用 RBAC(基于角色的访问控制)模型进行权限管理。
  3. 定期审核发布权限,确保安全。

# 灰度放量

  1. 配置灰度发布策略,逐步放量发布新版本。
  2. 使用 A/B 测试等方法,确保新版本的稳定性和用户体验。
  3. 实时监控灰度发布情况,及时调整发布策略。

# 流量监控

  1. 配置流量监控工具,实时监控应用的运行情况。
  2. 使用 Prometheus、Grafana 等工具,进行指标收集和展示。
  3. 配置告警策略,及时发现并处理异常情况。

# 回滚

  1. 配置回滚机制,确保发布失败时可以快速回滚到上一个稳定版本。
  2. 使用版本控制工具(如 Git)进行版本管理。
  3. 测试回滚机制,确保其可行性和可靠性。

# CD

  1. 配置持续交付(CD)流程,自动化部署到生产环境。
  2. 使用 Jenkins、GitHub Actions 等工具进行自动化部署。
  3. 确保每次部署的安全性和稳定性。

# 监控

# 监控

# 上报标准

  1. 定义数据上报的标准和格式,确保数据一致性。
  2. 配置上报频率和内容,保证数据的实时性和准确性。
  3. 定期审查和优化上报标准,适应业务需求的变化。

# 监控平台

  1. 选择和配置监控平台,如 Prometheus、Grafana、ELK Stack。
  2. 集成监控指标,实时展示应用状态。
  3. 定期维护和优化监控平台,提升监控效果。

# 告警诊断

  1. 配置告警规则,确保异常情况能够及时发现和处理。
  2. 使用工具如 PagerDuty 或 OpsGenie 进行告警管理。
  3. 进行告警的诊断和处理,确保应用的稳定运行。

# 安全生产

# 前端安全环境

  1. 配置前端安全策略,防范 XSS、CSRF 等攻击。
  2. 使用 HTTPS 加密通信,保障数据传输安全。
  3. 定期进行安全审计,发现并修复安全漏洞。

# 攻防演练

  1. 定期进行攻防演练,提升团队的安全意识和应对能力。
  2. 模拟实际攻击场景,测试防御机制的有效性。
  3. 总结演练经验,改进安全防御策略。

# 变更管控

  1. 配置变更管理流程,确保每次变更都有记录和审批。
  2. 使用工具如 Jira 或 ServiceNow 进行变更管理。
  3. 审查和评估变更的影响,确保变更的安全性和可控性。