LoginSignup
17
14

More than 3 years have passed since last update.

【iOS, Swift】(備忘録)コーディング規約の大事なとこだけ

Last updated at Posted at 2019-07-16

Swiftのコーディング規約についていろいろ資料を見る時間があったので、規約で忘れがち、重要度が高そうなものを抜粋してまとめてみました。

(※ 個人差ありです)

基本的なもの、具体例は「参考」にあるものが詳しいです。(エウレカのものが分かりやすいと思います。)

目的

  • プログラマー自身のエラーを減らして、さらにエラーを見つけやすくする
  • コードの可読性と明快さを向上させる(他の人がコードをレビューもしくは書き換えると仮定して) => 冗長さがなく、誤解の可能性を少なくする

規約

  • フォーマット
    • 半角スペース4つ分(Text Editingで設定する)。
  • 命名
    • 出来る限り省略された名前を付けない。
    • 副作用がない場合は、名詞を使用する。
    • 副作用がある場合は、動詞を使用する
  • 依存関係
    • 必要最低限のものだけをimportする。(UIKitをインポートする必要がある場合は、Foundationをインポートしない。)
      • import文はOS固有のフレームワークと外部フレームワークとの間に空行を1行入れて、アルファベット順に並べる。
  • 宣言の順序
    • classstructenumextensionprotocolなどの全ての宣言は // MARK: - <宣言の名前>を付ける。
  • アクセス修飾子
    • privateとして宣言することをデフォルトとして、必要なときだけinternalまたはpublicとして外部に公開する。
    • できる限り常にvarではなくletを使う。
  • シンタックスシュガーを使用し短く書く。

    • 必要な場合を除いて、変数やプロパティの型は宣言文の左側か右側のいずれか片側から推測できるようにする。
    • Forced Unwrappingは避ける
  • コメント

    • コメントは「なぜ?」という問いに答えるものであり、それ以外のことはコード自体が説明すべきである。
  • Collections / SequenceTypes

    • isEmpty, first, lastを使用する(indexを使用しなくても良い場合は使用しない)
    • countを使用する箇所はindicesを検討する
  • Self

    • selfは省略する
    • クロージャ内では[weak self]guard let節を用いて循環参照のケアをする。 また、予期せぬクラッシュをケアする為に[unowned self]は使用しない。

参考

数字は最終更新日

17
14
0

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
17
14