日常的なコードレビューで気をつけていることリストです。GitHub会議(仮)で発表しようと思っていたのですが、日程の都合で参加できないので、書きためておいたメモを公開します。またどこかで発表するかもしれません。
- AutoLayoutにできないか
- AutoLayout化した方がすっきりしそうならAutoLayout化する
- AutoLayout化できそうなものでやっていないものは、なぜコードで実装したか質問する
- 例えばUITableViewCell
- ちゃんと理由があれば別に良い。コードの方が良いことも多い
- UIAppearanceで解決できないか
- 各クラスの中にスタイルの指定が入るより、UIAppearanceでスタイル指定を分離して別クラスに書く方がデザイナーも弄りやすくて良い
- 3.5インチ端末が考慮されているか
- レイアウトが決め打ちだとここで問題が出ることが多い
- 着信ステータスバーが考慮されているか
- レイアウトが (略
- 循環参照していないか
- weakの付け忘れは多い
- UIViewControllerに記述が多すぎないか
- 設計の変更が必要になることが多いので、指摘のさじ加減は難しい
- DataSourceやChild ViewControllerに分離できそうな場合はその旨を指摘する
- 元の設計に余り手を入れなくても分割しやすいため
- Modern Syntaxになっているか
- 和暦対応しているか
- 誰でも一度ははまる!
- 非同期処理ならblockで成功、失敗が取れるようになっているか
- やっておくと便利なことが多い
- エラー処理の実装漏れはないか
- 勢いで実装してると忘れがち
- フィードバックの方法(アラートで出すのか云々)はプロジェクト次第
- プロパティの公開範囲は適切か
- そもそも公開する必要があるのか、公開するならreadonlyでも良くないか
- 同期的なIOでユーザー体験に影響が出そうな部分はその旨を指摘
- HTTPはだいたい気をつけるんだけど、ローカルのファイルアクセスは同期的にしがち
- 大量のファイル、大きなファイルにアクセスする部分とか
- ユーザーに気づかれないくらいのブロックなら別に良い
- HTTPはだいたい気をつけるんだけど、ローカルのファイルアクセスは同期的にしがち
- ViewControllerを閉じる時にHTTPリクエストのキャンセルは行われているか
- 手を抜く場合もありますが…
- 自前で実装する必要があるのか、OSSで解決できないか
- 必要ならAppleのドキュメント、本、ブログ記事などを引用する
- コーディングについてはCodeCompleteを引用することが多い (まあ他の本を読んでないだけ)
- これをネタにLTとかできそうですねとか指摘する
自分が所属しているFablicではiOSエンジニア3人で開発しているので、ほぼレビューが溜まることがなく粛々と開発が進んで行きます。