神経質な性格だが実力不足のプログラマ – 細かすぎるエラー処理でソースを汚す

Pocket

最近、なんだか愚痴ばかりの投稿が続いています。夏も終わり、秋になって、食欲もそそられる季節なのに、愚痴ばかり言っている自分に気が滅入ります。なぜなんでしょうか?「 はっ! 」 これが男の更年期というやつでしょうか?

スポンサーリンク

神経質な性格だが、実力不足のエンジニア・プログラマ

仮に、プロセスA とプロセスB のインターフェースに csv ファイルや xml ファイル(何でもいい)を使用するものとします。プロセスA が xml ファイルを出力し、プロセスB はその xml ファイルを読み込みます。

さて、このときプロセスB はどこまでそのファイルのフォーマットなどの妥当性を検証すべきでしょうか?プロセスA はどこまでファイルの妥当性の保障をすべきでしょうか?

ミッションクリティカルなシステムなどの場合は、神経質な性格という問題ではなく妥当性をがっつり検証することになると思います。そうでないシステムの場合は、どこまで検証するかは要件次第で決まってくると思います。異常フォーマットや異常値が混入しているのであれば、例外としてアプリをダウンさせたり、ダウンはさせずにメッセージを出力したりするなど、様々だと思います。

要するに要件を無視してすべての妥当性を検証するのはやりすぎコージーだと思いますが、がっつり妥当性検証をすることを否定するわけではありません。

問題は、むやみに妥当性検証コードを値の取得前にダラダラと書いてあるような、コードを書くプログラマがダメということです。エラー処理のためにナントカフラグが 5つも 6つも 1,000 行以上にわたって記述されているときは、ドライアイなのに涙がドバーッっと出てきました。実際にデータを取得している場所まで辿りつくまでに何度も迷子になりました。

「 じゃぁ、参考までにその検証コードを書いて載せてみろ! 」

と言われると辛いのですが、なるべく各言語で用意されている手法を利用するようにすることが良いと思います。例えば .Net で xml を読み込むのであれば、「 [ C# ] XML シリアライズ – 文字列と Enum の関連付け 」 のようにデシリアライズで大枠のフォーマットをチェックしてから、中身の詳細な要素をチェックするなどでしょうか?

ダメプログラマの条件

ダメなプログラムソースは誰もが見ていると思いますが、特に酷いと思うものは次のものになります。

  • コメントと処理内容が違う
  • クラス名メソッド名が意味不明
  • そもそもバカが書いたもの

根本的には自分が何をしているのかを理解しているか理解していないかは、コメントやクラス名称などに如実に表れます。自分が何をやっているのか、どこを目指しているのか理解していないソースコードは見ればわかります。

ただし、そもそも論がありまして、自分が何をするのかを理解していても適切な名称やコメントを書けないという場合は、「 エンジニアやプログラマになる能力は、現在のところまだない 」 と判断して良いと思います。

ただし、何故か世間的には 「 馬鹿でもゲームプログラマーになれますか? 」 と言った疑問を持つ人の割合が多いと思います。これが何とも不思議です。友達にそういう人がいれば、

「 バカではプログラマに限らず、どの職種にも向いていません 」

と回答してあげてください。

敢えてゲームプログラマーになるための条件を出すならば

ゲームでは特に 3D などの演算を行う必要があるでしょうから、4 × 4 の行列演算の知識や理解は必要です。ゲームだけではなくロボットにも応用が効きます。

「 ライブラリを使うから今どきは、行列演算なんてしないぜ 」 というコメントもあるかと思いますが、レベルが低いので横に置いておきます。

さて、4 × 4 の行列で何を表現するかというと、X軸、Y軸、Z軸の平行移動と、X軸、Y軸、Z軸の回転を表現できます。最近では行列は高校生はなく、大学生で履修する科目のようです。知らない方は自分で本でも買って勉強するしかありません。

しかし、旧課程でも 2 × 2 の行列までしか扱っていなかったはずです。あとは、sin、cos などの三角関数の知識も必要です。しっかり理解して、一流のゲームプログラマーになってください。期待しております。

 

(矛先を誰に向けてよいかわからないおっさんの愚痴は以上です)

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *