始めよう!UTC生活~2日目~
過去を振り返っていたらクソ遅い時間になってしまった?
大丈夫! UTCで生活すれば、まだ17時台だって言い張れる!! 夕方さ!!!←
事の発端
今日は、そもそも何でこんなことを始めようと思ったかについて記しておこうかな。
俺自身は何のことはないSEなんだが、システム作る中で日付とか時間とかは避けては通れない道だ。
誕生日を入れる、実行時刻を予約する、現在時刻と比較する……とかとか。
もちろん、向上心のある企業やチームでは「製品の海外展開も視野に入れます!」とか言っちゃうわけだよ。言うだけならタダだしね。
しかし、そうすると1つ疑問が湧いてくる。
その時刻は、ドコの時刻なんだ?ってな。
システムと感覚の乖離
日本国内で動かす分にはJSTでの管理ができてりゃ充分だ。
……なんて言えてた時代も、実は結構昔なんだ。
今はクラウド化だなんだで、システムの実行環境を開発元が掌握してない場合が往々にしてある。
日本で動いてるように見えるが、実際はノースカロライナのサーバーが処理してる、とかな。(流石に通信経路が長いから、こんなケースは滅多にないが)
「日本で深夜01:00に予約した処理が、なんで夕方の繁忙期に走ってんだ!?」
「そりゃロンドンのサーバーで処理してっからな」
勿論、こんなことが起こる確率は少ない。だが無いとは言い切れないんだ。
で、そんな時に、世界各地で異なる『時刻』とかいう厄介なものを「どう扱ってるのか」ってのを把握してるSEは……まぁ、多分、そんな多くない。
ただし、多くのSEは『時刻』を「どう扱わせるか」を決めてやることはできる。
標準という基準
俺(の属するチーム)は、時刻を一括で協定世界時(UTC)で管理する方針にした。
何せ協定世界時だ。世界のどこ行っても文句が出ない。だって世界が決めたんだもん。
どこにいてもどんなときもUTCで動く。UTCで入力して、UTCで処理する。
UTCは変わらない。だって世界の標準だから。
とまぁクソ長いモノに巻かれることで、俺達は当面の問題を回避した。
システムは変な時刻に変な動作をすることはなくなり、安寧の時が訪れた(予定だ。だってまだ開発中だし)。
問題は、機械の側に、人間が寄り添う必要があったってことだ。
今何時ですか?
システムがちゃんと動いてるかを確かめるために、多くのシステムでは実行ログを吐き出すようになっている。
大概の場合は、このログには「いつやったか」という時刻が記載されることになる。
……察しの良い諸君なら、もうお分かりだろう。
システムがUTCで動く以上、ログに出された時刻もUTCなんだ。
日本人の感覚で「この辺の時間帯の処理結果をくれ」というと、システムさんは「そんなものはない」だったり、あるいは全くズレた結果を返してくる。
で、察しが悪くなければそこで気付く。俺の話し相手は日本人じゃねぇなってことに。
結局のきっかけ
俺達のシステムに感覚を合わせようなんて考えはこれっぽっちもなくて、単純に面白そうだからやってみるかと思っただけだ。
相応の不便はあるだろうが、1ヶ月もすれば慣れるだろうという考えもあったしね。
時間軸ごと視点をずらす、この実験がどんな推移を辿るのか、もうしばらく経過観察してみようと思う。
ま、以降はこんなかたっ苦しい内容ではなくなるだろうけどね。
君が実に酔狂な、その辺の一般人をつかまえて月一で飯を奢るような人間なら、そこの『サポート』というボタンを押してみてもいいだろう。