オリジナルは gist:d91aef87e95f99c094c0 です
-
出来の悪いコードを追加するな
if文の条件とreturn
を囲む括弧を避けろ。文が要求する場合を除き、同一行の文を分割するセミコロンを書くな。 -
全て大文字は使うな
キャメルケースを使え。 -
型インターフェイスと戦うな
列挙接頭子、自己参照を使え。コンストラクタを伴うクラス名は必要な時や、コードが綺麗になる場合のみ使え。 -
プロパティを除き、
let
が適切な時にvar
は使うな
コンパイラはそのライフタイム中に変更されない時、let
文を適切に最適化する。例えば、Appleが書いているように全てのケースにおいて変更の必要がないコレクションはimmutableで生成するのが良いプラクティスである。
そのように生成されたコレクションについて、Swiftコンパイラは性能を最適化する。 -
struct
が適切な場合にclass
を使うな
参照型が必要な時にクラスを使い、値型が必要なときは構造体だ。Swiftではどちらにも機能(と列挙)を追加できる。 迷った時は値型で考えろ。 ライフサイクルを持っていない、もしくは似た値を持つ2つの値を生成するようなら構造体を使うことを考えろ。 -
オプショナルが本当に必要な時に値をフォールバックするな
ヌルチェックに疲れているならば、Swiftの使い方がまずい。 -
トップレベルの定義を除き、アクセス制御を忘れるな
アクセス制御は再利用を可能にし、モジュラー化する。 -
饒舌になるな
(プロパティでは)get
節の推察を使う、匿名引数(例えば$0
、クロージャにおける型の些細を省ける)、などなど -
FoundationとCocoaを避けるな
同時に、可能であればSwift 内蔵型を使え。 -
CGPointMake()
を使うな
レガシーなものより、Swiftコンストラクタと初期化子を選択しろ。 -
不要な変数は使うな
ワイルドカード表現(_
)は代入を無視できる。呼び出しスコープで参照しない項目を省略するのに使える。例えば、let (status, _) = GetInfo()
やfor _ in 1...5 { 何かを5回行う }
など。 -
大文字を恐るな
enum
ではTitleCaseを使え。