【読書ログ】プリンシプルオブプログラミング
こんにちは。株式会社ヘッドウォータースの新卒1年目の山尾弘大と申します!
今回は「リーダブルコード」や「Webを支える技術」と一緒に購入した「プリンシプル オブ プログラミング」を読み終えたので、その感想をZennにログとして残そうと思います。
本書を読もうと思った経緯
自宅に積読してあり、案件に配属される前にプログラマとしての基礎知識を学びたいと思い、読み始めました。
記事を書く目的
この記事の目的は2点あります。
・「プリンシプル オブ プログラミング」を読了した感想を記録し、個人的な読書ログとして残すこと。
・新卒エンジニアやプログラミング未経験者に向けて、チーム開発における心構えや考え方を共有すること。
引用と感想
P68 「コミュニケーション」
コードで良好なコミュニケーションを取るには、コードを書いている時、他の人のことを考えるようにすることです。新人の頃はどうしても、コンピュータに対して正しい処理を行わせることの方に意識が囚われてしまいます。
そこで視点を切り替えて、他の人はこのコードを見て、どう感じるだろうかと考えるようにします。すると、問題と解決策について、新たな視点から見直すことができます。
私を含め、個人開発を中心に行ってきた方は、他者にコードを読まれる意識が希薄な状態で、コードを記述しているのではないでしょうか。
私も本年度の技術研修を振り返ると、コードの可読性よりも、アプリケーションの機能性に重点を置いた開発になっていました。コードの構造や可読性が二の次になり、結果として「汚い」コードを生み出していました。
しかし、今後はチーム開発が当たり前になることを考えると、この姿勢は改めなければいけません。そのため、日々の学習を通じ、他者が理解しやすく、修正しやすいコードを書いていきたいと感じました。
P208 「技術的負債」
プログラミングには2つの道があります。1つは、時間がかかっても、きれいなコードを書く道です。もう一つは、素早く汚いコードを書く道です。十分に時間があれば、常に「時間がかかっても、きれいなコード」を選択すべきです。一方、時間がなかったり、修正の緊急度が高い場合には、「素早く汚いコード」を選択する場合もあります。
ただし、「素早く汚いコード」を選択した場合、このソフトウェアは、いわば「負債」を抱えることになります。これを技術的負債と呼びます。
これは個人的な意見ですが、「技術的負債」を減らすためには、タスク管理能力が重要だと思います。というのも、私の場合、一日でできることを過大に見積もり、あれもこれもと欲張ってしまうことがよくあります。結果として、どの作業も中途半端になり、きれいなコードが書けないことが多いです。
そのため、技術的負債を減らすためにも、タスク管理能力を向上させ、優先度の高いタスクに集中し、質の高いコードを書くことが重要だと感じました。
P275 「割れた窓の法則」
ビルのような建物に、長時間修理されることのない割れた窓が一枚でもあると、ビルの住人に「投げやりな感覚」が植え付けられていきます。ビルの状態など、誰も気にもかけないようになるのです。すると、次の窓が割れます。さらに、ゴミがばら撒かれ、散らかるようになります。落書きをするようにもなります。
たった1枚の割れた窓とはいえ、それを放置すると、建物全体に対する深刻な破損が起こり始めるのです。
こちらの文章は、コードをビルに例えることにより、コードの品質管理の重要性が理解しやすい文章だと思ったので、つい引用してしまいました。
まとめ
本書が一貫して伝えたかったメッセージは、「コードを清潔に保つ」ということだと思います。ここでいう「清潔」とは、適切な命名をし、可読性を上げることや関数やクラスを適切な粒度で分解し、再利用可能な状態にすることなどが挙げられます。
本書からは、コードの品質を高く保つことが重要であり、汚いコードを放置すると開発全体に影響が出ることを学びました。また、個人開発とチーム開発は別物であり、その差を早く実践を通じて学びたいと感じました。
今後は、日々のコーディングを継続していくことはもちろん、タスク管理能力も高めたいと思いました。
タスク管理能力を高めるために、「エッセンシャル思考」という有名なビジネス書を購読し、勉強したいと思っています。感想はまた、読書ログとして記述します。
今回は最後まで読んでいただきありがとうございました!
Discussion