プログラミングテクニック番外編
※このページは、知人の N 君が以前
ここ
で公開していたものです。
いつのまにか無くなってましたが、発掘したので捕獲しました。
(2002.10.09)
ここでは理論的に議論が不可能,もしくは無意味だが一般に有効と信じられているプログラミングテクニックを番外編として解説する.これらのテクニックが本当に有効かどうかは定かではない.
- 徹夜
- 納期数日前から使用されるテクニック.多用すると生命に危険を生じる.このテクニックで納期を守れる可能性は低いが,神の愛情により納期の引き延ばしという結果を生むことがある.納期後,数日は通常の生活に戻るが,第2,3納期が近づくとまたこのテクニックが使用されることがある.
- シンコペ
- フリープログラマや学生プログラマが使うテクニック.一日を26〜28時間と見做し,プログラミング時間を延長する.1週間程度で通常生活時間に戻る.24時間営業のコンビニが必須.身体に多大な影響を与える.
- 目グレップ
- 現場デバッグなどの局面で,普段と異なる環境で使われるテクニックのひとつ.これは,grepをプログラマ自身がエミュレートするテクニックで,柔軟な非正規表現を使った検索が実行できる.まれにマッチングに失敗する.
- 睡眠プログラミング
- 経験を積んだプログラマが納期前後に行う中級テクニック.リストの操作関数など,単純なモジュールの実装時に,睡眠とコーディングを同時に行うことが可能.コンパイル時に多数のsyntax
errorを引き起こす.
- 念力デバッグ
- 経験を積んだプログラマの特技.デバッグ用のコードやデバッガなしに,気合いのみでデバッグを行う.理論的な考察は不可能だが,納期後の現場デバッグ状況でよく見られる.
- つぶやき
- プログラマの初級テクニック.コーディング,デバッグすべての局面で,無意識のうちに思考の断片を口に出す.このテクニックを駆使し,思考を整理し,難局を打破する.
- おたけび
- プログラマの必携テクニックのひとつ.原因不明のバグの原因を発見した時などに使われる.あまり役に立たないが,周囲のプログラマの集中力を低下させることが可能.
- 現場プログラミング
- 経験を積んだ組込みプログラマの高等テクニック.複数の仕事を抱えてにっちもさっちもいかなくなった場合に有効.納期当日になって現場にハードウェアを
納品してから,現場でデバッグと称しておもむろにプログラミングを始める.
- 現場デバッグ
- 経験を積んだ組込みプログラマのテクニック.納期前日にコーディングを済ませ,納品後現地でデバッグを行う.さらなる経験を積むことで現場プログラミングが可能となる.
- ボトムアップ
- 納期直前に発せられる言い訳のひとつ.上司に進捗状況をチェックされる場合などに,「ボトムアップなんで,下請け部分はできているのですが,見た目は進んでいません」などと使用される.
- トップダウン
- 上司に進捗状況を毎日のようにチェックされる場合などに,使用するテクニック.この場合まず見た目から入るので,納期前後までなにもできないプログラムとなることが多い.
- オープニングタイトル
- 余裕のある納期の場合に使うテクニック.設計に凝っているうちに時間が経ってしまった場合などに,間に合わせとしてオープニングタイトルを出す部分をプログラミングする.最終的にタイトルだけ立派なプログラムが完成する.
- 仮想出張
- ある程度の(社内での)地位を得たプログラマのテクニック.複数の納期を抱えたプログラマが自ら缶詰状態へ移行するために,仮想的に出張する.
- 「完璧」
- プログラマの必携テクニック.プログラマが最終局面で発する一声.通常,一度で本当に完璧なプログラムとはなっておらず,連続して数十回発せられる.発するプログラマの経験や地位に応じて,周囲に与える影響が異なる.経験を積んだハードウェア設計者とプログラマでシステムを組む場合,お互いが「完璧」と発しあい,責任のなすりあいを行う光景が見られる.
- 深い愛
- 組込みプログラマの中級テクニック.プログラマ本人以外がテストを行いうまく動作しないプログラムを,本人が深い愛とともに操作すると期待通りに動作させることができる.デバッグ中のプログラムをROMに焼く時,あるいはソケットに差す場合にも有効.
- 愛のウェーブ
- 深い愛の高等なもの.本人が直接手を下さずとも,本人が愛を込めて祈ることで,プログラムに期待通りの動作を強制する.よほどの高プログラマでないかぎり,複数のプログラムへ愛のウェーブを送ることができないため,ほとんど役に立たず,後になって苦労する.
- 納期電波 (ノビロー光線)
- 高プログラマの最終テクニック.納期前日に「延びろ,延びろ」と無意識のうちに念じると,納品先からの連絡が入り,納期が延びる.