Swift標準APIのURL構造体の名前に疑問符が付いたので調べてみた。
Swift公式の命名規則としてAPI Design Guidelinesがあるが、ここでは略語に関して「標準的な略語以外は省略しないで書いてね」ぐらいしか書かれていない。よって、一般的な規則である「型とプロトコルの名前はUpperCamelCase、それ以外はlowerCamelCaseで書いてね」に沿ってUrl
になるはずだが、なぜかURL
になっているのだ。調べてみた結果帰納的に以下の規則で結論付けたのでまとめる。
標準的な略語の命名規則
- 単語の最初の文字の種類に揃える
- ただし、IPv4とIPv6のvは必ず小文字
例
URL
CommandLineAPIHost
url
absoluteURL
IPv6Address
ipv6Settings
証拠
- URLの型名とか初期化子とかメンバーとか
- XMLDTDの型名とかプロパティーとか
- UTTypeのSystem Declared Types
- WebKit JSのパッケージ名とかクラス名とか
- Identifiable.ID
例外
下三つに関しては表記可能な文字で代替するようだ。C++の表記揺れも見られるので統一して欲しい。
所感
IPv6が全てを狂わせた。おそらく"IP"で一つの単語として原則に従わせ、"v6"は可読性重視で固定にしているのだと思う。
先頭に来ないiOSやmacOSはどうなるんだろう?上記の規則だとIOS、MACOSだが。。。