こんにちは。
以前、新人プログラマーが「リーダブルコード」を読んでみた(前編)を投稿した者です。今回は、その続きを書きます。
今回も、各セクションごとに重要なポイントの記載に感想を交えていきます。
9. 変数と読みやすさ
<重要ポイント>
- 不要な変数を削除し、変数の数を減らす。
- 変数のスコープをできるだけ縮める。
- 変数が更新される回数をできるだけ減らす。
コードを書いている時って、機能のことばかり考えていて、変数はそれを実現するための手段と考えてしまいがちだと思います。すると、変数をどう扱おうかって割と抜けちゃうんですよね…。
この本を読み、コードを書いているときの変数について気にすることをマニュアル化してくれると、今後意識できそうな気がします。
10. 無関係下位問題を抽出する
<重要ポイント>
- プロジェクト固有のコードから、汎用的な機能を取り出し、汎用コード化する。
- 1つのコードブロックの、高レベル目標を明確にし、それ以外に気を回す必要がないコードにする。
- 小さな関数を作りすぎると、逆に読みにくくなるのでやり過ぎないようにする。
これは結構、意識していることではあります。
というのも、複雑なことをいくつも考えることができないので、自分の中で整理しておかないと、コードが把握しきれません。(家も散らかってくるとストレス感じます。。。)
ただ、結構行き当たりばったりな整頓をしている気がするので、ちゃんと計画を立ててコードを書かないといけないですね。
11. 一度に1つのことを
<重要ポイント>
- 「読みにくい」コードがあった時に、そこで行われているタスクを列挙する。
- タスクを別関数化、クラス化する。
- それ以外の部分は、関数の論理的な段落となる。
10章で、コードを整理しなくてはという話がありました。
そこへの具体的なアプローチがこの章で記述されています。
「このごちゃごちゃコード、どこから手つけます…?」→「とりあえず列挙するか…」というムーブができるのは個人的にすごく大きいと思いました。
12. コードに思いを込める
<重要ポイント>
- コードで行っていることや、ロジックを言葉にして説明してみる。
- そのコンテクストに沿った形でコードを書いてみる。
- ライブラリが提供してくれるものを知ることで、コードがより簡潔となる可能性がある。
チーム開発で大事なのは、一緒に開発する仲間との意思の疎通です。人間同士が意思の疎通を図るのに、一番良いのは会話だと思います。
分かりやすいコードについてのテクニックが、ここまでの章で紹介されていましたが、結局、文脈や実際の言葉に則ったコードが、分かりやすいということを伝えてくれています。
また、これは仲間に対してだけでなく自分に対しても有用です。
言葉にすることで、思考が整理されるんですね。
分かりにくいコードを、どうにも改善できないというときに、これを試してみたいと思います。
13. 短いコードを書く。
<重要ポイント>
- 使っていないコードを削除する。
- 過剰な機能を持たせない。
- 標準ライブラリに慣れ親しむ。
使っていないコードを削除するというのは、当然のこととして、過剰な機能を持たせない。というのは、非常に心に残りました。
サービスを作るときには、ユーザーの視点になって考えることが大事ですが、そうすると、あれもこれもと機能を付けてしまいがちです。
何か機能を加えるときは、それが本当に必要なのか、別の何かで代替できないかを考え、判断しようと思います。
14. テストと読みやすさ
<重要ポイント>
- 入出力のテストを1行で記述する。
- 分かりやすいエラーメッセージを表示するようにする。(カスタマイズも可)
- テストが、本物コードの読みやすさを阻害したり、開発の邪魔にならないよう、やり過ぎないようにする。
- テスト駆動開発については様々な議論があるが、テストがしやすいようにコードをかくことは有効。
テストを分かりやすく書く方法についての章です。
テストの充実は、プロジェクトの保守性に非常に効果的ですし、テストこそ、他の人がよく編集する場所だと思います。なので、重要性は言わずもがなですが、同時に「テストがしやすいようにコードを書く」ことの大事さがここに書いてあります。
これって、テストについて言っているようで、これまでの内容のおさらいにもなっているんですよね。いかに機能を取り出して関数化、クラス化するか。
関数化もやりすぎは良くない。という話がありましたが、この「テストしやすいように」というのは、1つの物差しとなるのではないかと思います。
まとめ
前半に引き続き、後半についても内容をまとめさせていただきました。
非常に読みやすく、ページ数も多くない本でしたが、内容はかなり濃厚でした。
新人プログラマーや、コードがうまく書けないという人には是非おすすめしたいです。
正直なところ、この本に書いてあったことが今すぐできるかと問われれば、無理だと思います。
なので、この記事と本を何度も読み返すつもりです。