YAGNI = you aren't going to need it! or You Ain’t Gonna Need It。測試
基本上這個問題原由於重構須要耗費時間卻沒有增長新的功能。而YAGNI的觀點是你應該爲了眼前的須要作設計而不是將來,這樣算是相互抵觸嗎?spa
YAGNI的觀點是不要加入一些現階段不須要的複雜性,這也是簡單設計這條實踐的部分精神。重構能夠保證你的設計儘量的簡單,因此當你以爲可讓系統變得更簡單的時候,就進行重構。設計
簡單設計這條實踐不單單是XP利用實踐並且也是XP啓動實踐。只有基於測試、持續集成和重構纔能有效的保證簡單設計。而同時,簡單設計又對於保持變動曲線平緩很是重要。任何沒必要要的複雜性都會讓系統變得難於調整,除非這個調整正是你加入複雜性所預料的調整。不過,人們一般不善於預料將來,因此最好仍是努力地保持簡單性。一樣,人們也不太可能第一次就能作到最簡單,所以你須要重構來幫助你更接近這個目標。it
所以相對來講只有重構纔是真正的YAGNI。持續集成