We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
属性値
デフォルト
(必須)
""
undefined
↑規定の Layer, LayerGroup 項の a. 属性値 列 と b. デフォルト 列。
Layer
LayerGroup
"Layer"
文字列
L.TileLayerと同じ
Type
URL
String
true/false
Boolean
null
.hoge
Number
-1
true
以下のすべてを行います:
Layer である事を示す。値は "Layer" に固定され他の値は許容されない。
Layer 及び LayerGroupの配列
[ Layer | LayerGroup ]
[ Layer or LayerGroup ]
[ Layer または LayerGroup ]
可
否
不可
(entries属性かsrc属性のいずれかが必須)
可 ( 但し entries または src の何れかは有効な事)
"hoge"
"type"
type
The text was updated successfully, but these errors were encountered:
ご指摘ありがとうございます。 改めてプログラムを確認の上、表の修正を検討いたします。
Sorry, something went wrong.
Update specifications.md
164de60
issue #2, #4 を反映。
No branches or pull requests
問題の位置
↑規定の
Layer
,LayerGroup
項の a.属性値
列 と b.デフォルト
列。問題の内容
a.
属性値
列Layer
はかろうじて属性値といえなくもありませんが、その場合も一般的には"Layer"
のように文字列値である事がリテラルから自明な表現にします。そのようにしない場合は一般的に仕様書の読者は対象を型としてのLayer
と読んでしまう可能性がとても高く、仕様書から期待されない意図を読んでしまいます。文字列
やL.TileLayerと同じ
はおそらく「型」です。L.TileLayerと同じ
のリンク先でも table ではType
= 型 の部分への対応を想定しているような気配ですから、「属性値」では仕様の表現に不具合があります。Layer
は「許容される値」で 文字列リテラルとわかるよう"Layer"
とした上で「属性値」ではある文字列
は「型」なので「属性値」ではありません。URL
は「型」としてはString
かつ、「許容される値」としては"Layer"
のような variant の1つではなく URL を満たす文字列値という制約条件(whereされるconditionとか言語によっては Trait や Interface だったりするようなもの)です。true/false
は「許容される値」です。これはBoolean
型のすべての variant なので、つまり「型」を間接的に規定しているような具合です。L.TileLayerと同じ
は参照先の table では Type しかないので、参照元が「属性値」では不整合で仕様を読む開発者に混乱を招きます。この点からも「型」列への置き換えが良好な選択肢として示唆されます。String
です。もし、「属性値」の制約条件として間接的に記述したい場合は「文字列」ではなく「任意の値」が妥当かもしれません。b.
デフォルト
列undefined
のプロパティーが参照される事があった場合またはそれに準じるnull
などの無効値に変えて返される有効な何らかの規程 "値" の事を言います。.hoge
プロパティーにはNumber
が設定されている事が期待されるが、undefined
またはnull
またはNumber
以外の値が入っていた場合は-1
をデフォルト値として読み出す(必須)
は"デフォルト値"を表す表現ではないので、その行のプロパティーがundefined
を許容するか、しか定義できていません。おそらく、undefined
を許容しない ≈ 省略不可の意図を仕様化したかったであろう事は推量できます。但し、繰り返しとなりますがそれは"デフォルト"で表現される事ではありません。true
,""
などは列のヘッダー "デフォルト" から文字通り、おそらく意図通りのデフォルトとして扱うべき値である事を読み取れます。それら自体には問題ありません。しかし、この仕様の記述、デフォルト列の記述方法では、前述(2)のように「デフォルト」と「省略可否」が混用されているため、結果としてtrue
,""
などデフォルト値が正しく記述された各行では省略可能なのかが仕様書の読者には不明瞭です。期待される解決方法
以下のすべてを行います:
a.
属性値
列Layer
はその行の型String
にし、「意味」列にLayer である事を示す。値は "Layer" に固定され他の値は許容されない。
のように制約条件の記述を移動する。Layer
のみなので、わざわざ制約条件の列を table へ追加する必要はないかな、と思います。LayerGroup
も同様文字列
はString
に変更URL
はString
に変更。「意味」列で URL の制約条件を満たさない場合は無効である事が自明なため特に制約条件としてURLを満たす文字列云々の明示は事実上不必要と思います。true/false
はBoolean
に変更Layer 及び LayerGroupの配列
は[ Layer | LayerGroup ]
と記述すれば仕様を必要とする開発者にはフレンドリーです。[ Layer or LayerGroup ]
または[ Layer または LayerGroup ]
のように記述しても配列要素の型に相当する variant は仕様を必要とする開発者におそらく明確に伝わります。b.
デフォルト
列undefined
(≈省略) を仕様として許可するか読者が明確に判断できる表現を行います。列名はECMAScript開発者向けに正確さを優先したい場合は「undefined
の許容」のような表現としてもよりわかりやすいかもしれません。可
/否
または可
/不可
のような表現にします。(必須)
が設定されている行はおそらく、この列に不可
と記述して表現を移動する事になります。(entries属性かsrc属性のいずれかが必須)
が設定されている行は可 ( 但し entries または src の何れかは有効な事)
のような記述になります。(必須)
が設定されている行は n/a となりますので空欄または n/a 表記とします。undefined
または規定された内部表現の型として有効ではない場合 (≈null
,Number
が期待される行で"hoge"
文字列値が入っていたなど)undefined
-> default として扱うかnull
-> default として扱うかc. その他の些細な修正
"type"
のようにはなりますが、これは便宜上type
としても開発者が意図を読み違える事はまずありません)The text was updated successfully, but these errors were encountered: