Re: [閒聊] Your Code Sucks
※ 引述《iman00b (I'm a n00b)》之銘言:
:
: 所以,每當聽到有人看著別人的代碼說很爛時,我只會微微一笑,讓我想起我當年的天真
: 和盲目自信。的確,我以前堅信自己是個出色的開發人員,堅信知道每種算法的最優設計
: 。我很想念當時的自大,但是我很高興現在學到的這些理念,我知道,我唯一能鄙視的代
: 碼只能是我自己的代碼,鄙視的原因就是我不能使它變的更好。
: --
: → viper9709:推~~原本的人會那樣寫一定有它的理由~~ 08/23 23:22
老實說,這一篇我只有一半同意而已。
因為現實中的狀況,可能是寫出你手上這個程式的人,根本對程式設計、資料結構連最
基本的概念都沒有,然後第二手維護的人其實也不懂,到了你是第三手的時候,你發現
這程式真是他X的一整個莫名其妙。
舉例來說,當我看到我接手維護的 Java 程式出現了以下的狀況時,我實在找不到任何
『理由』來說服我自己這是合理的。
什麼狀況?!狀況一:
public class CommonUtils {
public void println(String s) { System.out.println(s); }
}
public class XXX extends CommonUtils { // ... }
public class XXX extends CommonUtils { // ... }
是的,所有的類別都繼承了這個 CommonUtils,我真的不知道有什麼『理由』可以
說服我這樣做是『合理』的,唯一的解釋就是原本寫的人想偷懶,而且根本連最基
本的物件導向概念都沒有,就跑來寫 Java 程式了。
你說啊可能他對剛出來的 Java 還有新興的物件導向理論不熟啊(畢竟這個程式是
從 Java 1.4 時開始出現),但要來寫程式總得對基本的資料結構和其特性有些概
念吧?
我們的程式是做資料轉換的,所以經常會有批次處理的需求,而批次處理的時候,
需要給定兩個參數,一個是要匯入的 ID,一個是匯入的檔案來源目錄。
問題來了……請問,你要怎麼存這個批次處理的 (id, 來源目錄) 的列表?
答:LinkedHashMap<String, String>!!
靠!這不是擺明了你連 HashTable/HashMap 的概念是什麼都不曉得嗎?也就是說,
這隻程式在做批次處理的時候,你沒辦法連續匯入來自兩批不同的檔案到同一個
ID 中……你有看過只能處理一份資料的批次處理嗎……?!orz...OB
我唯一能想到的『理由』就是,他根本不知道 HashMap 是啥,只是看到這個東西
能夠存 key/value pair,不用自己刻一個就拿來用了,卻根本沒想過這東西本質
上就不適合拿來處理批次處理這樣的事情。
沒錯……原本的人會那要寫一定有他的理由,不過前提是原本的人是真的會寫程
式啊!>_<
--
~ 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走,
'v' Brian Hsu 但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚……
// \\ ( 墳 墓 )
/( )\ 但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】
^`~'^
http://bone.twbbs.org.tw/blog 『那都是很好很好的,可我偏不喜歡。』
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.19.6
推
08/24 09:55, , 1F
08/24 09:55, 1F
→
08/24 10:43, , 2F
08/24 10:43, 2F
→
08/24 11:22, , 3F
08/24 11:22, 3F
→
08/24 11:23, , 4F
08/24 11:23, 4F
→
08/24 11:24, , 5F
08/24 11:24, 5F
推
08/24 13:02, , 6F
08/24 13:02, 6F
→
08/24 13:03, , 7F
08/24 13:03, 7F
→
08/24 13:03, , 8F
08/24 13:03, 8F
→
08/24 14:12, , 9F
08/24 14:12, 9F
→
08/24 14:12, , 10F
08/24 14:12, 10F
→
08/24 15:06, , 11F
08/24 15:06, 11F
→
08/24 15:08, , 12F
08/24 15:08, 12F
→
08/24 15:09, , 13F
08/24 15:09, 13F
→
08/24 15:10, , 14F
08/24 15:10, 14F
推
08/24 19:27, , 15F
08/24 19:27, 15F
→
08/24 19:28, , 16F
08/24 19:28, 16F
推
08/25 00:19, , 17F
08/25 00:19, 17F
→
08/25 00:20, , 18F
08/25 00:20, 18F
→
08/25 00:21, , 19F
08/25 00:21, 19F
→
08/25 00:21, , 20F
08/25 00:21, 20F
推
08/25 00:43, , 21F
08/25 00:43, 21F
推
08/25 02:04, , 22F
08/25 02:04, 22F
→
08/25 02:06, , 23F
08/25 02:06, 23F
→
08/25 13:24, , 24F
08/25 13:24, 24F
→
08/25 17:34, , 25F
08/25 17:34, 25F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):