Re: [問題] 請教 如何 看API 寫出要的東西
中秋節可以喘口氣(才怪,你每天都碼很閒)
所以我來回頭說說對這個問題的... 一些 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
09/19 13:44, 1F
推
09/19 15:22, , 2F
09/19 15:22, 2F
推
09/20 16:39, , 3F
09/20 16:39, 3F
推
09/23 01:52, , 4F
09/23 01:52, 4F
推
09/23 14:55, , 5F
09/23 14:55, 5F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):