精華區beta CSSE 關於我們 聯絡資訊
※ 引述《micklin (mick)》之銘言: : 在硬體越來越發達的情況下, 假設先不考慮最慢的儲存媒體IO, : 一個程式所需要的運算時間將會隨之減少, : 這樣會不會造成對演算法與資料結構的衝擊呢? : 平時在寫程式時總會先考量儘量好的資料結構, 再用儘量好的演算法來達到目標, : 如果最後程式執行所需要的時間和無架構的程式比起來, 差距只在一秒以內, ^^^^^^^^^^^^------------ : 那麼還需要去計較演算法嗎? 還是以儘快完成project為優先呢? 看你所謂的「最後程式執行」是什麼而定: - 什麼時候會去執行這程式呢?一個月以內?半年後?一年後是不是還會在用它? - 預計的資料量有多大?幾個月之後會不會有大幅增加的可能? - 會在什麼地方執行?小實驗室跑跑數據就好了呢?還是對外上線服役之用? 如果在你可預見的未來, 這程式不需要那麼高效、對資源不需那麼斤斤計較, 我倒覺得可以先著重在正確性(多做點 unit testing), 再著重於軟體架構, 最後再著重於最佳的資料結構及演算法。 畢竟只要 unit testing 骨架好, 即使事後調整軟體架構, 也不會讓系統垮掉; 只要把軟體架構弄好, 即使事後調整資料結構及演算法, 也不會讓系統垮掉。 : 在現實面上, 身為一個老闆當然會希望能儘快拿到成果, : 但身為一個寫程式的工友, 漂亮的解決問題才是我想要的。 : 如果花兩天弄出來的程式, 跟一天就弄的出來的程式在時間上差不多, : 那版友會選那一種呢? : 而這樣會不會讓人失去對演算法與資結的信心呢? 你該學習 prioritize 你的工作項目。 某些時候, 盡快把無趣的工作交差, 反而可騰出更多時間投入在更值得你錙銖必較的地方。 當然啦, 如果你是完美主義者, 眼裡容不下一絲一毫的醜陋, 那就當我沒說。 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: billyeh 來自: 140.113.23.102 (09/04 16:32)