らんだむな記憶

blogというものを体験してみようか!的なー

社畜ちゃん

社畜ちゃん台詞メーカーなるものを最近よく見る。
試してみるとなかなか面白そうである。どういう仕組みになっているのだろうか?

$(function () {
    $("#XXX").click(function () {
        ...
    }
}

か。DOMツリーが構築された後に、onclickハンドラを置換してるんだな。
実際にはformのsubmitを叩いてPOSTメソッドで飛ばすという昔からの方法なんだ。
その後、結果ページへのGETが発生してるけど、cookieとかで関連付けてるんかな?
最近のHTML(違)は分からんな...。Webアプリ難しい...。
背後でphpが動いているのか?とか適当な推測で濁す。

jQuery:jQueryを実行する時のready()の記述方法 | rainingにもあるものの、jQueryのreadyハンドラ相当の書き方は何種類かあってよく分からんなぁ。

【JavaScript】記述方法別の実行タイミングについて - Qiitaから推測すると、根っこではDOMContentLoadedに対するイベントハンドラを仕掛けているのかな?jQueryは圧縮かかってて素晴らしく難読であるが、DOMContentLoadedで検索すると見つかるし、まぁ、きっとそういうことなんだろう。最近の(?)ブラウザ内のJavascriptエンジンの組み込みイベントにはこういうのもあるんだな。Web界隈は速くてついていけない。

細かいことはさておき、formデータの文字列を絵に重ねて埋め込んで表示するだけだがなかなか面白い。

さて、前置きが長くなったが、メインはここからだ。
バグが上手い具合に重なって正常に動作するプログラム...」という素晴らしいネタが作成されているのを見た。これは辛い。実体験としてあるからなお辛い。
スレッド間通信でスレッドXからイベントAを生成・送信するはずが、何故かAのコピーのA'が生成送信され、受けてスレッドY側で、A, A'の順で受信するが、うまい具合に後発のA'がスレッドY内のとある部位で捨てられて、後段にはAだけが届く。結果、X->Yの通信はあたかもイベントAだけであったかのようになって辻褄があうという具合だ。

A'の生成を阻止するとか途中で捨てるとかすれば良いじゃないかという勢いでリファクタリングもどきをかますと、途端に「イベントA'の無限待ち」が発生してデッドロックとかあまりに素敵過ぎて絶望した。
折角の "修正" commitを "デグレ" させて動作するように戻すとか屈辱的ではあるのだが、商用アプリは動いてなんぼなので、まずは動作せんことには話にならん。まさかスパゲティに突入して根本から全部駆逐するなど、不夜城まっしぐらだからね(´Д`;;;
不夜城とは ─ よく わかるかもしれない IT・コンピュータ 用語辞典 [真・コンピュータ用語辞典]

こういうのは「プログラマには一定の資格試験を」とか「情報処理試験でかくかくしかじかの試験にパスすることを義務付ける」とかでは到底解決するとは思えない問題で悩ましい。(真性不夜城なとこでは特にね...。"動いてなんぼ" だしね...)