软件工程您现在的位置是:首页 > 规矩方圆 > 软件工程

软件工程基本原则检查表

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-01-03软件工程 2 0关键字: 软件工程  

微软公司的一份检查表,逐条列出检查点,确保项目符合软件工程的要求。

该清单有助于确保我们的项目符合我们的工程基础。2m8无知

源代码管理

  • 默认目标分支被锁定。2m8无知

  • 合并是通过 PR 完成的。2m8无知

  • PR 引用相关的工作项。2m8无知

  • 提交历史是一致的,提交消息是信息丰富的(什么,为什么)。2m8无知

  • 一致的分支命名约定。2m8无知

  • 存储库结构的清晰文档。2m8无知

  • 秘密不是提交历史的一部分或公开的。(请参阅凭据扫描2m8无知

  • 公共存储库遵循OSS 指南,请参阅Required files in default branch for public repositories2m8无知

有关源代码管理的更多详细信息2m8无知

工作项目跟踪

  • 所有项目都在 AzDevOps(或类似)中进行跟踪。2m8无知

  • 董事会是有组织的(泳道、功能标签、技术标签)。2m8无知

有关积压管理的更多详细信息2m8无知

测试

  • 单元测试涵盖了所有组件的大部分(如果可能,>90%)。2m8无知

  • 集成测试运行以测试解决方案 e2e。2m8无知

有关自动化测试的更多详细信息2m8无知

连续性/连续性

  • Project 运行 CI,并在每个 PR 上自动构建和测试。2m8无知

  • 在合并 PR 之前,Project 使用 CD 来管理到副本环境的部署。2m8无知

  • 主分支总是可以发货的。2m8无知

有关持续集成持续交付的更多详细信息2m8无知

安全

  • 仅根据需要授予访问权限2m8无知

  • 机密存储在安全位置,而不是签入代码2m8无知

  • 数据在传输中被加密(如果有必要在静止时)并且密码被散列2m8无知

  • 系统是否拆分为具有关注点分离的逻辑段?这有助于限制安全漏洞。2m8无知

有关安全性的更多详细信息2m8无知

可观察性

  • 跟踪重要的业务和功能事件并收集相关指标。2m8无知

  • 记录应用程序故障和错误。2m8无知

  • 系统的健康状况受到监控。2m8无知

  • 可以区分客户端和服务器端的可观察性数据。2m8无知

  • 无需更改代码即可修改日志配置(例如:详细模式)。2m8无知

  • 传入的跟踪上下文被传播以允许生产问题调试目的。2m8无知

  • 确保有关 PII(个人身份信息)的 GDPR 合规性。2m8无知

有关可观察性的更多详细信息2m8无知

敏捷/Scrum

  • 流程主管(固定/轮换)运行每日站会2m8无知

  • 敏捷过程在团队中是明确定义的。2m8无知

  • 开发主管(+ PO/其他)负责积压管理和细化。2m8无知

  • 团队成员和客户之间建立了工作协议。2m8无知

有关敏捷开发的更多详细信息2m8无知

设计评论

  • 进行设计审查的过程包含在工作协议中2m8无知

  • 对解决方案的每个主要组件进行设计审查并记录在案,包括替代方案。2m8无知

  • 故事和/或 PR 链接到设计文档。2m8无知

  • 默认情况下,每个用户故事都包含一个用于设计审查的任务,该任务在 sprint 计划期间被分配或删除。2m8无知

  • 邀请项目顾问进行设计审查或要求对文档中捕获的设计决策提供反馈。2m8无知

  • 发现客户流程需要的所有评论并为它们制定计划。2m8无知

  • 捕获的明确非功能性需求(参见非功能性需求指南2m8无知

有关设计评论的更多详细信息2m8无知

代码审查

  • 团队中对代码审查的功能达成了明确的共识。2m8无知

  • 团队有代码审查清单或既定流程。2m8无知

  • PR 合并的最少审阅者人数(通常为 2 人)由政策强制执行。2m8无知

  • 为 PR 合并设置 Linters/代码分析器、单元测试和成功构建。2m8无知

  • 有一个流程可以强制执行快速审核周转。2m8无知

有关代码审查的更多详细信息2m8无知

回顾展

  • 每周/每个冲刺结束时都会进行回顾。2m8无知

  • 该团队确定了 1-3 个提议的实验,每周/冲刺尝试以改进流程。2m8无知

  • 实验有所有者并被添加到项目积压中。2m8无知

  • 团队对里程碑和项目完成进行了更长的回顾。2m8无知

有关回顾的更多详细信息2m8无知

工程反馈

  • 团队提交有关阻止项目成功的业务和技术障碍的反馈2m8无知

  • 解决方案中包含了改进建议2m8无知

  • 反馈详细且可重复2m8无知

有关工程反馈的更多详细信息2m8无知

开发者体验 (DevEx)

团队中的开发人员可以:2m8无知

  • 构建/编译源以验证它没有语法错误和编译。2m8无知

  • 执行所有自动化测试(单元、e2e 等)。2m8无知

  • 启动/启动端到端以模拟部署环境中的执行。2m8无知

  • 将调试器附加到已启动的解决方案或运行自动化测试、设置断点、单步执行代码和检查变量。2m8无知

  • 通过在其 IDE 中按 F5(或等效项)自动安装依赖项。2m8无知

  • 使用本地开发配置值(即 .env、appsettings.development.json)。2m8无知

有关开发人员体验的更多详细信息2m8无知


2m8无知

转自:https://microsoft.github.io/code-with-engineering-playbook/ENG-FUNDAMENTALS-CHECKLIST/ 2m8无知


2m8无知

本文为转载文章,版权归原作者所有,不代表本站立场和观点。

很赞哦! () 有话说 ()