開發速度和程式碼質量 你的選擇是?
不得不承認,現在幾乎每個軟體開發專案都會不可避免地都會出現一個問題,那就是關於開發速度與程式碼質量該如何抉擇。忽略一些細枝末節、偷工減料毫無疑問能讓我們的專案進展地更快,所需時間更短。
關於這個話題,幾年來一直反反覆覆糾結在我的腦海裡,我開始漸漸發現這個論題本身就是一個既危險又錯誤的悖論。也許重新規劃這個論題能幫助我們達到一個共贏的局面:做出更好的產品、成就更優秀更有衝刺力的團隊。
當我們談及產品質量的時候,往往包含測試覆蓋率、變數命名法、程式碼格式化、元件化、介面設計、bug情況、邏輯錯誤等眾多指標。甚至有的時候,擴充套件能力、優化演算法複雜度、服務延時、類庫推廣以及產品功能完整性方面也在考慮之中。
為了使討論更明確,區分不同的類別,我更喜歡將第一類的產品質量稱為“程式碼質量”,而稱第二類為“執行質量”或“深度”:執行的深度、完成的深度。
偷工減料的程式碼質量可能短期內會有立竿見影的成效與收益,但是這只是水中月鏡中花,在不久的將來需要我們連本帶利地償還:花大量的時間重構、花大量的時間修復bug、花大量的時間搞清楚究竟該如何才能使程式運作起來。因此,為了開發速度而犧牲程式碼質量其實就是作繭自縛,時間一到它就會像“高利貸“一樣,利滾利地讓你付出更高的、甚至是高不可攀的代價:不得不推遲其他的工作、苦不堪言、悔不當初。
良好的程式碼質量其實能讓我們的程式跑得更快。保持一致的風格和帶點提示的命名法能幫助其他人——還有將來的你——理解程式碼;乾淨又周密的介面能讓我們即使卸下或者更換整個元件,也不需要重新檢查程式碼庫的角角落落;良好的測試覆蓋率能讓我們在做改動時更有信心、能減少bug的數量、能使得QA時間最少化。
隨著時代的發展,現在的實施深度已經演變成另外一個問題。如今有很多方法可以在不降低產品整體質量的同時簡化開發。
專案實施本身並不需要是非常完美的,一開始我們只要保證功能具備即可。而在之後的某個階段,我們可以再慢慢改善或者完全用新的內容取而代之。
例如,在一個新的app裡,其RPC層起初可能只是簡單地做了一個HTTP類庫。這樣我們就可以把省下來的時間用到迭代應用層,以及那些還不夠精緻需要再接再厲的內容上。然後在未來的某個時間點——也有可能是當我們正準備釋出的那一瞬間——突然覺得這些個RPC層需要更為迷人;或者是應該新增重試邏輯、異常處理、安全功能甚至是改變傳輸協議,沒錯,即便是在這樣的情況下去完善RPC層也完全ok。
在建設專案時,我們常常會歷盡千辛萬苦、嘔心瀝血、廢寢忘食,不斷地經歷開發、重新開發、刪除功能這個迴圈,最終導致大約6萬行程式碼胎死腹中,不出現在預覽版上。
如果我們忽視程式碼質量,後期要想維護和擴充套件就會困難重重,並且產生大量的冗餘程式碼。如果我們不能針對性地進行優化,事半功倍做出來的成果最終也跳脫不了記載於Git日誌裡而被靜靜遺忘在角落裡的命運。
事實上,現如今我們不但有能力給一些多餘內容減肥,迅速給產品瘦身,還能在大多數情況下依舊保持其成為迭代和實驗的良好基礎。
所以,要是下次有人再問你,“如果不關注程式碼的質量,能不能工作得更快?”的時候,理直氣壯氣地告訴他,“你問了一個愚蠢的問題!”
英文原文:Velocity vs. Quality 翻譯:html5tricks – 蔣麗麗
相關文章
- 開發速度和程式碼質量,你的選擇是?
- 程式設計師:選擇效率,還是選擇質量?程式設計師
- Java程式碼質量改進之:同步物件的選擇Java物件
- 專案開發中質量和速度哪個更重要?
- 程式碼質量(權威精選植根於開發實踐的最佳讀物)
- 如何做好質量管理、提高研發的程式碼質量?
- 資質平平的你為什麼不選擇小程式代理?
- 小程式開發選擇公司等於選擇人
- 低程式碼應用程式開發平臺的5種選擇
- 程式碼質量-開閉原則
- 企業如何選擇開源的零程式碼開發平臺
- 如何選擇適合你的程式碼風格?
- 低程式碼&無程式碼,你知道該怎麼區分和選擇嗎?
- 資料更多更好還是質量更高更好?這項研究能幫你做出選擇
- 企業如何選擇低程式碼開發平臺
- iOS 開發選擇OC還是Swift?iOSSwift
- 開發該選擇Blocks還是DelegatesBloC
- 如何挑選擇合適的低程式碼開發平臺
- 掌握這些程式碼安全檢視方法,提升你的程式碼質量
- 如何選擇高質量的物聯網網路卡
- 開發高質量的java程式碼;實現完美的人生Java
- 選擇代理IP,穩定時間和響應速度是關鍵
- 面對國內的低程式碼開發平臺,開發人員和企業該如何選擇?
- Quora 是如何做到高質量的快速開發的?
- JavaScript 最佳實踐:幫你提升程式碼質量JavaScript
- 修改IP地址選擇高質量IP波段選用技巧!
- PMD外掛:你必須掌握的程式碼質量工具!
- 選擇低程式碼開發平臺的五大要求
- 提高java和mysql程式碼效能和質量薦JavaMySql
- 如何利用大模型提升前端研發效率和程式碼質量大模型前端
- 選擇軟體開發平臺,“快速開發”是關鍵
- 程式碼的清晰和簡潔之間的選擇
- 外鏈指向域名選擇技巧:選擇高質量域名,增強外鏈效果
- OCLint 實現 Code Review - 給你的程式碼提提質量View
- 敏捷開發下平衡質量和進度敏捷
- 10 個有關程式碼審查和程式碼質量的事實
- 選擇低程式碼應用程式開發框架的5個關鍵標準框架
- 程式碼質量隨想錄(一)可讀是王道