お腐れ系開発における低階層知識によって幸せになるシチュエーションについて
404 Blog Not Found:マシン語読みの言語知らず の
だいたい階層の設計において、下の階層の知識がなければ使えないというのであれば、その設計は間違っている。内部実装を知らないと使えないクラスというのは、ダメOOPの代表ではないか。エンジンがガソリンかディーゼルかハイブリッドか知らなくても車は運転できるのだ。
を読んで思ったのが以下のシチュエーション。
- 戦闘員
- 隊長! 大変です! 想定したデータが取れません!
- 隊長
- …正しいパラメータを渡しているのか?
- 戦闘員
- もちろんです! デバッガでステップ実行で確認しました!
- 隊長
- ということは、このライブラリが、このシナリオを想定していないということか…
- 戦闘員
- 隊長! いますぐ改修要求を!
- 隊長
- そうしたいのはもちろんだ。が、しかしこのライブラリは客先から提供されたもので、噂によれば、開発した自称ハッカーはリリース後、一枚のドキュメントも残さずに去ってゆき、その後を継ぐものは現れず、そのスジの関係者からは「地雷」と呼ばれていたと聞く…。
- 戦闘員
- それでは納期が…。
- 隊長
- どうすればいいんだ…。
こういうのは結構普通にお腐れ系の仕事してたらあるのかなと。つまりアクセル踏んでもエンジンが回らん状況なわけです。
で、
(突然ドアが開く)
- 良性オタ
- なんかハマってるんだって?このバージョンの(某コアな部分)がこういうとき、アレな動きするのって有名なんじゃないの? このライブラリでは想定されてないみたいだから自分で foo() のかわりに bar() してから baz() すれば?
- 隊長
- …本当か?
- 良性オタ
- ほら
- 戦闘員
- 隊長…。涙でディスプレイが見えません…。
- 隊長
- 泣くんじゃない! 道は開けたのだ!
なんてことが「たまに」あったりしますし、ダメOOPつうか、ダメライブラリとかダメフレームワークが前提の開発になってる、というのは お腐れ系クローズド開発では普通に存在する光景かなとか思いました。そういうときCPUのアーキテクチャとか、カーネルの実装とかについて知識があると「その場をしのげて助かる」というのはありますかねえ。
ちなみに私は Z80 でさえ書けなかった人なので マシン語を知らない子ども達 - UEI shi3zの日記 の中の人から見ると「プログラムを書いてるつもりになってる人」なんでしょうね。でも Scheme や Haskell は書けるようになりたい思いますが、386のマシンコードは勉強するつもりはありません。単に興味がないだけなんですが、宗教戦争をする気はありません。やりたい人はやればいい。
ホントはもうちょっと違う話を書きたかったんですが、なぜかこんな話に…。
(9/13追記)そしてその後世界は…