2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【資料作成】(コーディング規約)定義 コーディング規約の決め方など

Last updated at Posted at 2020-06-29

はじめに

プログラミングのメソッド名でどのように名前つけたらいいのか悩む時ないですか?

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) - サンストライプ


制作チーム:サンストライプ

sunstripe_logo.png
http://sunstripe.main.jp/

(月1 WEBコンテンツをリリースして便利な世の中を作っていくぞ!!ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)

緩募

地域情報 THEメディア

THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます!!
https://the.themedia.jp/

ゼロからはじめる演劇ワークショップ

多様化の時代に向けて他者理解を鍛える

プログラミングワークショップ・ウェブ塾の開講!!!

様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プログラミングサロン 月1だけのプログラミング学習塾

協力応援 / 支援者の集い

チーム:サンストライプ

プログラミングラボ

一緒にポートフォリオを作りませんか?現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週1のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております!!

興味がある方は、DMに話しかけてみてください。

トラストヒューマン

http://trusthuman.co.jp/
私たちは何よりも信頼、人と考えてます。

「コンサルティング」と「クリエイティブ」の両角度から「人材戦略パートナー」としてトータル的にサポートします!!

キャリア教育事業

青空プログラミング

青空プログラミング100px.png

ダウンロード (9).jpeg

広域学習支援プラットフォーム『のびのび日和』

#スポンサー募集

ネリム

https://nerim.co.jp/
配信事業などを映像コンテンツなどの制作しております

ビヨンドXプロジェクト

ビヨンドXプロジェクト全体会議

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?