作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] 请教 如何 看API 写出要的东西
时间Thu Sep 19 11:39:32 2013
中秋节可以喘口气(才怪,你每天都码很闲)
所以我来回头说说对这个问题的... 一些 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
1F:推 lovdkkkk:(y) 09/19 13:44
2F:推 Fonger: (y) 09/19 15:22
3F:推 asilzheng:y) 09/20 16:39
4F:推 johnny94:(y) 09/23 01:52
5F:推 abola921:(y) 繁中专书真的少,投靠简中之後,稍微改善许多 09/23 14:55