LoginSignup
4
0

リーダブルコードから学んだこと【前編】

Posted at

はじめに

こんにちは。エンジニアを目指す大学3年生です。

最近、オライリー・ジャパンのリーダブルコードを読んだので、
備忘録がてらに学んだことを残そうと思います。

この本では「良いコードとはなにか」について、真面目すぎず面白く、
しかも分かりやすく述べられています。読んでいて楽しかったです。

この記事では、リーダブルコードを読んでから気づいた、
今まであまり意識していなかったことや、印象に残った部分に絞って書きます。
一つの記事にまとめるとボリュームが大きくなりすぎるので、2つの記事に分けます。

前編、後編を通して、以下の4つを扱います。

  • 他人は未来の自分
  • 誰が見ても処理がわかる命名をする
  • コメントは、理解が早くなるように書く
  • 理解しやすいコードは短い

この記事が、
新しい気づきを得たり、知っていることを復習するきっかけになれば嬉しいです。

他人は未来の自分

結論

わかりやすいコーディングは他人のためであり、その他人の中には未来の自分も含まれます。
自分だけで実装しているプロダクトだからといって、
わかりやすいコードを書く努力をしないのはナンセンスです。
自分のためにも、わかりやすいコードを書くことを心がけると良いです。

詳細

コードはできるだけ分かりやすく書く必要がありますが、それはなんのためでしょうか。
答えは、他人がコードをすぐに理解できるようにするためだと思います。

では、自分一人で開発しているプロダクトでは、分かりやすく書く必要はないのでしょうか。
答えは、Noです。どうしてでしょうか。

それは、「他人」には、未来の自分も含まれるからです。
どうして自分なのに他人なのかというと(何か哲学的な文ですね笑)、
人はだいたい自分の書いたコードをそんなに先まで覚えていないからです。

自分が書いたコードを少し後に見返して、「なんだこれ」となった経験はありませんか?
私はしょっちゅうあります(汗)。

このように、「自分の頭の中にないコードを見る立場」という意味で、自分も他人に含まれます。

今後意識したいこと

開発の生産性を上げるため、
自分にも他人にも理解しやすいコードを書く!
ということを意識してコーディングしていきたいです。

誰が見ても処理がわかる命名をする

結論

プログラム中で何かを命名するときは、
他人から見てわかりやすい命名になっているかを確認することが重要です。

詳細

変数名、定数名、関数名、クラス名...
プログラムを書いていると、何かしらを命名する機会がたくさんあります。

これらは、すべて他の人から見て処理がわかりやすい命名になっていることが望ましいです。

例えば、「filter」という関数名は、
条件に合うものを取り除くのか、それとも抽出するのか、不明確です。
取り除くならexclude、抽出するならselectなど、意味が明確になる単語を選ぶのが良いです。

また、他の例として、
「get」という関数名は、一般的にはデータを取得するだけの軽い処理という認識がされています。
そのため、複雑な処理を実行する関数名に「get」をつけてしまうと、
意図せず処理に時間がかかりすぎてしまうことがあります。

このように、自分の書いたプログラムを読んで理解できるかだけでなく、
使う立場の人が自分のプログラムをどう思って使うのかまで想像して、命名する必要があります。

今後意識したいこと

何かしらの命名をするときには、「なぜその命名にしたのか」を答えられるように、
一つ一つの命名に責任を持ってコーディングしていきたいです。

最後に

私は今まで、AtCoderなどの競プロに取り組んできて、
「競プロなら変数名とかテキトーで良いでしょ」と思って実装していました。

ただ、テキトーに実装していると、処理が複雑になってきたときに
iってなんだっけ?
a_listってなんぞや?
と思うことがよくありました。

なので、
この本を読んで「未来の自分も他人」ということにすごくハッとさせられました。

これからは、自分しか読まないコードでも、
リーダブルなコードを意識してコーディングしていきたいです。

参考文献:リーダブルコード

4
0
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
4
0