共用方式為


標準化工具和程序的建議

適用於此 Azure 架構完善的架構營運卓越檢查清單建議:

OE:04 遵循經過業界證明的開發與測試做法,將軟體開發和品質保證程序優化。 如需明確的角色指定,請將工具、原始檔控制、應用程式設計模式、檔和樣式指南等元件之間的做法標準化。

相關指南改善建置 | 速度 使用持續整合

本指南說明定義軟體開發工具和程式標準的建議。 定義一致的做法會導致有效率的工作負載小組和高品質的工作。 高績效的小組會使用經業界驗證的工具和流程來將浪費的精力和潛在的程式碼錯誤降到最低。

關鍵設計策略

優化開發作法的第一個步驟是標準化工具和程式。 可能的話,請使用業界證明的解決方案,而不是開發內部解決方案。 若要進一步優化您的做法,請採用低程式代碼和無程式碼工具。 這些工具可讓您專注於您的應用程式,並協助您節省時間。 針對標準化的所有工具和程式,實作訓練,讓您的小組瞭解並有效率地使用。 若要定義有助於優化開發做法的標準,請考慮下列建議。

使用已知且成熟的現成工具

使用已知且成熟的現成工具,並標準化其使用方式。 高效能的工程小組採用最出色的工具。 這種方法可將開發規劃、開發、測試、共同作業和持續整合和持續傳遞的解決方案的需求降到最低(CI/CD)。 許多企業提供開發人員幾個工具之間的選擇,但所有選項都是組織的標準工具,而且會在內部進行驗證。 最重要的是,選擇符合您工作負載需求的工具。 現成的工具應該提供下列功能:

  • 工作規劃和待辦專案管理

  • 版本控制和存放庫

  • CI/CD 管線

  • 測試,例如整合、煙霧、合成使用者、模擬、混亂和其他質量測試

  • 程式代碼開發

在某些情況下,一個工具或一組工具可能會提供數個函式。 請確定您瞭解工具的功能及其限制,使其符合函式的需求。

判斷您是否應該投資昂貴的工具或進階版本的工具。 相較於進階工具所提供的功能,請考慮開發您自己的解決方案的時間和精力。 請考慮一次性成本與週期性成本。 在大部分情況下,現成的工具可為小組提供更高的價值。

實際使用低程式代碼、無程式碼和 AI 工具 。 低程式代碼和無程式代碼工具可讓開發人員輕鬆插入功能,而不是執行整個程式碼開發程式,以節省有經驗的開發人員時間。 這些工具也允許可能未訓練開發人員的工作負載小組成員參與工作負載的作業。 AI 工具可協助進行程式代碼開發、檢閱和優化。

標準化分支策略

盡可能選擇主幹型模型。 主幹型分支可讓工作負載開發小組保持資料同步,並鼓勵持續傳遞。 定義分支原則以保護重要的分支,例如主要分支。 如需詳細資訊,請參閱 採用 Git 分支策略分支原則和設定

評估計量以量化開發效率

軟體開發和質量保證小組只有在能夠量化其有效性時,才能改善。 為了量化有效性,他們必須識別測量 開發人員速度 並定義 KPI 的計量。 這些計量的範例包括:

  • 部署頻率:每個開發人員每天部署的部署數目。

  • 前置時間:工作或使用者故事從待辦專案移至生產部署所需的時間。

  • 平均解決時間:修正程式代碼錯誤或瑕疵的平均時間。

  • 變更失敗率:導致失敗的變更百分比。

若要協助項目關係人和工作負載小組輕鬆地追蹤速度,請使用儀錶板或其他報告工具將 KPI 可視化。

標準化工作負載小組撰寫、檢閱和文件程序代碼的方式

使用樣式指南,將工作負載小組撰寫、檢閱和文件程序代碼的方式標準化。 標準樣式可讓共同作業變得簡單,並有助於新的開發人員上線。 為了有效地工作,新開發人員必須了解工作負載小組的運作方式。 具有明確定義標準的樣式指南可以簡化他們訓練的過程。 在樣式指南中,定義開發語言、連結庫、架構和其他慣例的標準。

實用時,請使用工具來強制執行程式碼格式設定標準。 例如,Visual Studio 提供數 個工具 ,可掃描程式代碼的樣式、品質、可維護性、設計和其他問題。 針對基礎結構即程序代碼 (IaC),您可以使用 Checkov 或 Terrascan for Terraform。

為了確保一致性並避免混淆,樣式指南應包含成品、環境、分支、組建和執行的標準命名慣例。

您也應該為環境中允許的變異數程度設定指導方針和標準。 如果工作負載小組成員想要新增至標準清單的新語言、架構或其他技術,請在沙箱或較低環境中實作使用這些工具的程式。 測試其可行性,並在適當時取代現有的技術。

使用架構決策記錄 (ADR) 來保留工作負載小組設計決策的歷程記錄。 ADR 可協助小組保持對工作負載的全新瞭解。 它們也可協助新小組成員瞭解工作負載生命週期期間所做的設計決策。 確定 ADR 受到版本控制。

在您的 ADR 中,包括:

  • 特定工具和技術,例如使用 SQL 或 NoSQL,您的小組會選擇。

  • 小組決策的原因。

  • 已考慮的其他選項,有助於將最終決策內容化。

  • 納入決策的功能和非功能需求。

  • 決策程序的內容,例如已解決的問題。

實作解決技術債務的標準

採取這種心態:技術債務對於工作負載小組的可交付成果來說是有意為之且必要的。 這種心態會激勵小組定期考慮並解決技術債務,以避免債務積累。 將技術債務作為待辦專案中的定期週期性工作來處理。

例如,假設您的小組在連結庫上標準化。 經過一段時間,您必須切換至不同的連結庫,以取得工作負載中的新功能。 這種過渡可能導致技術債務。 通常,這類轉換可能會讓工作負載小組支援兩種技術,因為它們無法順利完全轉換。 工作負載小組必須優先完成轉換,因為當工作負載達到新功能時,項目關係人就會滿意,而且不太可能考慮技術債務。

將版本設定套用至成品的方式標準化

標準化如何將版本設定套用至成品,以及如何在內部和外部公開版本控制。 例如,用戶端對向系統應該會在使用者介面中公開其執行中版本。 當工作負載小組針對問題進行疑難解答時,這項技術很有幫助,因為客戶可以輕鬆地傳達他們所使用的版本。 REST 介面可以公開特定元件或資料庫的版本。 您可以在架構的元資料中使用特定資料表來公開架構版本。

使用業界證明的應用程式 設計模式 ,以確保您的應用程式可靠、高效能且安全。 相較於開發應用程式自己的解決方案,請使用這些模式來節省時間和精力。 選擇有利於您工作負載的模式。 定期檢閱設計模式,以確保您在工作負載發展時使用正確的模式。

實作左移測試方法

藉由在開發過程中早期且經常執行單元測試,實作移位左方測試方法。 在每個開發環境中頻繁測試可協助開發人員對其應用程式充滿信心。 若要使用 Shift-left 方法協助建立測試策略,請考慮下列原則:

  • 盡可能以最低的層級撰寫測試。 支援具有最少外部相依性的測試,並在組建中執行測試。

  • 撰寫測試一次,並在任何地方執行測試,包括生產環境。 撰寫可在每個開發環境中執行的測試,而不考慮一個環境特有的因素,例如加密的秘密或組態。

  • 設計工作負載以進行測試。 當您開發應用程式時,請讓可測試性成為需求。

  • 將測試程式代碼視為應用程式程序代碼。 將相同的品質和開發標準套用至應用程式程式代碼和測試程序代碼。 將測試程式代碼與應用程式程式代碼一起儲存。 使用應用程式程式代碼開發及維護測試程序代碼。 若要確保測試的品質,請捨棄不可靠的測試。

  • 請考慮以工作負載擁有權為基礎的測試擁有權。 您的工作負載小組擁有其測試,不應依賴其他小組來測試其程序代碼。

  • 盡可能自動化測試。 自動化程式代碼可減輕工作負載小組的負擔,並強制執行一致的品質。

如需實作 DevOps 測試策略的詳細指引,請參閱 將測試移入單元測試

需要 DevSecOps 做法作為標準作業程式的一部分。 您的工作負載小組應該瞭解與軟體開發和品質保證相關的安全性做法。 他們必須遵循這些做法,而不例外。 如需詳細資訊,請參閱 安全性開發生命週期指南

實作命名和標記資源的標準

實作標記和命名慣例是管理和組織 Azure 資源的最佳做法。 標記和命名慣例有助於根據一般屬性 (例如環境、應用程式、擁有者或成本中心) 來對資源進行識別、分類和分組。 它們也會跨訂用帳戶和資源群組啟用資源的安全性、自動化、報告和治理。

使用標準化標記和命名慣例的一些優點包括:

  • 它們提供資源識別和管理的一致性和清晰性,有助於跨 Azure 入口網站、PowerShell、CLI 和 API 進行探索和搜尋。
  • 它們會針對計費、監視、安全性和合規性目的啟用資源的篩選和群組。
  • 它們支持資源生命週期管理,例如布建、解除委任、備份和復原。
  • 對於安全性目的而言,它們至關重要。 如果您遇到安全性事件,請務必快速識別受影響的系統、那些系統支援的函式,以及潛在的業務影響。

如需針對雲端資源使用命名慣例的詳細資訊,請參閱 定義命名慣例。 如需如何將元數據標記套用至雲端資源的詳細資訊,請參閱 定義標記策略

Azure 便利化

  • Azure DevOps 是一組服務,可用來建置共同作業、有效率且一致的開發實務。 Azure DevOps 組合下列解決方案:

    • Azure Pipelines 提供組建和發行服務,以支援應用程式的 CI/CD。

    • Azure Boards 是以 Web 為基礎的工作管理工具,可支援 Scrum 和 Kanban 等敏捷式做法。

    • Azure Repos 是支援 Git 分散式版本控制系統和 Team Foundation 版本控制 系統的版本控制工具

    • Azure Test Plans 是以瀏覽器為基礎的測試管理解決方案,可提供計劃性手動測試、使用者驗收測試、探勘測試,以及收集專案關係人意見反應所需的功能。

    • Azure Artifacts 可用來讓開發人員有效率地共用其程式代碼及管理其套件。

  • 適用於 Azure 的 GitHub Actions 是一種工具,可用來將 CI/CD 程式自動化。 其會直接與 Azure 整合,以簡化部署。 您可以建立工作流程,以建置和測試存放庫的每個提取要求,或將合併的提取要求部署至生產環境。

  • GitHub Projects 是一種工作管理工具,可用來建立工作流程看板、報表、儀錶板和其他功能。

  • 低程式代碼與無程式碼工具包括:

  • Azure Resource Manager 範本Bicep 是 Azure 原生工具,可用來部署 IaC。 Terraform 是另一個 Azure 支援的 IaC 工具,可用來部署和管理基礎結構。

  • Visual Studio 是與 Azure 整合且支援多種語言的強大開發工具。

  • GitHub Copilot 是 AI 服務,可作為一對程式設計人員,並在程式代碼時提供自動完成樣式建議。 Copilot 可在Visual Studio和其他數個開發工具中作為延伸模組使用。

  • Azure 負載測試 是一項完全受控的負載測試服務,您可以藉由模擬應用程式的流量來產生大規模負載,而不論其裝載位置為何。

組織一致性

適用於 Azure 的 雲端採用架構 提供標記和命名 Azure 資源的一般指導方針和建議,以及不同資源類型的特定規則和範例。

卓越營運檢查清單

請參閱一組完整的建議。