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

發布 科技 2024-05-12
10個回答
  1. 匿名使用者2024-02-10

    下面是乙個示例。 假設在構建複雜系統時需要考慮 10 點。 由於人為的限制,你肯定會弄錯其中的6點,當然這6點不會影響第一版的發布。 那麼,如何糾正這6點呢?

    您無法重寫系統。 由於重寫系統,您也會錯 6 分,儘管它可能是不同的 6 分。

    你不能在新增系統函式時修復這 6 點,因為新增乙個函式會增加另外 5 個要考慮的點,例如,你會在這個過程中弄錯 3 點。

    當您不新增新功能並嘗試修復這 6 點中的乙個或多個時,該過程正在重構。

    重構並不能保證它不會破壞你得到的 4 點,但你至少可以確定錯誤是由你的重構引起的,而不是由於其他原因(例如在選項 2 中新增的新 5 點)。 它還鼓勵您嘗試只修復第三個選項中的乙個錯誤。

    即使你有無限的時間來重組,你也永遠不會得到正好的 10 分。 事實上,你的重構總是通過新增新功能來爭奪資源。

    由於第 5 點,除非需要新增新功能,否則不會無緣無故地重構。 但是,由於第 4 點,它不能與新增新功能同時完成。

    當人類文明的**積累到一定程度時,我們就不再需要寫新的**(或者只需要寫膠水**)。 當時的程式設計師被稱為考古程式設計師(因為他們總是在重構已經建立的東西)。 請參閱“深淵”。

  2. 匿名使用者2024-02-09

    重構不是完全的重塑,原始設計也不是一無是處的。

    軟體開發是乙個過程,軟體使用者的人和環境可能會在這個過程中發生變化,原設計中的一些假設和條件也會發生變化,需要根據新的情況進行調整。 重構是關卡的重新設計,軟體的實現,設計被調整,當然也必須調整。

    重建也是對原有的改進,消除了第一台的腐臭味,使第一台更堅固、更高效、更易於維護。 這是由軟體開發的規律決定的,沒有人能在第一時間寫出乙個完美的**。

  3. 匿名使用者2024-02-08

    重構對於改善專案結構是必要的。 重構通常是對已經寫好的專案的改進,這個過程不修改bug,不新增新功能,但可以提高可重用性、擴充套件性,使**更具可讀性。

    也就是說,重構是沒有必要的。 而且重構的成本也比較大,一般的過程也比較長。

  4. 匿名使用者2024-02-07

    我的回答可能與重構無關,但我個人在程式開發方面同意的兩個準則是“迭代”+“乾燥”。從這兩個標準出發,重構就是通過乙個連續的迭代過程來調整程式的結構,消除**和重複的自己。

  5. 匿名使用者2024-02-06

    1.需要重構,看著一大堆重複的**,不雅的設計等等,我真的很想改變他,怕不好意思留下來。

    2.願意重構,重構需要投入時間和精力,這需要我們的決心。

    PS:最近的乙個專案就是這種情況,這也是我做的第乙個專案,非常糾結。

  6. 匿名使用者2024-02-05

    房子亂七八糟的時候需要打掃,有更多的檔案需要整理,更多的功能需要重建。

  7. 匿名使用者2024-02-04

    這個概念在物件導向的程式語言中很常見,很容易混淆。 一般來說,換一種說法就更容易理解了。 重構可以說是疊加,疊加這個詞更清楚。

    繼承的物件導向特性之一是重構。

    重構是對繼承自父方法的子類的重寫,具有相同的方法名稱和引數,即相同的宣告,但實現不一致或完全不同。 這樣一來,如果你對物件導向有深刻的理解,很明顯重構是物件導向程式設計的一大特點。

    例如:公共類 A

    公共類 B 擴充套件 A}從上面兩個類的print方法可以看出,該方法的宣告和引數完全相同,但實現不一致,這意味著B類的print方法重構了A類的print方法。

  8. 匿名使用者2024-02-03

    指在不影響輸出的情況下為提高可讀性或簡化結構而對軟體**所做的任何更改。

    軟體重構是在工具的幫助下完成的,這些工具可以修改對該工具的所有引用。 在極限程式設計的方法論中,重構需要單元測試來支援。

    在軟體工程中,術語重構通常是指在不改變外部行為的情況下修改原始碼,有時非正式地稱為“清理”。

    在極限程式設計或其他敏捷方法中,重構通常是軟體開發周期的一部分:開發人員輪流新增新的測試和功能,並重構**以提高內部的清晰度和一致性。 自動化單元測試可確保重構不會阻止 ** 工作。

  9. 匿名使用者2024-02-02

    重構的定義。

    重構(名詞):對軟體內部結構的修改,目的是不改變"軟體的可觀察行為"在提高其可理解性的前提下,降低其修改成本。

    重建(動詞):使用一系列不改變的重組標準(技術)"軟體的可觀察行為"前提,調整其結構。

    這兩個定義都強調它沒有改變"軟體的外部行為"在前提下,它不變"軟體的可觀察行為"這意味著這些變化不會影響程式(程式設計師)的外部使用,並且在外部,程式的行為和結果沒有變化。 重構只是對程式內部結構的調整,使其更易於理解,然後更易於維護。

  10. 匿名使用者2024-02-01

    因為軟體開發的本質就是解決問題,而且無論如何,至少在你開始工作之前,至少要充分了解這些問題,事實上,無論你設計得多麼精緻優雅,要解決的問題都會時不時地發生變化,最終有人(甚至你自己)會強迫你服從時間表, 而當你碰巧把這塊拼湊起來的東西弄得好像可以跑的時候,老闆就迫不及待地把它拿給客戶了,這時候,從乙個有清潔習慣的優雅程式設計師的角度來看,無論如何,你都要重新重構它,但這個時候,沒有人會允許你這樣做, 所以你不停地哭,你病得很重,你臥床不起,所以你不再說話和微笑。

相關回答
13個回答2024-05-12

學習軟體開發需要大量處理數學和英語,因此您需要有一定的數學和英語基礎。 有了這個基礎,您可以事半功倍。 當然,對數學和英語的要求並沒有想象的那麼高。

30個回答2024-05-12

計算機軟體開發,最基礎的是與計算機相關的數學:簡單邏輯、布林代數(幾乎所有的計算機知識都與它們統一)、集合論、圖論、矩陣(程式設計中的很多演算法設計都依賴於它們),但這些知識都很枯燥,最好看看數學史、數學思想的書, 這對於重新整理解決問題的能力、資料結構相關知識非常有幫助(程式設計資料結構設計的另乙個方面,由此產生的物件導向的思維方式被大肆炒作);作為程式設計師,最好是學習C語言,以及組合語言,如果你能掌握這兩種語言,你幾乎在所有層次上都有計算機知識,組合語言是你處理硬體的必備條件,如果你想真正了解什麼是語言,最好看看語言學的知識, 以及與之相關的思想,要學好計算機語言,一定要熟悉編譯原理,而從編譯原理中可以學到很多編譯思想和方法,以及計算機相關誕生思想的歷史,所以強烈建議閱讀編譯原理;在那之後,硬體的知識,我認為是對數學思想應用的最好肯定,以及計算機體系結構的發展歷史,我個人覺得硬體的知識需要被理解; 如果你確實有很好的程式設計能力,就可以對C語言、組合語言有很好的掌握,然後你就可以學習一些方面的網路協議知識,那就是你可以感覺到你的思維已經完全結構化了,解決問題會非常得心應手,而且你的邏輯思維已經非常容易了, 關鍵是要總結出一套解決實際問題的方法。

5個回答2024-05-12

長沙有一所華瑞學校,專門研究軟體,我從那所學校畢業,現在工資還不錯,有1萬多塊錢。

3個回答2024-05-12

在開發直播軟體時,必須注意這三個方面:穩定性、低延遲和高併發性。 這三個問題直接影響直播過程中的體驗,因此很重要。 >>>More

12個回答2024-05-12

設計方案的失敗將導致整個系統的故障,最終導致一切的損失。 >>>More