為什麼軟體開發需要重構?

時間 2021-05-08 00:57:03

1樓:李超利

其實最核心的一點是「現在的邏輯不能有效快速的支撐未來的邏輯」,我們要在何時的階段去小步迭代去補這個「技術負債」。

在系統開發之初,系統用例比較少,軟體的領域模型相對比較簡單,但是隨著系統用例的不斷增多,發現領域模型不能有效的支撐,隨即開發人員用錯誤的系統模型不斷的增加各種判定路由、標記儲存等去解決需求問題,最終導致軟體邏輯裡存在各種奇怪的特殊邏輯。這個過程有開發人員對軟體理解不到位快速支撐需求的原因,也有本身為了方便並不想理解所有邏輯只是為了滿足當前需求的邏輯等因素,導致軟體邏輯越來越多複雜,以後修改乙個點,可能需要對真個系統進行測試回歸,甚至需要回歸上下游依賴的系統,這也就增大了業務創新的成本了,這就是本質上的「技術負債」,也是我們軟體開發過程中重構的技術驅動力。

2樓:張偶

《禪與電單車維修藝術》一書中說:

每一部電單車都有屬於它自己的聲音和節奏,都有它自己的個性,培養車子的個性正是維修保養的真正目的。

你的程式也像一輛電單車,它也有自己的個性,它正是靠持續重構培養出來的。

3樓:李遙

你回憶一下自己,當對母語的掌握程度逐漸熟練以後、當自己的詞彙量逐漸增大以後、當對社會的理解加深以後,你會發現小時候說的話的思想很淺薄、表述水平又很低。只要有機會,你很願意重新說一遍

乙個人需要20年才能極其熟練地掌握自己的母語和(大致)理解社會;乙個程式設計師最起碼也要20年才能走完對應的道路

4樓:量化之王

在專案進入迭代早期,為了快速滿足專案功能上的需求,在專案的擴充套件性,可維護性上會有折扣。

所以到了閉環內,需求相對固化的階段,重構是在保證業務功能不變的情況下,進行可維護性,擴充套件性,健壯性的開發行為。

5樓:用心閣

什麼是重構呢?重構就是以一種可控的方式,一小步一小步地調整當前的設計。 重構的原因在於在現有的設計中已經無法優雅地實現新增的需求。

原先的設計是建立在對問題空間的認識上,隨著時間的推移,對問題的認識就會產生變化,原有的設計就要進行修改。認識的改變在於:

人對問題的理解總是由零碎,片面、表面、粗略到整體,全面,深刻,精準的。

現實世界的問題本身也在無時無刻地變化中。

作為一種修改設計的方法,重構是建立在物件導向程式設計,單元測試和重構方法的基礎上的。單元測試保障了每一小步的修改都能夠通過單元測試進行驗證,不影響系統原有的功能。

重構方法,包括抽取方法, 將屬性或方法上移至父類,或下移至子類,抽取介面,引入中間人,引入引數物件等等。

重構,而不是重寫,降低了對設計進行修改的風險,也就降低了設計階段產生的缺陷的修改成本,也就減少了過度設計的產生。

6樓:Levski

個人比較同意@馮東和 @李申申的回覆,補充一下,我認為,重構這種事情對於還有生命價值的軟體而言,就是必需的。這一點我覺得可以模擬人類和任何一種有生命的動物。

任何一種生物都不是完美的,但它(他、她)卻可以在一定程度上適應環境的需求,但是適應的並不完美。所以才需要重構這種不斷地「新陳代謝」和「進化」,保持這個物種在大自然中的競爭力。也只有被淘汰的物種才不需要新陳代謝和進化。

具體的重構的要素,其實軟體工程之類的書籍中都有談到了,上面的同學也談到了很多,這裡就不重複了。

做軟體開發需要注意什麼?

專業軟體定製開發 重要是需求和設計!很多系統都是由於需求不明確,設計不規範導致系統不能用不好用。設計包含資料庫設計系統架構設計介面操作設計 第二個最重要是開發規範很多不規範導致維護成本劇烈增加幾何倍數曾加。 匠達軟體 你是想找軟體公司給你開發軟體?還是你是軟體開發人員?無論哪種,這個問題都太大了。你...

學軟體開發需要買哪種電腦?

stevewong 個人覺得mac做開發會好很多,特別方便,順手。但是如果你做windows開發的話就不好了。而且用mac有個問題就是提供mac工作的公司沒那麼多,比較痛苦。 Hao liu 給你乙個需要關注的配置點吧。1 要有ssd。不太建議買了自己加ssd。畢竟私自拆機可能影響保修。機械硬碟效能...

軟體開發專案經驗??

Bingo 瀉藥。個人經驗是 興趣驅動。講道理我這種雖然是渣科班出身的,最後到了面試的時候派上用場的專案經歷都是自己瞎逼重新寫輪子整點興趣愛好弄的。題主雖然是非計算機專業,應該是想要長遠走下去吧。如果是我,我會選擇從基礎開始,找到乙個喜歡的方向,然後重新造幾個輪子 一句話總結就是 得耐得住寂寞。培訓...