見出し画像

【書評】プリンシプルオブプログラミングを読んでプログラマとしての心得を学ぶ

今回は上田勲さんの「プリンシプルオブプログラミング」をご紹介します。

実務経験が浅いプログラマに向けた
「より良いコード」を書くための原理原則がまとめられた
1冊となっています

どこに機能を追加したらいいのか迷う
しばらくして見返すと読みにくいと感じる
コードを修正したら予想外のところに影響が出る

といった駆け出しプログラマは
今後のソフトウエア設計の際に必要な
心構えとして一読しておきたい書籍となっています。

概要

「プリンシプルオブプログラミング」は、
2016年3月29日に発売された書籍です。
全304ページ。
1回ですべての原理原則を理解することはできないので
何度も見返すことが必要となります。

本書は以下の流れで説明されていきます

コーディングする際に心掛けたい原理原則を紹介
なぜその原理原則が必要か?が解説されている
どのようにして活用するのか?が解説されている

本書は具体的なコードが一切記載されていません。
その代わり、1つの原理原則つき関連書籍が記載されてますので
より詳しく知りたい方は合わせて購入するとよいでしょう。

著者

上田勲(いさお)
横浜国立大学経営学部卒。キヤノンITソリューションズ勤務。Webアプリケーション自動生成ツール「Web Performer」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる
(Amazon商品リンクより)

本書の目次

プロローグ 本書の読み方
第1章 前提―プログラミングの変わらぬ真実
第2章 原則―プログラミングのガイドライン
第3章 思想―プログラミングのイデオロギー
第4章 視点―プログラマの観る角度
第5章 習慣―プログラマのルーティーン
第6章 手法―プログラマの道具箱
第7章 法則―プログラミングのアンチパターン

「プリンシプルオブプログラミング」を読んでみて

結論

本書が記す「最高のコード」の定義とは

拡張方法が多く存在し
余分な要素が存在せず
読みやすく
理解しやすい

コードです。


そんなもんわかってますがな…

口で言うのは簡単ですが、
実際コーディングするとなると難しいものです。

だからこそ本書をデスクの脇に置き、
原理原則を意識し、1つ1つ自分のものにすることが望まれます。

やはり経験を積むのが重要ですね。

しかし、私のようなプログラミング初心者の方でも
今から意識し始めることのできる原理原則が
「プリンシプルオブプログラミング」には掲載されています。

それをご紹介します。

コピペ厳禁

私もついついやってしまうコピー&ペースト
しかし、より良いコードを目指すには同じコードを重複してはいけません。

どうして
なぜコピペがだめなのか?
それはコード修正が困難になる点が挙げられます。

コード修正が困難な理由は以下の通りとなっております。

プリンシプルオブプログラミング1


どうすれば
関数化、モジュール化、定数の定義など抽象化することによりコードの重複を避けることができます。

命名

プログラミング初心者の方は「命名」最重要課題として認識し、
慎重に取り組みましょう。
命名はコードを読む人への「UI」です。
適切な命名がされているコードは、意図が伝わり明確に理解できます。

どうすれば
短いコメントと考える
「効果」と「目的」を説明
誤解されないようにする
検索可能なものにする

例えば
「音声を用いてソフトウエアを操作する機能」という説明文から名前を考えます。

×音声認識機能
操作の部分が抜けている

△音声操作機能
音声と機能の関係が不明

△音声コントロール機能
コントロールを制限と認識する

○音声命令機能
音声で命令するのがわかる

対称性

プログラミングにおける対称性とは
「同じ考えなら、コードのどの場所で現れても、同じように表現される」

つまり、「グループ内のレベル合わせ」です。

どうして
他の部分も類推できる。

対称性の追求は重複を除去するための準備作業にもなります。
似たようなコードが複数の場所があった場合、
対称的にすると同じものは同じように表現されます。
つまり、似ている部分がくっきり浮かび上がり捉えられるようになります。

どうすれば
同じ種類は同じように表現する
あるグループにある関数は同じ引数をとる
あるモジュール内のデータはすべて生存期間が同じであるようにする
ある関数内で、呼び出す関数の抽象度は同じレベルとする

まとめ

「プリンシプルオブプログラミング」を読んでみて

ソフトウエア開発は必ず変更がある
読む側の視点にたつ
シンプルなコーディング
を常に心掛けておくことが重要です。

上記3点を意識しつつ
初心者が取り組むべき最初の原理原則は

コピペ厳禁
命名
対称性

「プリンシプルオブプログラミング」をデスクの脇に置き
1つ1つの原理原則を吸収しながら経験を積んでいきましょう!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?