ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

マジックナンバーは廃止すべき

プログラム上のマジックナンバーはろくなことがないですね。
ウィキペディアにまで書かれていました。
マジックナンバー (プログラム) - Wikipedia

f:id:AJYA:20160107055313j:plain
photo credit: return undefined; via photopin (license)

なぜそう思ったのか

僕が作っていない既存のプログラムを転用して新しいプログラムを作成する際に、マジックナンバーの存在に気がつかず、正常に動作しないためにマジックナンバーの存在に気がつきました。
後々になってデータベースに必要な情報が書き込まれず、手作業でデータを追加する羽目になりました。

定数として定義して、置き換え実施

作った当人は、転用されないプログラムと思ったのか、一括置換すればいいと思っていたのかもしれません。
僕も、転用されないプログラムという意識は働きそうですが、ソースコード上、後々すぐには何の数字かわかりません。

手間はかかりますが定数定義をして、定数を利用するように修正しました。
これで後日ソースコードを見たときに、悩むことはないと考えています。