著作一覧 |
ここから。
順に読んでいっていきなり不思議に思う。っていうか、大域脱出は使わないのだろうか?
思い出してみると、Cでは一回しか使ったことないけど(フレームワークが呼び出したアプリケーションが強制退出するために呼び出す関数としてlongjumpする関数を提供した。もちろん、あらかじめフレームワーク側でsetjumpしておく)。
空whileだのの理屈でいくと、こんな感じだろうか?
ErrorType e = ERROR_NONE; // なんかのenum値 while (0) { // 6/7追記: これは間違い。doでなければいきなりスキップされる if (foo() != SUCCESS) { e = ERROR_FOO; break; } ... } switch (e) { case ERROR_FOO: throw new FooError(); case ... } return SUCCESS;
スタックトレース情報が無駄になるなぁと思う。
というか、eという状態変数は無駄だと思う。
というか(前提とした場合)、enumと対応する例外クラスというのはバカ丸出し(なので、さすがにこういうのはあり得ないか)。
と考えると、スローはどこからでもOKなのだろう。であれば、returnだってどこからでもOKじゃん。
でも、OKじゃないからwhile使ったりしているという前提となるのだから、……どうやるんだ?
で、最後までいくとまさに最初にガンガン例外を投げる話に行きつく。どうみてもwhileが意味不明だ。
意味不明なものというのは、たいていの場合、文化だ。たとえば、ちょんまげとか辮髪とか。文化外から見ればただのバカ丸出しだが、本人たちにとっては存在証明だったり。
コードは文化なのだなぁ、とつくづくと思う。
ならば、それはそれで良いことなのだろう。
世界中の誰もが魅了されるようなWebアプリケーションを開発し、公開する。
しかも、仕様から、細かいリクエストが山ほど来るように作る。日記とかBlogみたいに、ある程度ローカルで書きこんでから投げるようなのではなく、ひとことふたこと書いてすぐサブミットみたいなやつ。
ここまでできたら、終わったも同然だ。というか、ここまでが一番のハードル。
あとは、人気が出まくったところで、これはStrutsを使って開発したことを明言する。もしかしたら規約の表示画面だけかも知れないけど、使っていることについては嘘でないのでOK。突っ込まれたら、「一部は他の技術も取り入れている」とか言えばOK。まったくもって嘘ではないし。
そのうち負荷に耐えきれなくなる。そうしたら、自然とシステムが劣化するに任せる。時々、処理を変えてみたり。なにか中の人がいろいろ頑張っています感が醸せればOK。
そのうちに、実際にはそのシステムがどのように構築されたかは中の人以外は、知りもしないけど、なんとなくStrutsダメダメという雰囲気が利用者の間で広まる。
今ここ。
ジェズイットを見習え |