LoginSignup
7
6

新人エンジニアが抑えておきたい必読書 リーダブルコードを読んで要点をまとめる

Last updated at Posted at 2023-07-23

はじめに

今回はエンジニアの必読書とされている「リーダブルコード」を読んでいく中で要点を整理し、実際の現場でコードを書いたりレビューをする際どのように活用していけば良いかを自分なりにざっくりとまとめました。

私について

未経験から独学でプログラミング学習し5ヶ月でLaravelでポートフォリオを作成しました。そして現在は自社開発企業に入社し、新人WEBエンジニアとして開発に携わっています。

この記事を書いた理由

リーダブルコードは、コードを書く人全員が読むべき書籍とも謳われている名本です。
特に駆け出しエンジニア向けによくおすすめされており、
自分の知識定着の為アウトプットとして残しておきたいのと、実際に読んでみて未経験エンジニアや既に実務で活躍されている方々にも共有すべき内容と判断したため、この記事を書きました。(既に読んでいる方々は多いと思いますが💦)

記事の流れ

  1. 優れたコードってなに?
  2. 名前に情報を詰め込む
  3. コメントの目的を理解する
  4. ロジックを単純化する
  5. コードに思いを込めよう
  6. とにかくやってみよう

1.優れたコードってなに?

リーダブルコードで優れたコードとは「他の人が読んだ時に、コードの意味を理解するまでの時間を短くできるコード」と定義されています。

大事なポイント!

・コードは他の人が最短時間で理解できるように書かなければならない

・コードは短く書いたほうがよいが「理解するまでの時間が短くなる」ほうが優先度は高いと挙げられてます。

コードを短く書くことは大切だが、短く書くことによって他の人が読んだ時に理解に苦しむ(理解に時間がかかる)ようなコードでは本末転倒になってしまう!

これを防ぐ為、リーダブルコードを読むことで「他の人が読んだ時に理解されやすいコードの書き方」を学ぶことができます。

ここまで話を聞いて、つまりどうすればいいんだってばよ...!となったと思います。
次から解説していきます!!

2.名前に情報を詰め込む

例えば関数に「getPage」という命名をした場合、この関数getPageは何かしらのページ情報を取得してくることは名前から推測できますよね。

しかしgetPageという命名だと、下記のような疑問が出てくる可能性がある。

ページ情報はキャッシュから取得するのか
ページ情報はデータベースから取得するのか
ページ情報はインターネットから取得するのか

具体的にインターネットからデータを取得するのであれば「fetchPage」「DownLoadPage」といった命名の方が理解しやすい名前になります。

以上のことから、関数等を命名するときは「気取った言い回しよりも、明確で正確なほうを意識する」ことが重要になってくる。

大事なポイント!

短さよりも意味の明確さの方が大事。
読み手に疑問を抱かせない。

3. コメントの目的を理解する

全てにコメントを書けばわかりやすくなるものではありません!
コメントを書く前に、ソースコードをきれいにすることが第一。
下手なコードの不備を補うコメントは害にしかならないです。

価値のないコメント → コードを見たらすぐにわかる内容。

価値のあるコメント → 自分の考えの記録。(なぜこのやり方にしたのか、定数の値にまつわる背景 etc...)

どうすればいいか?

そもそもコメントの目的は書き手の意図を読み手に知らせること!
コメントの先頭で意味がわかるようにするとさらに読み手にわかりやすくなります。

  • TODO: あとで手を付ける
  • FIXME: 既知の不具合があるコード
  • HACK: あまり綺麗ではない解決策をしている
  • XXX: 危険!大きな問題あり

大事なポイント!

全体像のコメントと機能要約コメントをする。
コメントの先頭で意味がわかるようにする。

4. ロジックを単純化する

コードの式は大きくなればなるほど理解が難しく、読み解くのに時間がかかってしまいます。
そこで、巨大な式を分割すると読みやすくなります。

どうすればいいの?

大事なポイント!
巨大な式を分割するために一番簡単な方法は、「説明変数」を導入しよう。
メリット
・巨大な式を分割できる
・簡潔な名前で式を説明することで、コードを文章化できる
・コードの主要な「概念」を読み手が認識しやすくなる

index.php
if (trim(explode(':', $line)[0]) === "root")

分割すると

$username = trim(explode(':', $line)[0]);
if ($username === "root")

5. コードに思いを込めよう

おばあちゃんに説明できなければ、理解したとは言えない。
アルバート・アインシュタインの発言です。コードはそれくらい易しく書くべきですね。

複雑なロジックを説明するときに、詳しく話しすぎるとかえって相手を混乱させてしまいます。
自分よりも知識が少ない人でも理解できるような「簡単な言葉」で説明する能力が大切です。

大事なポイント!

コードを「簡単な言葉」で書く手順は

コードの動作を簡単な言葉で同僚にもわかるように説明する
その説明の中で使っているキーワードやフレーズに注目する
その説明に合わせてコードを書く

6. とにかくやってみよう

本やこの記事を見て、まずは実際にやってみるのが一番です。
先輩エンジニアや同僚エンジニアの方にコードを読んでもらい、改善していきましょう!

私が今現在とても足りないところなのですが、改善していきたいです。

自分より知識が少ない人でも理解できる簡単な言葉で説明する能力やコードを書く技術
簡単な言葉でロジックを明確に説明できるようになる。
問題や設計をうまく言語化できない場合は、自分の中で詳細が明確になっていないのでしっかりと理解する。

最後までお読みいただきありがとうございました。
早いうちから習慣化しておけばそれはきっと財産になります!共に頑張りましょう!

7
6
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
7
6