【揺花草子。】[#4481] テスト計画。
Bさん「昨日は我々【揺花草子。】の記事配信先の1つである
アメブロさんにおいて、記事当行の予約日時指定フォームで
時分秒まで指定できる仕様だと言う話をしました。」
Aさん「んん。そうだね。けっこう驚きの仕様だよね。」
Cさん「その『けっこう驚き』って言う感覚は、
界隈の人にしか割と伝わらないかも知れないわ。
我々の前提知識的と言うか基本常識的な範疇から言えば、
こう言う Web システムの裏で動いている OS は
一般的には Linux など UNIX 系OS であって、
記事の予約投稿の実行などと言った定時実行などのタスク処理は
cron などで実行されると考えるのが普通よね。」
Aさん「すごいシステム寄りの話するじゃないですか。」
Bさん「で、この cron って、指定できる最低単位って『分』なんだよね。
もちろん呼び出すスクリプト側の処理で秒単位でなんかやるとか
seq コマンドと組み合わせるとかそう言うやり方はあるにはあるけど、
そこまでして秒単位で記事を公開するニーズって
本当にあるのかなと言うのと、
そもそもほんとに秒単位で公開ってうまくいくのかな?って言う
単純な疑問がある。」
Aさん「うーん・・・。」
Cさん「そう言う意味で我々界隈では秒指定ってけっこう意外と言う
見解になるって事よね。
もちろんアメブロさんのバックエンドが
秒単位のスケジューリングに対応した
ものすごいリアルタイム性の高い専用 OS と言う可能性も
当然にあるわけだけど、まあ一般論としてって事でね。」
Aさん「はぁ。」
Bさん「で、ここで実際にやってみるのはちょっと敷居が高そうなので、
ちょっとした思考実験です。
ある時刻、まあ 00:00 でも 01:00 でも 12:00 でも 04:02 でも良いんだけど、
その時刻に1秒刻みで5個の記事を投稿するよう
アメブロさんで事前設定しておくとする。」
Aさん「4時2分って言う絶妙にインフラの人みたいな発言ね。」
Cさん「分かりやすく記事タイトルに
『04:02:00』『04:02:01』『04:02:02』『04:02:03』『04:02:04』
って付けておくと良いかもね。」
Aさん「ふむ。」
Bさん「しかして迎えた 04:02、想定だと1秒ごとに記事が立て続けに
投稿される事になるはずですね。」
Aさん「だね。」
Cさん「ブラウザのリロードのタイミングとか
タイムサーバとの同期具合などにも左右されるから
その5秒間の間にブラウザをリロードして本当に漸次的に
記事が増えているか確認するのは難しいと思うけど、恐らくは
『04:02:00』『04:02:01』『04:02:02』『04:02:03』『04:02:04』
の順に記事が並ぶ事になるでしょうね。」
Aさん「そう思います。」
Bさん「じゃあここで、逆に、
『04:02:04』『04:02:03』『04:02:02』『04:02:01』『04:02:00』
と言う順番で記事を作成して予約投稿したらどうなるだろうか?」
Aさん「んっ・・・つまり時刻が若い方を先に投稿すると言う事?」
Cさん「その通りよ。
さっきの例では1秒ごとに記事が順番に並んだわけだけど、
それは単に『同じ時分に公開される記事が登録順に並んだだけ』
ではないかと言う仮説ね。
だから、厳密に秒単位で指定した記事が本当に秒単位で公開されるかを
検証するために、敢えて時間が新しい方から登録すると言うわけ。」
Aさん「なるほど・・・。」
Bさん「これでね、ちゃんと
『04:02:00』『04:02:01』『04:02:02』『04:02:03』『04:02:04』
の順に記事が並ぶんだったらなるほど確かに秒単位、
少なくとも内部的には秒単位で記事をソートしているんだなと言う
証明になる。
でも、そうではなく、
『04:02:04』『04:02:03』『04:02:02』『04:02:01』『04:02:00』
の順に記事が並ぶんだとしたら、記事投稿時に指定できる秒は
実は内部的には全く意味を持っておらず、
ただ入力できるだけと言う以上のものでなく、
厳しい言い方をすれば『誤った UI』『誤解を生む UI』
と言う事になる。」
Aさん「なるほど。
秒指定ができるのにそれが有効に働かないとしたら
それは秒単位での公開と言うニーズに応えられていない
ユーザーの期待を裏切る UI だと言う事だね。」
Cさん「そう言う事ね。
ユーザーニーズは場面場面によって異なるから
UI/UX はいろんな力学によって正解が変わり得るんだけど、
こういう時刻と言う絶対的な指標が正しく扱えないとすれば
それは明確に不具合と言えると思うわ。」
Aさん「うーむ・・・。」
Bさん「『そこまで言うならお前ら試してみれば良いだろが』
ってアメブロさんに怒られそうだけど。」
Aさん「それは確かにそうなんだけどね!!???」
そう言う検証は開発者サイドでやって欲しい。