跳到主要內容

發表文章

目前顯示的是 十一月, 2010的文章

讀書心得: 精通 Objective-C 2.0 程式設計

原文書名: Programming in Objective-C 2.0 (2nd Edition)

以一本程式語言教學的書來說,我給這本書的評價是:水準以上,但是差了那麼一點醍醐味兒。

先談談整體的寫作的風格,可以說平實八穩,依照語言的各種特性,按部就班一個個清楚而且詳細的解釋。內容上本書總共分為三大塊,主題分別是 Objetive-C語言、Foundation Framework (objc的標準函式庫) 以及 Cocoa and iPhone SDK。第三塊的Cocoa只能算淺嘗性質的示範了一個小巧的iPhone程式,全書大部分專注於闡述objc這個"語言",沒有特定侷限於某個平台,對於想快速上手iPhone/iPad開發的人,本書不是個好選擇。

閱讀的過程算相當順暢,除了objc 2.0新增的property我覺得範例過短,必須去網路上搜尋其他資料輔助,大部分都相當清楚作者要傳達的意思。偶爾有一兩句拗口的翻譯句子出現,但整體品質還算相當不錯。全書以數個範例貫穿頭尾,藉由不斷添加功能於其上,引出各式各樣的Objc語言特性,我認為相當好。

本書把Objc當作一個全新的語言來講,而不是C語言的延伸,這對沒學過C的人算是好消息。我個人是已經學了C好多年了,所以這本書到底適不適合完全的新手,我也說不個準。書完全以OO的方式來介紹objc,對於一些舊式C語言的東西如top-level function、pointer並不鼓勵使用。所以全書只留有一章把傳統C語言的特性收集起來做個介紹,算是選讀的章節,沒唸也無傷大雅。這章揭露了一些objc底層的實做,對於熟悉C的人倒是相當有趣的一段。

我說差了點醍醐味兒的原因是我掃完第一遍後,心中有個聲音響起:又一個程式語言!我學的程式語言還不夠多嗎?其實從這本書我對objc的第一印象並不太好,對API函數的命名尤其反感,比如說 Foundation Framework 裡的 NSArray (單純就是個Array class) 存取第三個元素的方法是 [array objectAtIndex 3]; 看到這個方法我差點沒把口中的咖啡噴出來,突然覺得operator overloading真是天上傳來的福音。類似例子多不勝數,例如字串的比對 [str1 isEqualToString str2]; 哎喲,我真的得說…