zonble’s promptbook 我是全宇宙底Enerrgy底總量

2007 年 5 月 20 日

無以名狀 新同事

歌詞來自:

該怎麼形容 Jeff Hung 的這篇〈新同事〉呢?光是看到文字,就讓人感受到澎湃的音符在螢幕上躍動。你感受到的是來自於生活中的真實情感,毫不矯飾也毫不做作地宣洩而出…所以配上音樂,是一定要的。

下載(MP3格式,約4MB)

新同事

喔耶,爆炸吧~爆炸吧!

愛用 .lib 嘛… 爆炸吧!
愛亂用 global variable 嘛… 爆炸吧!
愛亂 call function 嘛… 爆炸吧!
愛 copy & paste 嘛… 爆炸吧!

喔耶,我聽到 windiff 了,爆炸吧!爆炸吧~~~

(在 VC6 裡,做 .lib 時,是不會檢查 dependency 的。也就是說,如果你呼叫了另外一個 .lib 的 function,只有 compiler 會檢查該 function 有否宣告過,linker 不會檢查該 symbol 是否存在。因此,如果 include path 有設,header 也有 #include,就不會顯示任何錯誤。必須要等到用該 .lib 的人,在做 .exe 或 .dll 時,才會產生 missing symbol 的錯誤。

另外,.lib 相當於是把所有 function 都赤裸裸地開放出來,這樣就沒有所謂的「模組介面」,因此很容易就會亂呼叫 function,而沒有注意到,呼叫了不應有相依關係的 component 裡的函式。又由於前述不會有 missing symbol 錯誤的關係,而無法察覺這樣的錯誤,因而導致最終程式的 dependency 關係會一團亂。

亂 call function,除了上面「呼叫了不應有相依關係的 component 裡的函式」的狀況之外,還包含了「喜歡自行在 .c/.cpp 檔前面,重複宣告函式,而不是用 #include 將對應的 header 引入」。 這會造成當所依存的 component 更新,prototype 改變時,會無法於 compile-time 察覺,若僅 prototype 改變,function name 不變的話,甚至連 link-time 也不會產生 error,假使 test-time 還是無法測到這個問題,那就等著在客戶那邊爆炸。)

文章分類: — zonble @ 5:03 pm #

6 項留言回應 »

  1. 這就是華語流行的開山第一首程式設計歌曲了嗎?

    來自 胡逆天 的 迴響留言 — 2007 年 5 月 20 日 @ 5:26 pm

  2. 這種人我遇過上百個了,我倒是比較想知道有什麼好辦法改變這些人的壞習慣。不需要跟我合作的人就算了,如果是同一個 project,我會瘋掉。

    來自 alexzgz 的 迴響留言 — 2007 年 5 月 20 日 @ 7:35 pm

  3. 超歡樂的一首歌阿XD

    我彷彿看到Orz的靈魂阿XDD

    來自 苦拉 的 迴響留言 — 2007 年 5 月 22 日 @ 5:15 am

  4. 有意思,我看能不能发表我的说话.

    來自 轩辕十四 的 迴響留言 — 2007 年 5 月 22 日 @ 2:45 pm

  5. 忍………

    前几天clive大长辈发了杨维中的《新同事》给我,Jeff Huang的歌词摘录如左: 喔耶,爆炸吧~爆炸吧! 愛用 .lib 嘛… 爆炸吧! 愛亂用 global variable 嘛… 爆炸吧! 愛亂 call function 嘛… 爆炸吧!…

    來自 delphij's Chaos 的 Trackback — 2007 年 5 月 24 日 @ 11:45 pm

  6. 呵呵,歌詞的感覺好像一首卡通歌:「霹靂星球爆炸了!霹靂貓!霹靂貓!」:P

    來自 窮學生超省錢旅行祕笈 的 迴響留言 — 2007 年 6 月 9 日 @ 2:43 pm

留言回應

XHTML: 您可以使用的 HTML 語法如下: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Powered by WordPress 2.5, Yichi.org, ideas and cares.

Weizhong Yang(a.k.a zonble)
Email:zonble@gmail.com
AIM: zonble@man.com