※ 引述《meltice.bbs@ptt.cc (三億兩千萬大散戶)》之銘言:
> 我C++一直都沒學好
> 大概我只寫寫小程式吧
> 所以始終不知道design pattern及一些高深的技巧對我到底有什麼用
> 學會這些能讓我更快速完成程式的功能嗎
用口語一點的方式以及工程師角度來說好了,
OO design patterns 有一個很棒的地方在於,
如果你 team 裡的 members 都很熟它,
就能快速應變許多人的腦殘行為
如上司腦殘亂出 idea,
客戶腦殘想亂改需求,
合作公司或合作部門腦殘亂寫東西就丟給你或是耍腦殘叫你改東改西,
你進行「修改」、「測試」、「除錯」所花的時間會大大的縮短。
這是因為這些良好的 patterns 會讓你增加新東西時,
能將你修改原有程式碼的量控制在最小限度(甚至完全不用修改),
因此當你加入新東西或是變更(實作上是抽換)一種做法時,
你需要測試的東西也就只有新的那一小塊(假設原本的程式已經經過良好的測試),
如果出問題的話 debug 的時間也會大大縮減。
> 感覺這些trivial的語法只會讓同事更難看懂程式碼
> 讓自己陷入被compiler玩的境界吧
> 我到現在還是以C的觀念在寫程式
> 公司的同事主管似乎也沒人懂這些東西
> 有寫十幾年VC++的同事也說不知道STL的vector這東西
這是沒辦法的事,
除了教育上的問題外還有很多社會因素考量,
講白一點就是守舊派人士居多的災害。
> 例如
> 我到現在還是不知道為什麼我用Windows Media SDK錄出來的wmv檔案
> 最後總是少了幾秒鐘的聲音?
> 為什麼錄出來的wmv檔用GraphEdit始終無法play
> 總是出現"災難性失敗"的錯誤訊息
> 我確定我所有的Audio/Video sample都有正確的餵進去
> 我想C++的高深技巧應該無法解決我這個小小的問題吧
如果守舊派人士的災害從來都不存在(source code 都很先進),
而且你講的這些東西都看得到 source code 的話,
我想你花不到一個工作天就能用 C++ 的高深技巧找到原因了吧,
即使它不是用 C++ 寫的 code 也是一樣。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.252 > ╰─╮
╚╦═╦╝ ╰ * From:61-230-223-213.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎