精華區beta CSSE 關於我們 聯絡資訊
※ 引述《spanky (￾N￾N踢出去)》之銘言: : 前一陣子上課剛好在講軟工的東西 : 老師提到寫code時盡量遵守kiss原則 keep it simple and stupid : 而且因為我們不知道客戶明天的要求是否會改變 所以只要做符合今天需要的工作就好 : 後者我是很認同 可是前者卻使得我跟同學對寫code的觀念有不少的衝擊 : 因為我們一直覺得要寫出一個好的程式一定要有好的algorithm與data structure : (而且我一直有著code寫越短越強的迷思....) : 可是照kiss原則卻認為反正cpu夠快記憶體夠大 所以不必用到很難的algo : 盡量越簡單越直接越好 反正軟工就是為了讓多人編程時能夠順利有效率 : 可是若都照此原則的話 寫出來的軟體會好嗎??? : 還是因為在軟工的目標中產品的品質沒有製造產品效率那麼重要??? : 如果要同時兼顧此兩者是否有某些程度上的困難呢??? : 畢竟有好的algo和ds還是很重要的事情不是嗎??? 你老師所說的觀念,算是正確的,但也不盡正確。那畢竟只是一個 原則,就像小時候的簡單是非黑白觀念一樣,若真要講到精微處, 那就複雜得多。 這東西很難用很短篇幅來說明。我隨便寫點概念。 好的演算法很重要,但一個程式通常只會有一個核心演算法,甚至 沒有核心演算法,其他地方就不能搞得太複雜。 軟體品質跟生產力都很重要,但是品質必須放在客戶需要的地方, 那往往不是我們自以為是的產品效能。 軟體結構不能太緊實,必須保持一定的擴充和發展空間。因為軟體 需要不斷地更新和維護,伴隨著人類的文明一起成長,今天的完美 設計可能是明天無法維護的死結。 程式碼需要精簡,而且需要不斷精簡,但是更需要如何精簡的指導 思想與知識,軟體工程不是藝術創作。 軟體工程不是為了建造軟體工廠,不是讓軟體工程師變成裝配工人, 而是生產更好的軟體,促進世界的進步。讓眾人能夠群策群力,是 一個重要手段,而不是目的。 把軟體工程師當成軟體生產機器的異化概念一定要抵抗到底,那是 滲入軟體產業的惡質思想,很可能是電腦科學家對於軟體工程師的 偏見所形成的東西,而不是真正的軟體工程思想。 充份的訓練、學習和溝通,可以使得軟體團隊不斷地成長,而不是 一群只能做簡單愚笨事務的低階工人,軟體工程不是領導大量低階 程式工人的知識,不要把一些針對非專業程式設計者的入門規範, 視為金科玉律。 -- ※ 編輯: reader 來自: 61.222.173.29 (04/18 17:26)
spanky:謝謝 受教了!!! 140.113.93.175 04/18