2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】マジックナンバーを避ける重要性

Posted at

はじめに

お疲れ様です。Tomita Kentaroと申します。今回は、私がマジックナンバーを使ってしまい、わかりづらいプログラムを作ってしまった反省として、この記事を書こうと思います。

マジックナンバーとは何か?

プログラムに書かれた数値で、本人以外には何の数値か、わからない様なものの事です。
例えば、

animal.py
animal("dog",1)
animal("cat",2)
animal("dog",3)
animal("cat",1)

この様なプログラムで 1,2,3が何を表しているか、わかりません。この1~3の数値がマジックナンバーと呼ばれるものです。

なぜ避けなければいけないか?

確かに、個人で作成する分には、何も困ることはないかもしれません。しかし、チームで作成するとなると、一緒にコードを作ってくださる方々は勿論、レビューしてくださる方にもわかりやすいコードを書かなくてはいけません。そのため、このマジックナンバーを避ける必要があるのです。

解決策

では、どうしたら良いか。今回、私が行なった解決策は定数を使うことでした。

animal.py
import const

animal("dog",const.OWNER_JOHN)
animal("cat",const.OWNER_MARY)
animal("dog",const.OWNER_JACK)
animal("cat",const.OWNER_JOHN)
const.py
OWNER_JOHN = 1
OWNER_MARY = 2 
OWNER_JACK = 3

以上の様に書き直すことにより、数値が、その動物の飼い主を表している事を察しやすくなったのではないでしょうか。

最後に

これからは、特にチームで作るプログラムには、マジックナンバーを使わない様に気をつけます。また、癖をつけるために、個人で書くプログラムも色々と注意して書く事を心がけていきます。今回は、ただの備忘録のため、内容が少ないですが、以上となります。また、プログラムの書き方で「ここも注意した方がいいよ」みたいなものがあれば、コメントで教えてください。よろしくお願いいたします。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?