では、なぜAPIのドキュメントは、私のような恒久的なnewb /ハッカー/ DIYを混乱させるような方法で書かれているのですか?
それはそのように書かれることを本当に意図されていません。APIドキュメント全体で使いやすさはないようだと私は同意します。ただし、古いman
スタイルの構文規則から、最新のAPI /名前空間の規則まで、多くのクロスオーバーがあります。
通常、APIを使用するタイプの人は、開発にある程度のバックグラウンドがあるか、少なくとも「パワーユーザー」です。これらのタイプのユーザーは、そのような構文規則に慣れているため、新しいAPIを作成するよりも、APIドキュメントに従う方が理にかなっています。
APIドキュメントの読み方を教えている不思議なドキュメントはどこかにありますか?
本当にどこにも標準またはRFCのsupersekretsyntaxdocはありませんが、広く使用されているUNIXのmanページのSynposis形式用の〜30年前のファイルがあります。
これのいくつかの例(そしてあなたの質問に答える)は:
下線が引かれた単語はリテラルと見なされ、表示されるとおりに入力されます。
引数を囲む角括弧([])は、引数がオプションであることを示します。
省略記号...は、前の引数プロトタイプが繰り返される可能性があることを示すために使用されます。
マイナス記号で始まる引数-ファイル名が出現する可能性のある位置にある場合でも、ある種のフラグ引数を意味するとしばしば解釈されます。
ほとんどすべてのプログラミング関連のドキュメントは、Python、manページ、javascript libs(Highcharts)などから、このタイプの構文規則を使用しています。
Adobe APIからの例の分析
fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])
fillPath()
(関数)がオプションの引数fillColor, mode, opacity, preserveTransparency, feathe, wholePath
またはを受け取ることがわかりますantiAlias
。を呼び出すとfillPath()
、これらのパラメーターのどれもなしからすべてに渡すことができます。オプション内のコンマは、[]
このパラメーターを他のパラメーターに加えて使用する場合、コンマで区切る必要があることを意味します。(常識的には確かに、時にはVBのような一部の言語では、欠落しているパラメーターを適切に記述するために、これらのコンマを明示的に必要とします!)。ドキュメントにリンクしていなかったため(およびAdobeのスクリプトページにそれが見つからないため)、Adobe APIがどの形式を想定しているのかを知る方法は実際にはありません。ただし、ほとんどのドキュメントの上部に、その中で使用されている規則を説明する説明があります。
したがって、この関数はおそらく多くの方法で使用できます。
fillPath() //Nothing passed
fillPath(#000000,RGB) // Black, in RGB mode
fillPath(#000000,RGB,50) // Black, in RGB mode, half opacity
//Now it gets tricky, this might ALSO be acceptable:
fillPath(#000000,50) // Black, no mode, half opacity
//OR
fillPath(#000000,,50) // Black, no mode, half opacity
繰り返しますが、通常、API /プログラミングに関連するすべてのドキュメントにいくつかの標準があります。ただし、各ドキュメントには微妙な違いがある場合があります。パワーユーザーまたは開発者は、使用しようとしているドキュメント/フレームワーク/ライブラリを読んで理解できることが求められます。