TDD is dead, again
發表于:2017-03-06來源:知乎作者:陶文點擊數:
標簽:tdd
以下通篇為無腦神論,沒有半點事實支撐。以互聯網服務為代表的后臺軟件開發有了巨大的變化。傳統的軟件開發的理論已經越來越無法適應新常態的需求了。比如以下幾點
以下通篇為無腦神論,沒有半點事實支撐。
以互聯網服務為代表的后臺軟件開發有了巨大的變化。傳統的軟件開發的理論已經越來越無法適應新常態的需求了。比如以下幾點
-
系統的微服務拆分,大量地使用 RPC 組織業務邏輯。一個節點自身的邏輯越來越少,給一線工程師的自由度也越來越少
-
快速迭代。一天數次上線。嚴重依賴小流量和在線特性開關的形式來做質量的校驗。
-
線下測試的成本越來越高,迭代速度快,線下搭環境都跟不上。
同時相配套的設施也在跟上
-
機器越來越便宜。性能優化對于普通的業務系統來說微不足道(除非你的業務是安全或者CDN這些)。
-
大量的代理被廣泛使用,從nginx到haproxy,從mysql代理到codis
-
Dapper 的論文,導致各家都在實現在線的rpc日志,搜集與存儲
-
影子表等技術使得在線壓測成為可能
一個總體的形勢是,線下的驗證已經被在線驗證全面壓制了。各個大廠都在在線監控與質量驗證方面投入巨大。線下測試通過了不說明任何問題,只有在線上跑過了,才算是久經考驗的。在線上的基礎設施可以保證
-
問題被及時發現,通過監控
-
問題被及時定位,通過日志
-
問題被及時控制,通過切流量
以前經常嘲笑的一個做法是“在線修改PHP文件”。但是現在越來越發現,在線改PHP文件是獲得反饋地最有效的方式。因為線下沒有真實的流量,沒有真實的環境,沒法低成本地復制一套出來。
但是目前的基礎設施還有三個問題沒有解決:
原文轉自:https://zhuanlan.zhihu.com/p/25518867