回覆列表
  • 1 # 小陳說遊

    不知道題主工作幾年了,我也才幹這一行將近倆年,就我個人的認知來看,演算法在前期是比較重要的。因為前期工作大多是完成業務需求,著重解決問題的高效和有效性。

  • 2 # 煙花時光

    關注極迭代,和小夥伴一起看↗↗↗

    對於程式設計師而言,兩者都很重要,但兩者的側重各有不同

    演算法是為了解決某個具體的問題。

    設計模式是為了最佳化系統的程式碼結構,使待設計的系統可維護性、可擴充套件性變得更好。

    瞭解了這一點,我們就知道,如果只注重演算法的話,即使程式設計師能夠做出很強的功能,也會由於它的可擴充套件性較差而變得非常難以維護。

    而同樣反之,如果程式設計師只是用設計模式,那麼也會發現很多時候能夠開發出一個結構優良的系統,但是因為某一些具體演算法無法突破,而無法得到想要的效果。

    打基礎的階段可以從演算法開始,更能夠容易理解機器是如何進行計算的,建立程式思維。

    對於企業而言,設計模式往往比演算法更重要

    這是因為,企業開發是一種團隊型的活動,往往需要花費很長的時間,甚至數年,才能夠得到一個完整和適用的系統,那麼如果一個系統沒有經過良好的設計,想要進行維護都是非常困難的,甚至不得不推倒重來。

    而對於某一些專項的演算法,是可以透過技術攻關或者第三方的,諮詢服務,來獲得解決的,

    對於程式設計的小夥伴而言,如果你寫出的程式碼經常會被別人批評,其他人想要修改你的功能都抱怨無比,那麼大家心裡面可能也會覺得不好受。

    設計模式

    在Java中,一共總結了常用的23種設計模式,這些經典的設計模式都是值得仔細閱讀和深入揣摩的。

    設計模式的精髓就在於面向物件和抽象,對於介面和抽象類的理解,就變得尤為重要,很多初學者,覺得設計模式很難,就是因為基礎的封裝和解耦合概念不是特別清晰。

    在設計模式中,代理模式與策略模式,這兩個尤為重要,很多其他模式都是這兩個模式的變形。

    演算法

    演算法往往和資料結構是相關的,好的演算法並不在於用到了什麼樣酷炫的語言特性,或者程式碼一定極短。 能夠用最小的時間,或者最少的空間花費,來解決某一個具體的問題,就是好的演算法。

    演算法也是需要進行不斷的最佳化的,對演算法不斷的迭代,就能夠大幅度的減少機器的計算時間和儲存消費的資源,就能夠在有限的資源下提供更多的更強的服務。

    平衡

    過度的設計與過度的最佳化演算法都是不可取的,因為系統往往是有交付時限的,而且人力資源有限,我們需要根據實際的業務和系統真實情況進行平衡。

    一般而言,系統設計和演算法能夠預估滿足五年左右的需求增長即可。一個普通系統的生命週期往往在三到五年左右,超過這一時間會由於新的業務需求或新技術的提出,而有升級換代的需要。

  • 3 # IT人劉俊明

    要明確設計模式和演算法哪個更重要,首先要清楚設計模式和演算法的作用,對程式設計師來說設計模式和演算法都是一定要掌握的內容。下面就給大家介紹一下設計模式和演算法的由來以及應用價值,主要從應用的角度出發(非學術角度)。

    設計模式

    設計模式這個概念最早是由建築設計領域的著名大師克里斯托弗.亞歷山大在上世紀70年代提出的,其目的是總結現存成功建築物的特點,為年輕的建築師提供快速成長的途徑。在上世紀90年代設計模式被GOF(一個小組織)引入到軟體工程領域,並隨後得到廣泛的關注和使用。

    簡答的說設計模式是經典解決方案,是很多工程師經驗的總結,是實戰論。設計模式不是新方案,但一定是可靠的解決方案,是從實踐中總結出來的經典方案。所以,作為年輕的程式設計師,一定要認真學習設計模式,設計模式提供了一個快速成長的途徑。對經驗豐富的程式設計師來說,各種模式已經使用的很熟練了,並不需要強調模式的作用和價值了。

    軟體設計模式分為三個大的型別共23種,有建立型模式、結構型模式和行為型模式,每個大的型別下面又細分成不同的具體型別(關於設計模式的細節可以參考我後面的文章)。

    演算法

    簡答的說演算法就是解決問題的方法。軟體設計的核心問題就是演算法,所以對程式設計師來說掌握演算法就是掌握了問題的解決辦法。通常解決問題的第一步就是進行演算法設計,只有確定了演算法才能進行程式設計,程式設計就是實現演算法的過程。

    通常演算法有五個特徵,分別是有窮性、確切性、輸入項、輸出項、可行性,而評價一個演算法主要從時間複雜度和空間複雜度兩方面來考慮。

    無論是做人工智慧、大資料、雲計算還是區塊鏈,演算法都是核心。所以對程式設計師來說掌握演算法的實現是非常重要的,各種演算法的學習也是一名程式設計師的必經之路。

    重要程度按階段劃分

    設計模式和演算法都非常重要,在程式設計師的初期階段,演算法要比較重要,因為了解演算法才能實現演算法進而完成功能實現。

    在程式設計師中期模式比較重要,因為模式關乎專案整體的穩定性和可用性。

  • 中秋節和大豐收的關聯?
  • 王者榮耀戰士坦克買哪幾個英雄好?