Re: [問題] 請教 如何 看API 寫出要的東西

看板java作者 (痞子軍團團長)時間10年前 (2013/09/19 11:39), 編輯推噓5(500)
留言5則, 5人參與, 最新討論串3/3 (看更多)
中秋節可以喘口氣(才怪,你每天都碼很閒) 所以我來回頭說說對這個問題的... 一些 murmur (高手們就可以直接左轉跳過了...) 首先,我必須得說「書,還是很重要的」 如果你有這種等級的困擾 去買本像樣一點的專書是必要的 當然,真的寫得很好的教學文件也可以 (也許這年頭電腦書的標準降低到得跟教學文件比? Orz) 但是千萬不要為了省錢,只打算用網路上的斷簡殘篇來試著拼湊 (時間就是金錢阿... 不要省小條開大條) 等你比較沒有這方面的困擾,那再來考慮省這個錢 當然,更多時候是... 根本找不到書可以看...... [淚目] 這在用相對冷門技術(例如 GWT [死]) 或是 3rd-party library 的時候特別容易被炸到 可能只給了基本的 Getting Start 讓你可以開始用 接著要用在實務上頭就發現東缺西漏、找不到想要用的功能 這個時候,你就會慶幸你寫的是 Java 如果 open source 的 project 更棒 \囧/ 關鍵在於 IDE (因為我只用過 Eclipse,所以以下會用 Eclipse 的用詞) (因為我只會寫 GWT,所以以下會用 GWT 的例子) 起手式當然就是透過 code assist 之類的協助 知道 class 有哪些 method 可以用、 method 的參數型態、回傳值、甚至 JavaDoc(如果有寫) 習慣之後改去寫那種需要先 var_dump 才知道到底回傳啥的語言,簡直就想死 Orz 接下來是「open declaration」 在有 source code 的情況之下 你就(比較有可能)知道這個 method 背後發生了什麼事情 雖然說很多時候是另外一個惡夢的起源 [死] 像我昨天就遇到一個,也不知道該算不算命名錯誤的 method GWT 的 ListHandler 有一個 setComparator() 的 method public void setComparator( Column<T, ?> column, Comparator<T> comparator ) 乍看之下以為是單純的 setter JavaDoc 也寫的很朦朧 Set the comparator used to sort the specified column in ascending order. 那這樣每個 Column 都要有自己一個 ListHandler? 這不科學阿 <囧> 後來跳進 source code 看(GWT 一定得要有 source code 才有辦法 compile) 才發現其實參數是 key/value,他會放到一個 Map 那就沒問題了,一個 CellTable 只需要一個 ListHandler 就可以了 囧> 再來是「Type Hierarchy」 我以前一直很好奇這東西要幹麼? Eclipse 預設還給他 F4 這種好按的快速鍵? 後來才發現,這找失散多年的親戚(?)很好用阿 \囧/ 例如一開始只知道有 TextBox 可以用 要套 GWT Editor 就哭哭了 明明是 int 的 attribute 卻要為了 TextBox 自己在 String 跟 int 之間轉換,這不科學阿 <囧> 結果看一下 TextBox 的族譜,發現他爺爺是 ValueBoxBase 所以有個堂兄弟叫做 IntegerBox 那就沒問題了,改成用 IntegerBox 就好了 \囧/ (結果遇到 Date 就炸了,DateBox 直接從 Widget 長出來... WTF?) 當然,Type Hierarchy 並不是一定得靠 IDE 你在 JavaDoc 網頁當中慢慢跳也可以...... 再接下來就跟 IDE 沒關係了 而是英文能力、命名習慣、Design Pattern、還有...... 直覺 XD 大抵上來說,比較像樣的 library 的命名習慣會很統一 (library 之間就... 科科... ZK 的 Listbox 跟 GWT 的 ListBox 完全是兩碼子事) 甚至有一些已經是寫 Java 的人約定成俗的習慣 abstract class 的名字常常會用 Abstract 開頭 實做 Foo 這個 interface 的 class 就會用 FooImpl 命名習慣還會牽扯到 Design Pattern 例如很常見的 FooFactory、FooHelper、FooHandler(這好像不是 XD) 也就是說,如果你懂那些 pattern 的話 大抵上直接看到 class/method 名稱,就能猜的出來他想幹麼 (可是 Design Pattern 好難懂阿,我寧願直接看 code [遮臉]) 嗯... 大概就這樣吧...... 應該說,我也只會這些 [死] -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.26.146

09/19 13:44, , 1F
(y)
09/19 13:44, 1F

09/19 15:22, , 2F
(y)
09/19 15:22, 2F

09/20 16:39, , 3F
y)
09/20 16:39, 3F

09/23 01:52, , 4F
(y)
09/23 01:52, 4F

09/23 14:55, , 5F
(y) 繁中專書真的少,投靠簡中之後,稍微改善許多
09/23 14:55, 5F
文章代碼(AID): #1IEd7u3v (java)
文章代碼(AID): #1IEd7u3v (java)