カレンダー

2022/06
   
  
       

広告

Twitter

記事検索

ランダムボタン

続・奥深いカレンダーの世界

by 唐草 [2022/06/21]



 昨年11月に狭いエリアに特化したカレンダーWebアプリを開発した。カレンダーなんて見慣れたものだし、カレンダーで困った経験もない。簡単に実装できるだろうと甘く見ていたら痛い目にあったのが半年前の話。
 開発して初めてカレンダーの奥深さを理解できた。作ってみるまで理解できていなかったのは、ぼくのカレンダーがいつでも真っ白なせいではない。想像以上に例外パターンが多かったからだ。
 これまでカレンダーに不自然な点を見つけては修正を重ねて、なんだかんだで毎月アップデートしてきた。そして、今日も最新版をサイレントリリースした。
 今回の修正もぼくの想定が甘かったのが原因。直したのは「その月最初のイベントが同日に複数あった場合に1個目のイベント枠の高さが複数イベント用ではなく単数イベント用になる」という奇妙なバグ。正確さを期して書くと複雑で伝わらなくなるのは承知している。簡単に言えば、複数のイベントが登録された日から始まる月のカレンダーの最初のマスだけ表示が崩れるということ。「初めからそう言えよ」とお叱りの声が飛んできそうだ。
 このバグが起きてしまったのは、人間のカレンダーの使い方とコンピュータが得意な処理手順にズレがあったせい。ぼくは人間なのにコンピュータ寄りの考え方しかできていなかった。
 コンピュータは与えられたデータを順番に処理するのが得意。データが何千、何万あろうとも文句を言わず順番に処理していく。ただし、その仕事ぶりはバカ正直。プログラムで指示しない限り、1個前に何があったとか、次を考慮して処理を変えるなんてことはできない。速いけれど融通が効かない。
 一方、人間は処理は遅いが、無意識に周囲を確認している。カレンダーに何かを書き込もうとしたら、言われなくてもまず初めに同じ日にいくつイベントが有るか確認することだろう。
 この手の気配り的な処理はコンピュータがもっとも苦手としている。と思っていたんだけれどもそうではなかった。ぼくのアルゴリズムが悪かっただけ。
 カレンダー作りを通して見えてきたのは、己の気配りのなさだった。