適用於此 Azure 架構完善的架構營運卓越檢查清單建議:
OE:04 | 透過遵循經過產業驗證的開發和測試做法,來最佳化軟體開發和品質保證流程。 對於明確的角色指定,請跨元件 (如工具、原始檔空置、應用程式設計模式、文件和樣式指南) 來標準化實踐。 |
---|
本指南說明定義軟體開發工具和程式標準的建議。 定義一致的做法可以帶來高效率的工作負載團隊和高品質的工作。 高績效團隊使用經過行業驗證的工具和流程來最大限度地減少浪費的精力和潛在的程式碼錯誤。
關鍵設計策略
優化開發作法的第一個步驟是標準化工具和程式。 可能的話,請使用業界證明的解決方案,而不是開發內部解決方案。 若要進一步優化您的做法,請採用低程式代碼和無程式碼工具。 這些工具可讓您專注於您的應用程式,並協助您節省時間。 針對標準化的所有工具和程式,實作訓練,讓您的小組瞭解並有效率地使用。 若要定義有助於最佳化開發做法的標準,請考慮以下建議。
使用已知且成熟的現成工具
使用已知且成熟的現成工具,並標準化其使用方式。 高效率的工程團隊採用一流的工具。 這種方法可將開發規劃、開發、測試、共同作業和持續整合和持續傳遞的解決方案的需求降到最低(CI/CD)。 許多企業提供開發人員幾個工具之間的選擇,但所有選項都是組織的標準工具,而且會在內部進行驗證。 最重要的是,選擇符合您工作負載需求的工具。 現成的工具應該提供下列功能:
工作計畫和待辦項目管理
版本控制和儲存庫
CI/CD 管線
測試,例如整合、煙霧、合成使用者、模擬、混亂和其他質量測試
程式代碼開發
在某些情況下,一個工具或一套工具可能提供多種功能。 確保您瞭解工具的功能及其限制,以便它們能夠滿足各種功能的需求。
判斷您是否應該投資昂貴的工具或進階版本的工具。 與高級工具提供的功能相比,請考慮開發自己的解決方案所需的時間和精力。 考慮一次性成本與經常性成本。 在大多數情況下,現成的工具可以為您的團隊提供更高的價值。
在適合時使用低程式代碼、無程式碼和 AI 工具。 低程式代碼和無程式代碼工具可讓開發人員輕鬆插入功能,而不是執行整個程式碼開發程式,以節省有經驗的開發人員時間。 這些工具也讓未受過開發人員訓練的工作負載團隊成員能夠參與工作負載的運作。 AI 工具可以幫助程式碼開發、審查和最佳化。
標準化分支策略
盡可能選擇主幹型模型。 主幹式分支能夠讓開發團隊保持同步,並鼓勵持續交付。 定義分支原則以保護重要的分支,例如主要分支。 如需詳細資訊,請參閱 採用 Git 分支策略 和 分支原則和設定。
評估計量以量化開發效率
軟體開發和質量保證小組只有在能夠量化其有效性時,才能改善。 為了量化有效性,他們必須識別測量 開發人員速度 並定義 KPI 的計量。 這些指標的範例包括:
部署頻率:每個開發人員每天部署的部署數目。
前置時間:工作或使用者故事從待辦專案移至生產部署所需的時間。
平均解決時間:修正程式代碼錯誤或瑕疵的平均時間。
變更失敗率:導致失敗的變更百分比。
為了幫助利害關係人和工作負載團隊輕鬆追蹤速度,請使用儀表板或其他報告工具來視覺化 KPI。
標準化工作負載團隊編寫、審閱和記錄代碼的方式
使用風格指南標準化工作負載團隊編寫、審查和記錄程式碼的方式。 標準風格使協作變得容易,並有助於新開發人員的入職。 為了有效地工作,新開發人員需要了解工作負載團隊的運作方式。 具有明確定義標準的風格指南可以簡化他們的訓練過程。 在樣式指南中,定義開發語言、連結庫、架構和其他慣例的標準。
實用時,請使用工具來強制執行程式碼格式設定標準。 例如,Visual Studio 提供數 個工具 ,可掃描程式代碼的樣式、品質、可維護性、設計和其他問題。 針對以代碼管理基礎建設(IaC),您可以使用適用於 Terraform 的 Checkov 或 Terrascan。
為了確保一致性並避免混淆,樣式指南應包含成品、環境、分支、組建和執行的標準命名慣例。
您也應該為環境中允許的變異數程度設定指導方針和標準。 如果工作負載小組成員想要新增至標準清單的新語言、架構或其他技術,請在沙箱或較低環境中實作使用這些工具的程式。 測試其可行性,並在適當時取代現有的技術。
使用架構決策記錄 (ADR) 來保留工作負載小組設計決策的歷程記錄。 ADR 可協助小組保持對工作負載的全新瞭解。 它們也可協助新小組成員瞭解工作負載生命週期期間所做的設計決策。 確定 ADR 受到版本控制。
在您的 ADR 中,請包含:
具體工具和技術,例如使用 SQL 或 NoSQL,由您的小組選擇。
小組決策的原因。
已考慮的其他選項,有助於將最終決策內容化。
納入決策的功能和非功能需求。
決策程序的內容,例如已解決的問題。
實作解決技術債務的標準
採用技術債務對於工作負載小組交付專案的刻意和必要心態。 這種心態會激勵您的團隊定期考慮和解決技術債務,以避免累積。 將技術債做為積壓中的定期重複任務來解決。
例如,假設您的團隊在程式庫上標準化。 經過一段時間,您必須切換至不同的程式庫,以獲得新功能加入到工作負載中。 這種過渡可能導致技術債務。 通常,這類轉換經常會讓工作負載團隊同時支援兩種技術,因為它們無法順利完全轉換。 工作負載小組必須優先完成轉換,因為當工作負載達到新功能時,項目關係人就會滿意,而且不太可能考慮技術債務。
將您對工件套用版本控制的方式標準化
標準化如何將版本設定套用至成品,以及如何在內部和外部公開版本控制。 例如,用戶端對向系統應該會在使用者介面中公開其執行中版本。 當工作負載小組針對問題進行疑難解答時,這項技術很有幫助,因為客戶可以輕鬆地傳達他們所使用的版本。 REST 介面可以公開特定元件或資料庫的版本。 您可以在架構的元資料中使用特定資料表來公開架構版本。
使用業界證明的應用程式 設計模式 ,以確保您的應用程式可靠、高效能且安全。 相較於開發應用程式自己的解決方案,請使用這些模式來節省時間和精力。 選擇有利於您的工作負載的模式。 定期檢閱設計模式,以確保您在工作負載發展時使用正確的模式。
實作左移測試方法
透過儘早並經常在整個開發過程中執行單元測試來實作左移測試方法。 在每個開發環境中進行頻繁測試可以幫助開發人員對他們的應用程式充滿信心。 為了幫助使用左移方法建立測試策略,請考慮以下原則:
盡可能以最低的層級撰寫測試。 優先使用最少的外部依賴項進行測試,並將測試做為組建的一部分執行。
撰寫測試一次,並在任何地方執行測試,包括生產環境。 編寫可以在每個開發環境中執行的測試,而無需考慮特定於某一環境的因素,例如加密的機密或設定。
設計工作負載以進行測試。 當您開發應用程式時,請將可測試性做為一項要求。
將測試程式代碼視為應用程式程序代碼。 將相同的品質和開發標準套用至應用程式程式代碼和測試程序代碼。 將測試程式代碼與應用程式程式代碼一起儲存。 使用應用程式代碼開發並維護測試代碼。 若要確保測試的品質,請捨棄不可靠的測試。
請考慮以工作負載擁有權為基礎的測試擁有權。 您的工作負載小組擁有其測試,不應依賴其他小組來測試其程序代碼。
盡可能自動化測試。 自動化程式碼減輕了工作負載團隊的負擔並確保品質一致。
執行各種測試類型,例如單元、煙霧、整合和驗收測試。 如需這些類型測試的詳細檢閱,請參閱工作負載供應鏈建議指南的測試一節。
需要 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 資源的一般指導方針和建議,以及不同資源類型的特定規則和範例。
相關連結
- 採用 Git 分支策略
- 分支原則和設定
- 雲端設計模式
- 開發人員速度
- 開發 Azure 資源的命名和標記策略
- DevOps 資源中心
- 使用 Azure 和 GitHub 啟用 DevSecOps
- 原始碼分析概觀
- 安全性開發生命週期指南
- DevOps 中的安全性 (DevSecOps)
- 使用單元測試將測試左移
- 影片系列:GitHub CoPilot 簡介
卓越營運清單
請參閱一組完整的建議。