既存コードを改造しようと、コードの構造を調べていた。
あるコマンドの呼び出し方法を調べようと、"comAAA1" で grep したら、とんでもない大物に出会った。
※ 情報漏洩防止の観点から、変数名、ファイル名等は適当ですのであしからず。
[AAA.h]
{ "comAAA1", funcAAA1 },
{ "comAAA2", funcAAA2 },
{ "comAAA3", funcAAA3 },
上記は、ヘッダファイルの中身。これ以上でも、これ以下でもない。
最初見た時、
なんじゃこりゃーー!!
ってなった。
「このコードだけでコンパイルが通る訳が無い」
[XXX.h]
「このコードだけでコンパイルが通る訳が無い」
気を取り直して、[AAA.h] で検索して、何故コンパイルが通るか調べる事にした。
[XXX.h]
const struct JUMP_TABLE JumpTable[] =
{
#include "AAA.h"
#include "BBB.h"
#include "CCC.h"
#include "DDDh"
};
これは……
これはもう、怒りを通り越して笑いしかでてこない。
担当者に「なぜこんなコードなのか?」と尋ねると、
「(前任者が)メンテナンス性を考慮して、機能毎に好きなようにコマンドを追加可能にしたんです」
orz
もうね、可愛そうだった、本当に。
この程度のコーディングしかできないなんて。
1年目の僕だって、こんなコードを書かなかっただろう。
いかに「動的メモリの獲得がイヤ」だからって、この書き方は無いだろう、と思うのは、僕ぐらいだろうか……。
こんにちは。
返信削除昔ならCプログラミング診断室に投稿したいネタです(^^)
TO:fukanoさん
返信削除ですね。
最近C言語は減ってきている様ですし。
しかし、いまだにこんなコーディングする人、居るのでしょうか。