8.1 プログラムは読み物

(1/1)
女性のお医者さんの表情のイラスト
プログラムは、論文と同じ論理的な読み物である。そして、論文と同じで、査読(レビュー)されたり、ライブラリ参照されたり‥‥最初に書いたときより、むしろ稼働後に読まれることの方が多い

バグ対策、機能改良‥‥仕様書や設計書を読めばできることになっているが、現実問題として、プログラムそのものを読まないと作業が進まないことが多い。とくに業務プログラムともなれば、最初にプログラムを書いた開発者と、バグ対策するサポート技術者が違う人であることが多い。プログラマが仕様設計をコードに落とし込んだ意図を汲もうと、サポート技術者は時間をかけてプログラムを読み込まなくてはならない。
自分だけが使うアプリにしても、1週間たつと、なんでそんなコードを書いたのか思い出せないことが多い😓

というわけで本章では、自分が/他人があとで読んでも分かりやすいプログラムの書き方を紹介していく。これという正解や定石があるわけではないが、読みやすいプログラムの原則を覚えていっていただければ幸いである。
そして、読みやすいプログラムを書くことはバグを防ぐことに繋がる。仕様設計に内在するバグ(仕様バグ)はどうしようもないが、少なくとも仕様設計を素直に読みやすくプログラムにすることで、コーディングレベルのバグは予防できるのだ。

目次

読みやすいプログラムの原則

これから各節で紹介する原則をまとめて掲げる――。
  • 入力データや連携データをバリデーションチェックする。
  • 条件制御は、小さな部分集合から大きな部分集合へ向かって順に並べる。
  • 条件が多い場合は、関数として分離して単体テストで抜け漏れを防ぐ。
  • 各々の条件が独立している場合は、配列を利用して見通しをよくする。
  • ループ制御のカウンタは振動しないものを選ぶ。
(以下、執筆中)

コラム:確証バイアス

ウェイソン問題
プログラムを書いているうちに確証バイアスに囚われることがある。無意識のうちに自分にとって都合のいい情報ばかりを集めてしまい、反証情報を集めなかったり無視する傾向のことだ。

最近は、ググったり、チャットボットに聞くと、そこそこ利用できるコードが返ってくる。便利な世の中になったものである。それらのコードを埋め込んで動かすと、まあ、だいたい設計書通りの動きをする。
だがしかし、本当に仕様書の一言一句を間違いなくチャットボットに伝えたろうか。チャットボットが解釈ミスをしていないだろうか。
そんなときは、反証データを投入してみる。正しくエラーを吐けば、テスターに渡しても大丈夫なレベルだ。もしそうでなければ、無限ループに陥ったりしたら‥‥あなたは確証バイアスに囚われている可能性が高い。
そういうときは、先輩プログラマにレビューしてもらおう。

参考書籍

表紙 読みやすいコードのガイドライン
著者 石川 宗寿
出版社 技術評論社
サイズ 単行本
発売日 2022年10月22日頃
価格 2,750円(税込)
ISBN 9784297130367
読みやすく、理解しやすいコードの答えは、目的や時代によって千差万別で、1つのアプローチではカバーしきれません。どんな状況にも対応するために必要なのは、可読性について体系的に理解を深めることです。
 
(この項おわり)
header