はじめに
プログラミングのメソッド名でどのように名前つけたらいいのか悩む時ないですか?
iOSの開発現場できになる用語のズレをある程度まとめていきたいと思います。
そこで、コーディング規約の決め方はそれぞれのプロジェクト、会社によって決められている場合があったりします。
変数やメソッドクラス名などの作り方は、命名規則「キャメルケース」「スネークケース」「ケバブケース」といった形で命名規則があります。
命名規則がなく、バラバラになっていると可読性が悪くなることで改修コストが増えたり、バグの原因になる可能性も出てきます。
関数や変数、class名などで用いられるいろんな命名規則
-- | -- | -- |
---|---|---|
【キャメルケース】 | camelCase | 先頭の単語だけ小文字にするのがローワーキャメルケースと呼ばれます。PHPやjsなどの関数で使われることが多い |
【パスカルケース】 | PascalCase | 全ての単語の先頭を大文字にするのがアッパーキャメルケースもしくはパスカルケース単語の先頭を大文字にする命名規則です。 |
【スネークケース】 | snake_case | 単語の間をアンダーバーでつなぐ命名規則です。DBなどで扱われる値に使用されることが多いようです。 |
【アッパーケース】 | UPPER_CASE | 単語の間をアンダーバーでつなぐ命名規則です。定数などで扱われる値に使用されることが多いようです。 |
【ケバブケース】 | kebab-case | 単語の間をハイフンでつなぐ命名規則です。HTMLではclass名であったり、ファイル名などでもよく見かけます。 |
ハイフンには要注意!
このように、それぞれ違いがあるのですが、ハイフンを使う場合には少し注意が必要です。jsなどでは、ハイフンがマイナスの記号として認識されますので変数などには使えません。またWordPressなどでもスラッグなどに使うとDB側で不整合の原因となる可能性があるため推奨されていないようです。
あくまで例ですが
キャメルケース → プログラミングでのメソッド、関数や変数
パスカルケース → プログラミングでのクラス名
スネークケース → DBなどで扱う値
アッパーケース → 定数などで扱う値
ケバブケース → HTMLのclass名
例
初期化する
initialize(MethodName)
配置、組立、設定
setup(MethodName)
読み込み
load(MethodName)
再読み込み
reload(MethodName)
成功
success(MethodName):(Response)
失敗
failure(MethodName):(Error)
型系
整数型
int(MethodName)
整数型
xxxxInteger
xxxxCode
xxxxStatus
小数点型
float(MethodName)
小数点型
CGFloat(MethodName)
整数型(short)
short(MethodName)
整数型(long)
long(MethodName)
不動小数点型
double(MethodName)
Boolean系
論理型
isXxxx
is(MethodName)
- YES / NO状態でわかる
- iOSの場合はこの書き方をよく用いますね。
hasXxxx
has(MethodName) - 含む場合
- iOSの場合はこの書き方をよく用いますね。
canXxxx
can(MethodName) - できるできないで判定できる場合
- iOSの場合はこの書き方をよく用いますね。
xxxxBoolean
(MethodName)Boolean
Number系
数字型
xxxxNumber
(MethodName)Number
Value系
構造体型
xxxxValue
(MethodName)Value
String系
文字型
xxxxString
(MethodName)String
xxxxText
(MethodName)Text
xxxxIdentifier
(MethodName)Identifier
xxxxName
(MethodName)Name
xxxxTitle
(MethodName)Title
xxxxDetail
(MethodName)Detail
Array系
配列型
xxxxArray
(MethodName)Array
xxxxList
(MethodName)List
xxxxItemList
xxxxItems
(MethodName)Items
xxxxTitles
(MethodName)Titles
xxxxCondisions
(MethodName)Condisions
Dictionary系
辞書型
xxxxDictionary
(MethodName)Dictionary
xxxxDic
(MethodName)Dic
xxxxInfo
(MethodName)Info
xxxxItem
(MethodName)Item
xxxxCondision
(MethodName)Condision
ビュー系
ビュークラス
xxxxView
(ClassName)View
イメージビュークラス
xxxxImageView
(ClassName)ImageView
テーブルビュークラス
xxxxTableView
(ClassName)TableView
テーブルビュークラス
xxxxListView
(ClassName)ListView
コレクションビュークラス
xxxxCollectionView
(ClassName)CollectionView
スクロールビュークラス
xxxxScrollView
(ClassName)ScrollView
コンテンツビュークラス
xxxxContentsView
(ClassName)ContentsView
セル系
テーブルセル・コンテンツセル
xxxxCell
(ClassName)Cell
テキストフィールドクラス
xxxxTextField
(ClassName)TextField
テキストビュークラス
xxxxTextView
(ClassName)TextView
ボタンクラス
xxxxButton
(ClassName)Button
- (IBAction)tapped(ClassName)Button
- (IBAction)onClick(ClassName)Button
ボタン判定用
clicked(ClassName)Button
ボタン判定用
clickOn
スイッチクラス
xxxxSwitch
(ClassName)Switch
スライダークラス
xxxxSlider
(ClassName)Slider
セグメントクラス
xxxxSegmentControl
(ClassName)SegmentControl
ページクラス
xxxxPageControl
(ClassName)PageContro
インジケータークラス
xxxxIndicator
(ClassName)Indicator
xxxxActivityIndicator
(ClassName)ActivityIndicator
xxxxLoadIndicator
(ClassName)LoadIndicator
共通
CommonClassName
上記はあくまで例です
PHP / Phthon / Swift / ObjectiveC など
ヨーダ記法
int status = 1;
const int STATUS_OK = 200
if (status == STATUS_OK) {/* 処理 /} //代入してif条件に処理
if (STATUS_OK == status) {/ 処理 /} //代入してif条件に処理
if (status = STATUS_OK) {/ 処理 /} //代入してif条件に突入
if (STATUS_OK = status) {/ 処理 */} //constに代入できないのでコンパイルエラー
皆さんのご意見も伺いたいですね。
関連記事
【About】(http://qiita.com/sunstripe) - サンストライプ
制作チーム:サンストライプ
(月1 WEBコンテンツをリリースして便利な世の中を作っていくぞ!!ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)
緩募
地域情報 THEメディア
THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます!!
https://the.themedia.jp/
ゼロからはじめる演劇ワークショップ
多様化の時代に向けて他者理解を鍛える
プログラミングワークショップ・ウェブ塾の開講!!!
様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プログラミングサロン 月1だけのプログラミング学習塾
協力応援 / 支援者の集い
チーム:サンストライプ
プログラミングラボ
一緒にポートフォリオを作りませんか?現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週1のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております!!
興味がある方は、DMに話しかけてみてください。
トラストヒューマン
http://trusthuman.co.jp/
私たちは何よりも信頼、人と考えてます。
「コンサルティング」と「クリエイティブ」の両角度から「人材戦略パートナー」としてトータル的にサポートします!!
キャリア教育事業
青空プログラミング
広域学習支援プラットフォーム『のびのび日和』
#スポンサー募集
ネリム
https://nerim.co.jp/
配信事業などを映像コンテンツなどの制作しております