この「いわいまさかチャンネル」で人気(?)の記事のひとつに
がある。
まぁ、それにも関連した話題。
例えば、あるプラットフォーム(=ある機械、あるマシン)がある。仮に名前をトンポンとする。
トンポンはマシンの制約上、動画の2本同時再生はしない。動画を再生は常に1本。
このときのその動画に関係したプログラムコードのプラットフォーム別対応コードを
書き方1
if(マシン==トンポン){
1本しか再生しないのでゴニョゴニョ();
}
と書いてしまうと、例えばあとでさらに対応マシンが増えたときに、メンテしにくいコードができあがる。
ここで主張したいのは、上記のような書き方でなく
書き方2
if(マシン==トンポン){
一本作戦=決行;
}
if(一本作戦==決行){
}
がいいんじゃないということ。
新マシン、ナンポンでも1本作戦だとなったとき
書き方2なら
if(マシン==ナンポン){
一本作戦=決行;
}
部分を追加すると、完了となるが、
書き方1だと、
元ソースの
if(マシン==トンポン){
********???
}
・*******のところがどういう意味かをまず探るところから始まる。(1本用だけでなく、他の発色に関するコードもよもやはいっていはしまいか、とか)
・あるいは一本用ゴニョゴニョコードはどこに書いてあったけ?と探しあてなければいけない。(はては、「そのコードは、ここに書いてありますよ、なんで知らないんですか?」などと主張するやからが現れたり。)
という、げに恐ろしい事態がおとずれる。
おーこわっ。
というか、実際のコードはもっともっと複雑になるので。
例はifで書いたけど、#if、#ifdefならなおさら。
書き方1はif文の内容・書き方が飛躍しちゃっているのだ。