RSS

 

RSS


この「いわいまさかチャンネル」で人気(?)の記事のひとつに
プ:#ifdef #ifは使っちゃダメ
がある。

まぁ、それにも関連した話題。

例えば、あるプラットフォーム(=ある機械、あるマシン)がある。仮に名前をトンポンとする。

トンポンはマシンの制約上、動画の2本同時再生はしない。動画を再生は常に1本。

このときのその動画に関係したプログラムコードのプラットフォーム別対応コードを

書き方1
if(マシン==トンポン){
    1本しか再生しないのでゴニョゴニョ();

と書いてしまうと、例えばあとでさらに対応マシンが増えたときに、メンテしにくいコードができあがる。

ここで主張したいのは、上記のような書き方でなく

書き方2
if(マシン==トンポン){
  一本作戦=決行;


if(一本作戦==決行){
    1本しか再生しないのでゴニョゴニョ();

がいいんじゃないということ。


新マシン、ナンポンでも1本作戦だとなったとき

書き方2なら
if(マシン==ナンポン){
  一本作戦=決行;
}
部分を追加すると、完了となるが、

書き方1だと、
元ソースの
if(マシン==トンポン){
   ********???

・*******のところがどういう意味かをまず探るところから始まる。(1本用だけでなく、他の発色に関するコードもよもやはいっていはしまいか、とか)
・あるいは一本用ゴニョゴニョコードはどこに書いてあったけ?と探しあてなければいけない。(はては、「そのコードは、ここに書いてありますよ、なんで知らないんですか?」などと主張するやからが現れたり。)
という、げに恐ろしい事態がおとずれる。

おーこわっ。
というか、実際のコードはもっともっと複雑になるので。

例はifで書いたけど、#if、#ifdefならなおさら。

書き方1はif文の内容・書き方が飛躍しちゃっているのだ。


  • コメント (0)
  • トラックバック (0)
トラックバックURL :
http://www.iwai-masaka.jp/tb.cgi/54783