Help us understand the problem. What is going on with this article?

キャメルケースで省略語(頭字語)を使うときの命名規約

【移行のお知らせ】プライバシー上の懸念により、Qiitaアカウントの削除を検討しています。
各投稿は個人blog( https://gateau.hatenablog.com/archive/category/Qiita )に移行しました。
今後も参照される方は、ブックマークなど移行をお願い致します。


KotlinでAndroidを書いているときに、命名に迷って調べたメモです。
キャメルケースにおいてHTTP, XML, SMS といった大文字の省略語を扱う場合どう書くのが良いのか、参考のために各コーディングガイドラインを読んでみました。

AOSP Java Code Style for Contributors

Android Open Source Projectにcontributeする際の規約です。

https://source.android.com/setup/contribute/code-style#treat-acronyms-as-words

Treat acronyms and abbreviations as words in naming variables, methods, and classes to make names more readable:

Good Bad
XmlHttpRequest XMLHTTPRequest
getCustomerId getCustomerID
class Html class HTML
String url String URL
long id long ID

クラス名はupper camel case, メソッド名や変数名はlower camel caseで普通の単語と同様に扱っています。
JDKとAndroidのcodeでここのルールは矛盾しているけども、致し方なしとしています。

Google Java Style Guide

https://google.github.io/styleguide/javaguide.html#s5.3-camel-case

こちらはかなり詳細に定義してありました。"Ipv6OnIos"は全然見慣れなくてすごいですね。

Prose form Correct Incorrect
XML HTTP request XmlHttpRequest XMLHTTPRequest
new customer ID newCustomerId newCustomerID
inner stopwatch innerStopwatch innerStopWatch
supports IPv6 on iOS? supportsIpv6OnIos supportsIPv6OnIOS
YouTube importer YouTubeImporter

Kotlin.org Coding Conventions

http://kotlinlang.org/docs/reference/coding-conventions.html#choosing-good-names

When using an acronym as part of a declaration name, capitalize it if it consists of two letters (IOStream); capitalize only the first letter if it is longer (XmlFormatter, HttpInputStream).

2文字までなら大文字で、それより長い場合は先頭だけ大文字です。

Android以外の場合

Go Code Review Comments

https://github.com/golang/go/wiki/CodeReviewComments#initialisms

Words in names that are initialisms or acronyms (e.g. "URL" or "NATO") have a consistent case. For example, "URL" should appear as "URL" or "url" (as in "urlPony", or "URLPony"), never as "Url". As an example: ServeHTTP not ServeHttp. For identifiers with multiple initialized "words", use for example "xmlHTTPRequest" or "XMLHTTPRequest".

This rule also applies to "ID" when it is short for "identifier", so write "appID" instead of "appId".

大文字か小文字で統一します。今回サーバサイドがGoでAPIはこのルールに従っていました。

Swift Style Guide

https://github.com/eure/swift-style-guide#variables-and-functions-should-be-in-lowercamelcase-including-statics-and-constants-an-exception-is-acronyms-which-should-be-uppercase

Variables and functions should be in lowerCamelCase, including statics and constants. An exception is acronyms, which should be UPPERCASE.

Rationale: Adopt Apple's naming rules for uniformity. As for acronyms, the readability makes keeping them upper-case worth it.

公式が見当たらずエウレカさんのガイドラインです。upper caseとのこと。

結論

今回使いたかったのは"SMS"と3文字だったのもあり、JavaやKotlinの例を参考に"Sms..."といった書き方にしました。
この件以外にもコーディング規約はあった方が良いので、下記辺りを参考にしてみるつもりです。

言語ごとに結構ルールが違って、調べてみたら面白かったです。

wiroha
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした