Adobe Commerce的一般开发最佳实践

本主题介绍正常Adobe Commerce开发过程的基准。 它描述了基本流程、编码原则和应用程序设计原则,以指导开发人员。

NOTE
Adobe技术架构师在涉及开发的参与过程中将这些最佳实践作为参考。

这些最佳实践是在开发和交付Commerce项目的多年经验的基础上开发的。 Adobe建议技术计划遵循这些最佳实践,并且您改进现有流程和代码以符合这些最佳实践。

文本惯例

本主题中的关键词“必须”、“不得要”、“必需”、“应”、“不应”、“应”、“不应该”、“建议”、“可能”和“可选”将解释为RFC 2119中所述。

进程

  1. 在开始项目活动之前,必须商定一个确定的项目方法。 它可以是Scrum、Waterfall或任何其它方法或方法组合,只要它有定义即可。
  2. 在开发团队获得版本控制系统的分支策略之前,不应开始开发。
  3. 在签署技术规范、签署用户故事和用例以及签署测试用例之后开发团队才应该开始。
  4. 在至少有一个开发和QA环境可用之前,不应开始开发。
  5. 对于开发必须开始的项目特定要求,可以在​ Ready ​的定义中记录。
  6. 签核应由有权签核项目交付件的客户代表完成。
  7. 在Agile项目方法中,签核后可能会提出其他要求。 应将这些需求视为新需求,并应相应地捕获、构建和规划这些需求。
  8. 在提交之前,所有开发都必须由开发人员进行功能测试。
  9. 所有开发都应先通过自动化测试,然后再提交进行代码审查。 在创建拉取请求后,可将此配置为自动流程。
  10. 所有开发都必须通过技术架构师或主要开发人员的手动代码审查,然后才能提交以进行质量保证。
  11. 所有开发都必须先通过质量保证,然后才能交付给客户端。
  12. 交付时强制执行的项目特定要求可能会记录在“完成的定义”中。

环境

  1. 所有开发人员应使用相同的IDE。 PhpStorm是推荐用于Adobe Commerce开发的IDE。
  2. 所有开发人员应使用与在(未来)生产服务器上使用的相同技术栈栈进行开发和测试。 此技术栈栈中的软件版本必须与生产服务器上安装的软件的主要版本和次要版本匹配。 有关Adobe Commerce的典型技术栈栈的详细信息,请参阅系统要求
  3. 系统管理员或技术架构师可以为团队提供集中维护的本地开发环境,以确保和促进平等和最新的本地环境。
  4. 开发人员和QA工程师必须能够访问QA环境的命令行、数据库和日志文件。 这可能需要VPN连接。

编码标准

  1. 所有代码都应遵循架构、方法和编码标准方面的惯例。 创意是功能所需,而不是形式所需。
  2. 所有代码应符合Adobe Commerce架构指南
  3. 所有代码都应遵循Adobe Commerce编码标准
  4. 所有代码都应遵循Adobe Commerce技术准则
  5. 所有代码都应实施Adobe Commerce最佳实践(如果适用)。
  6. 所有代码都应遵守PHP-Framework Interoperability Group (FIG)标准
  7. 建议尽可能考虑Adobe Commerce技术愿景
  8. 与外部系统的所有集成都应该进行集成测试,以验证业务流程。
  9. 所有模块都应具有测试覆盖率。 确切测试什么内容应由开发团队与技术架构师或主要开发人员合作确定。 这一确定应基于定性措施,而不是定量措施;高代码覆盖率不是成功指标,也不意味着代码质量高。 相反,通过评估程序某一部分出现退化的可能性和严重性,确定未涵盖该部分代码的风险。

版本控制

模块版本必须遵循语义版本控制2.0.0标准
Adobe Commerce代码库的依赖项应遵循模块版本依赖项准则

修订控制

提交必须伴有有意义的提交消息。

安全性

  1. 不应使用非安全函数
  2. 应应用XSS预防策略
  3. 应应用内容安全策略
  4. 新的Adobe Commerce实例应在尚未达到“安全修复程序结束”日期的最新安全版本上交付。 请参阅Adobe Commerce软件生命周期策略
recommendation-more-help
754cbbf3-3a3c-4af3-b6ce-9d34390f3a60