こんにちは、株式会社PlaygroundのiOSエンジニア伊原です!
複数人で共同開発をするとき、
ルールがないと無法地帯になってしまいますよね。
我が社のiOS開発チームではこれまでルールを具体的に決めないまま開発してきましたが、
このままじゃまずいということで今回ルールを具現化することにしました。
目次
コーディング規約を作るメリット
はじめに、何のために忙しい中時間を割いてコーディング規約を作成し、仲間で共有し合うのか。
そのメリットを考えてみます。
コーディング規約のメリット1|ズバリ!! 可読性が上がります。
他人の書いたコード、もしくは過去に自分が書いたコードを読んだとき「???」となることがありますよね。
でもみんなで同じルールのもとに書いていれば、?の数が減ると思うんです。
可読性がUPすると、以下にかかる時間が大幅に短縮されます。
- コーディング
- 機能追加
- 修正
エンジニアにとってこんなに嬉しいことはないですよね。
まだまだ未完成ですが、
我が社のルールを公開しますので参考にしてみてください。
Playgroundのコーディング規約
コーディング規約1|全体
- インデントはスペース4つ分
- 不要なコード・改行は削除
コーディング規約2|命名規則
変数名
- Modelの変数はスネークケースとする
example
var user_name: String?
- その他の変数はキャメルケース(先頭は小文字)とする。
- Dataを扱うときは、Modelのクラス名をそのまま使う。
example
var userName: String = ""
var userModel: UserModel = UserModel()
Class名
- キャメルケース(先頭も大文字)とする。
- 多少長くても、どこのファイル構成にいるかわかりやすいネーミングにする。
例) TopViewController > MainView > TopMainTableViewCell
コーディング規約3|初期化
- 型宣言をする。
- 型名 + () で初期値を入れる。
example
var str: String = String()
var int: Int = Int()
var bool: Bool = false
var arr: [String] = [String]()
コーディングスタイル
Optional
- 開示指定(!)やnill合体演算子(??)は使わない。
→初期値を入れるか if let や guard let でアンラップ処理をする。
良い例
//初期値を入れる
var hoge: Int = 0
hoge = 10
let fuga: Int = hoge
//アンラップ
if let hoge = hoge {
//存在が保証されたhogeを使って処理を書く
} else {
//必要ならnilの時の処理を書く
}
悪い例
//初期値を入れない
var hoge: Int?
let fuga: Int = hoge ?? 0
【注意】guard let を使うと、値がnilだったときにその後の処理が呼ばれない。
example
guard let hoge = hoge else {return}
//hogeがnilの場合ここの処理は呼ばれない(return されてしまうから)
プロパティ
- “self.”での呼び出しは必要なときのみ使用する。(引数と同じ名前のプロパティ、クロージャ内など)
XIB
- isHiddunなど、コードで指定できるものはコードで指定。
- NavigationHeaderBar.isHiddun に限っては、XIBで指定可。
終わりに
このコーディング規約は今後もどんどん更新していきます!
最初は簡単なものから、徐々に育てていこうと思います。
アドバイスやご指摘等ありましたらコメントお願いしますm(_ _)m
規約作成で参考にしたサイトは以下です
ABOUT ME
株式会社Playgroundのサービス
- 無料・簡単・片手でホームページを作成できる自社サービス Rakwi
- Web制作とアプリ開発を学べるオンラインプログラミング講座 Upstairs
- 開発,DX推進支援サービス スタートアッププラン