大家好,我是陳哥,今天聊聊規範優先原則 ~
背景
前幾天,和我同事閒談,聊到我在來禪道之前參與過的一個專案。當時,小團隊對程式碼規範不夠重視,結果合併程式碼時出現大量格式衝突,解決問題費時費力,最終專案的完成時間遠遠超過我們對專案預估的工時。
“無規矩不成方圓”,來了禪道以後才發現,其實小公司也應該有自己的程式碼規範。大家如果對禪道的程式碼規範感興趣的話,我先贈送大家一份【禪道資料】和大家分享禪道的程式碼規範,下篇文章將會詳細介紹。
那麼,今天的文章先和大家講講規範優先原則,希望大家重新認識規範優先原則。
一、 什麼是規範優先?
在《國富論》開篇寫道:“一個好的經濟制度,就是鼓勵每個人去創造更多的財富。” 這句話放在規範優先原則中也同樣使用,“規範優先原則,就是鼓勵每一個程式設計師去寫更優秀的程式碼。”
規範優先是一種軟體開發方法,其原則是產品需求規範應在實際編碼階段開始之前制定和批准。這意味著開發團隊首先定義應用程式介面的外觀、哪些端點(方法)可用、應該傳輸哪些資料以及以何種方式傳輸,從而促進更結構化和可預測的開發過程。
規範優先方法發揮著重要作用:
(1)主動開發流程管理
規範優先使團隊在開始編碼之前就能清楚地瞭解他們需要建立什麼,這減少了客戶期望和實際結果之間產生誤解和差異的可能性。
(2)改善溝通
建立 API 規範可鼓勵開發人員、客戶和其他利益相關者討論和完善需求。這有助於更好地理解專案並加速開發過程。這種方法有助於避免客戶和開發人員之間的誤解,並最大限度地降低開發後期需求變更的風險。
(3)輕鬆整合和測試
規範優先原則的主要優勢之一是能夠在程式碼準備就緒之前輕鬆開始整合和測試。有了 API 規範,就可以設定模擬服務,並建立自動化測試,從而加快開發過程並確保更高的程式碼質量。
二、 自動化質量保證的好處
1. 早期測試開發
由於 API 規範是在開發開始之前建立的,因此 AQA 部門可以根據規範中已經描述的方法提前開始編寫測試。這大大減少了開發測試套件所需的時間,並提高了其完整性和準確性。例如,有了明確的規範,AQA 部門甚至可以在規劃階段開始開發測試場景,從而最佳化測試流程並減少將來花費的時間。
2. 提高效率
根據預定義規範進行測試可簡化流程並提高 AQA 部門的工作效率。規範中概述了清晰簡潔的需求,測試專家可以專注於驗證特定的功能能力和需求,而不必花時間識別介面中的差異或需求中的模糊之處。例如,擁有詳細的規範可以幫助 AQA 工程師快速確定要進行哪些測試來驗證特定功能,從而大大減少測試場景開發和執行所花費的時間。
三、 整合優勢
由於幾個重要原因,在軟體開發中制定規範對於與其他團隊的有效整合至關重要。原因如下:
1. 清晰度和一致性
規範從一開始就明確了專案目標和引數。這確保所有參與的團隊對需要開發的內容以及不同元件如何互動有統一的理解。共享規範使團隊能夠更有效地協調他們的努力以實現共同目標。
2. 減少誤解
規範有助於避免團隊、客戶和利益相關者之間的誤解。透過提前全面記錄需求,整合階段出現誤解或溝通不暢的風險顯著降低。這可使團隊之間的協作和整合更加順暢。
3. 更快的問題解決
當團隊按照明確定義的規範工作時,整合過程中出現的任何問題或疑問都可以更快、更果斷地得到解決。該規範可作為解決問題、確定根本原因和有效實施解決方案的參考點。
4. 加速開發程序
有了規範,整合任務甚至可以在整個系統完全開發之前開始。團隊可以根據文件中指定的約定介面和行為開始整合其元件。這種並行工作簡化了開發流程並加快了整個專案的時間表。
5. 增強質量保證
規範有助於更輕鬆、更全面地進行測試。可以根據規範中定義的預期行為開發測試場景,讓質量保證團隊能夠儘早驗證功能。這樣可以減少缺陷和問題,提高軟體質量。
6. 提高利益相關者的滿意度
採用規範驅動的方法通常會產生更好的結果,與利益相關者的期望緊密相關。透過遵守記錄的要求,開發團隊可以提供滿足或超出客戶需求的產品,從而提高滿意度。
四、 結論
在開發團隊中實施規範優先原則是提高軟體開發流程效率的關鍵一步。這種方法可以促進更加結構化和透明的開發流程,提高質量並加快上市時間。
為了成功過渡到規範優先,我們可以先採用這些步驟:
1. 選擇正確的工具
選擇用於建立和儲存 API 規範的工具起著重要作用。選擇會影響使用 API 的難易程度以及整個團隊的規範的可訪問性和清晰度。
2. 逐步融入和適應
最好逐步實施新方法,從單個專案或模組開始。這樣團隊就可以熟悉新的方法和工具,學習最佳實踐,並最佳化流程。
3. 身份驗證和安全的考慮
API 規範還可能包括有關身份驗證方法、授權和其他安全方面的資訊。這從一開始就確保了所開發應用程式的安全性,並有助於避免將來出現問題。
4. 團隊培訓與準備
過渡到新方法需要整個團隊的理解和支援。培訓團隊成員瞭解規範優先的基礎知識、其優勢和實施方法是成功採用的第一步。
一旦團隊在一個專案中成功採用了 規範優先原則,就可以將這種方法擴充套件到所有後續專案和團隊。隨著時間的推移,規範優先將成為企業文化的一部分,併成為組織內軟體開發的標準方法。過渡到規範優先可以最佳化團隊內部的流程,並有助於實現更高的質量標準和客戶滿意度。
希望我的分享可以幫助到你,也歡迎給我留言和我討論。
* 參考文章:Ilia Ivankin:Boosting Development Efficiency With the Specification-First Principle.