LoginSignup
5

読みやすいコードとは【備忘録】

Last updated at Posted at 2023-04-14

はじめに

この記事では、私が色々な本を読み得た「読みやすいコード」についての知見を記述しています。
備忘録のようなテンションで書いています。
ご理解ください。

*ゆっくり更新していきます

なぜ読みやすいコードを書くべきなのか

コードが読みやすくなることで、どこに何が書いてあるのかを理解し易くなる。
             ↓
開発者が正確にコードを理解でき、バグが生じるリスクが減少したり、開発速度が上がる。また、バグが発生した場合でも修正がし易くなる。

アーキテクチャの適用

そもそも、ViewControllerにベタ書きされているコードは行数も多く、責務分離もできておらず可読性は低いです。
そこでMVC・MVVM・VIPERなどなど数ある設計パターンを適用し、責務を分離させることでグッと可読性が向上します。(同時に効率性も向上するので、処理速度も良くなります)

分かりやすい命名

・意味不明な省略をせずに、誰もが意味や役割が簡単に理解できる名前にする
・正確且つ説明的な名前にする
・何かの動作について記述している関数であれば、どんな動作をしているのか分かる名前にする
・基本的には、クラスや変数は(形容詞) + 名詞、関数は命令形(動詞から始める)の語句を用いる
・肯定的な語句を用いる(enable, disable...)

関数

・ベタ書きをせずに、一定のまとまりを関数として切り分ける
・関数が持つ責務は1つにする
・必ず自身のインスタンス変数を使う
・コマンドとクエリを分離させる→CQS
・引数は不変にする(変更する場合は、ローカル変数に代入)
・エラーは戻り値で返さない(その場で対処する)

ネストを深くしすぎない

・早期return、早期breakを有効に活用する
・条件分岐を一箇所にまとめる(単一責任選択の原則)
・メゾットチェインを使う
ストラテジーパターンを使う

クラス

・class単体でも動作するように設計する(インスタンス変数とそれを操作する関数を備えたクラス)
・意味がある単位ごとにclass化をする→ex) 計算アプリ: 定価class, 割引class, 割増class...

コメント

・(関数や変数に正しい命名をして)極力少ない文章で説明する
・関数は何を返すのか、何をいじるのかを説明する
・副作用を持つ関数は、その内容を説明する
・各行に書かないで、ある程度のまとまりについての説明をする

状態

・基本的には不変な値を使う
・計算ロジックはデータ保持側に持たせる
・コード外とのやりとり(データベースなどとの通信)は局所化する→Repository型

まとめ

上記の事を意識してコードを書くことで、自分も共同開発者も読み易くなり、開発効率が向上したり、バグの撲滅につながると考えています。
ぜひ、参考にしてください。

参考文献

読みやすいコードのガイドライン(著者:石川宗寿)

良いコード/悪いコードで学ぶ設計入門(著者:仙塲大也)

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
What you can do with signing up
5