隱性成本:程式碼質量與產品迭代的關係

凌霄光發表於2018-11-15

看待程式碼的兩個角度

產品從需求到上線,需要經歷開發、測試等階段,對產品的想象和規劃最終會落實成程式碼,之後的迭代也是在之前程式碼的基礎上迭代。看待程式碼除了從使用者使用產品的角度外,還有另一個角度,開發者的角度。

隱性成本:程式碼質量與產品迭代的關係

如圖,使用者感知到的是產品的功能、使用的體驗、產品的效能等,而開發感知到的是程式碼的可讀性、可維護性、可擴充套件性這些。

產品迭代與程式碼質量

網際網路時代的競爭從最初的爭奪流量到現在的精細化運營,人口紅利過後,對產品本身的優化變得至關重要。這和我們產品的發展一樣,從最初的從0到1,實現產品基本功能,去搶佔市場,到之後的不斷優化產品、持續迭代。從使用者角度感知到的是產品功能越來越完善、體驗越來越好,流暢度也越來越高,而從開發角度就是程式碼的不斷迭代。

隨著產品的發展,程式碼本身需要不斷的迭代,新增功能或者對之前功能的優化,這些都是基於之前程式碼的,所以迭代成本與程式碼質量關係很大。因此,我們會對程式碼制定一些規範、設計更鬆散耦合、易於擴充套件的架構。如果對程式碼質量沒要求的話,就如同負重前行,難維護的程式碼越積越多,最終會導致需要整個的推倒重寫。

預見到將來的問題,為了避免後期的不必要的重構、重寫,在產品的初期、前期,在問題沒那麼尖銳、包袱沒那麼重的時候就要開始防患於未然了。雖然我們現在處在產品的基礎版本實現的階段,業務是最最重要的,但是分一些精力去保證程式碼質量也是有意義的。

對程式碼質量要求高低與產品是不是需要長期迭代有關係。很多sass類產品的公司都會有code reivew環節,技術方案的評審也會比較嚴格,因為產品需要不斷迭代,程式碼也就需要長期維護,程式碼質量對效率有著很大影響。而一些外包公司,因為程式碼是一次性的開發,不需要後期維護,質量怎麼也就不回去關心了,我們開發的一些活動頁也是一樣。

隱性成本:程式碼質量與產品迭代的關係

總結

產品的實現需要落實成程式碼,產品功能完善的過程也就是程式碼不斷迭代的過程。

看待程式碼可以從使用者角度和開發者角度。使用者角度關心的是產品的功能、體驗、執行的效能等,而從開發者角度則更加關注程式碼本身,包括程式碼的可讀性、可維護性、可擴充套件性等,具體一點就是程式碼的冗餘率、程式碼組織結構、命名規範、模組耦合度等。

隨著產品的不斷迭代,程式碼質量會變得越重要,如果開始架構有問題或者程式碼的實現上有問題,會給之後的迭代埋下隱患,最終可能導致需要重構或重寫。為了避免之後的問題,在開發的初期,除了快速的實現產品功能外,也要對程式碼本身投入一些精力。當然,不同的產品對程式碼質量的要求也不一樣,不需要迭代的程式碼,問題沒那麼突出。

我們的產品是需要不斷迭代的,雖然我們還在產品的初期,業務是最主要的組動力,但對程式碼本身的優化也是要投入一些精力的。

相關文章