看板 Soft_Job 關於我們 聯絡資訊
程式的彈性, 執行時的效能, 開發的時間, 是很難兼顧的.. 雖然這三個項目, 往往在程式開發的過程中互有糾纏, 不能各自獨立考慮. 但若要硬切開 來說, 程式的彈性, 我覺得是花最少的力氣做到剛好就好了, 原因為何? 因為除非彈性就 是你軟體原本的賣點之一 (像是能加入plug-in), 否則彈性是效用不明的投資. 而且更多 的是, 隨著軟體發展, 原本預先考慮過的彈性設計, 後來也往往會成為需要被不斷更動的 部份. 最常有問題發生的就是所謂的彈性架構了. 這個架構的影響可能遍及軟體中的很多部份. 你在某種假設下, 設計或使用了某些framework, 心想只要大家都持續遵守它的某些規則 , 程式就可以運作得很好. 但意外的是, 新的不相容的需求出現 (這很常見), 只好建立 特例來處理它. 但隨著例外越來越多, 直至有一天你也許發現真相, "處理framework中的 特例, 比把所有的案例都當做特例處理, 還要麻煩", 但framework的影響力遍及整個軟體 , 要拿掉或修改都是麻煩的事, 此時, 你是要停損? 還是繼續賭下去? 在某些framework的社群裡, 有時你就看得出使用者受困的徵兆, 像是詢問如何用各種詭 異的方法去增加執行效能, 或發展出某些專屬於該framework的 "獨特學問", 例如厚厚的 使用手冊, 大量描述問題與解決問題的專有名詞. 再來是效能, 效能很重要 -- 這並不是說外觀, 功能上的設計就不重要, 但效能的比較, 是一個可以直接被量化的軟體優劣指標. 尤其是當你處在競爭之中, 消費者最愛比各種 benchmark了; 就算是沒有競爭的環境, 缺乏效能也會使得你變成一個可以被競爭的目標 . 雖然我覺得因為環境中缺乏競爭或是不值得競爭 (公司內部的系統, 客制化的軟體, 或 是市場的利潤太低), 所以效能的要求不常被提起, 但我覺得效能比彈性更值得, 也更容 易投資 -- 因為關於效能的改進, 通常只需專心於軟體中的少數部份. 而最重要的我覺得是開發時間, 而開發所花的時間長短, 通常都會與程式碼的長度, 程式 碼的複雜度正相關. 而且時間是最有用的資源. 你節省下來的時間, 將可以以別種方式再 利用. 你可以再去做新的軟體, 也可以再去榨乾效能與改出程式的彈性. ----- https://www.facebook.com/java.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.68.213
petershih67:認同~ 我也覺得為了彈性付出的時間,還不如先不彈性, 03/23 17:31
petershih67:等需求改變,再來改就好。實際的情況是,需求改不停。 03/23 17:32
petershih67:但是早期的彈性架構,也敵不過需求的改變,到頭來 03/23 17:32
petershih67:早期為了彈性投入的資源,很多時候都會被浪費掉. 03/23 17:33
bobju:是啊~這很務實,尤其浪費自己的時間那更痛. 03/23 18:11