「良いコードを書く技術」第1章の感想
最近SwiftUI を利用したIphoneアプリをリリースしました(お気に入り貯金と検索すると出てきます)。初めてアプリをリリースできたので嬉しかったのですが、設計をほとんど考えず好き勝手にコードを書いたので非常にメンテナンスがしにくいです。趣味ならいいですがこれでは仕事で通用しないと危機感を抱いたので、コードを書く時の基本をしっかり身につけようと本書を購入しました。少しずつ読み進めているのでそれぞれの章ごとに感想を書いていきたいと思います。今回は第1章です(自分用のメモみたいな感じで書くので見てる方のお役に立つか分かりません😢)
第1章のテーマは「良いコードの定義と価値」です。まずは定義ですが、筆者は次の4つを満たすものを良いコードとしています。
・保守性が高い
・すばやく効率的に動作する
・正確に動作する
・無駄な部分がない
1 保守性が高い
「将来の自分は記憶力において、他人と同然です」と本書に書かれています。
つまり、他人が見て理解できるコードでないと数ヶ月後に自分が見直しても分からないということですね。僕もよく数ヶ月前のプログラムを見返したら、「これ何のための処理だっけ?」となることが多いので一番改善したいポイントです。分かりやすい変数名をつける、機能を分割する等を徹底して他人が読みやすいコードを意識することが大切ですね。
2 すばやく効率的に動作する
1章では詳しく書かれていませんでした。メモリ管理やアルゴリズムを意識した設計のことですね。ゆくゆくはパフォーマンスを考慮できるレベルになりたいです。
3 正確に動作する
正常な値が来るはずと決めつけずに、不正な値が来ても被害を受けないようにする。
防御的プログラミングというそうです。開発に慣れていないと、自分の頭の中にある値が来る前提でコードを書いちゃうので、エラーが発生してもプログラムが止まらない処理を書かないといけないですね。(個人的にはSwiftで強制アンラップしたら中身がnilでクラッシュ!みたいなこと結構やっていたので気をつけたいと思います。)
4 無駄な部分がない
「抽象化」することで無駄な繰り返しを避ける。(第十章で説明)
開発者が良いコードを書くこのメリット
ここでは3つ挙げられています。
・プロジェクトを強力に推し進める
・プログラマーとしての評価が高まる
・仕事に満足感や自信が持てるようになる
どれも魅力的なメリットです。プログラミングの学習を始めた初期は、エンジニアは技術さえあればいいんだ!という思考があったのですが、実際に業務を経験してみると社内の目標を達成するために何が必要か見極める力や、他の部署の人と協力するコミュニケーション力、非エンジニアの人に技術をわかりやすく説明する力等色々必要でした。
技術は目的ではなくツールであるということも忘れないようにしたいです。