2024-02-29

閏年バグ理由

色々開発に携わってきたが大体2パターンある

Caseパターン

Case month when 1 then ~って感じのコード。thenの後にif文や更にCase文がある。この辺りに28日までとか書いてある。

ソースレビューがあったら指摘する内容だが機能していない場合はこのレベルが来る。オフショア海外に出すとマジでこんなの書いてくる。指摘するとはいはい言うけどどうすれば良いのか悩む。

アーキテクチャ次第だが単に29までに変更すれば良い場合もあるが、たまに他にも影響したりして結構絶望する。月末日取得で書いてたら説教レベル

スタパターン

大体Caseパターンロジックが考えられない場合国内外提案してくるのがマスタ化だ。発注元も何故か柔軟な対応が出来るからと賛成してくる

結果年1や月1のマスタ設定が必要になり運悪いタイミング担当者閏年を忘れてると大体起きる。賛成した人らは運用しないので気楽だ。

こっちはマスタ設定すれば良いのだが、閏年ですよ忘れていませんかチェックは無いくせに登録出来るのは翌日以降チェックはしっかり入ってたりする。

設計段階で考慮すれば良いのだがマスタは何故か新人仕事となり結果糞仕様スキル不足が重なって復旧に時間がかかったりする。もちろん新人に罪は無い。日付をキーにするマスタなんて要件で考えた奴が悪い

閏年バグ回避方法

閏年に影響されない業務フローにする。そもそも年月日を指定するか2/28の次は3/1だと明示しない限りはシステム閏年バグを起こさない。

日付チェックで存在しない日付と閏年チェックは基本だ。

もし日付チェックを自作の変なロジックで作って発生させてたら20代なら許すが30代以上は即引退して他の仕事探したほうが良い。変に生き残って上流に行くと出来上がるのは意味の分からない事を言うステークホルダーという老害で将来はコンサルとか名乗って中小零細で惨めなシステム論を語る粗大ゴミ

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん