パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

10月14日の北洋銀行ATM障害、特定の日時にエラーを起こすバグが原因と公表」記事へのコメント

  • 10月10日10時10分10秒以降になると発動するバグを埋め込んだことがある。
    JavaScriptの自前の日付処理の問題で、全桁2桁になると前ゼロ埋めが不要になった結果、文字列連結が数値の足算になってバグった。
    秋にプロジェクトが開始して稼働が3末だったので、開発中は全然気づかなかった。

    • by Anonymous Coward

      あーなるほど。'0'+がなくなって文字列への変換がされないと。
      桑原桑原。
       
      やっぱ型に厳密な言語のほうがいいよ(ファィっ!)。

      • by Anonymous Coward on 2021年10月27日 21時16分 (#4141067)

        処理コストは嵩むけど'0'+数値してから、右二文字ってロジックもある。
        # 入力が文字列でシステムロケールが変更されてゼロフィルされていても、されてなくてもいけて、同じく型がなく、IFが大変なbatファイルだとこっちのほうが便利。

        別ツリーのテストをさぼったからがマイナスモデされてるが、
        テストして当然の境界値チェックしてないから言われて当然ですわ。

        親コメント
        • by Anonymous Coward on 2021年10月28日 4時46分 (#4141216)

          どんな見落としに対しても後知恵でテストして当然と言うのは簡単なので情報量もないし役にも立たないコメントはマイナスモデされて当然

          親コメント
          • by Anonymous Coward

            テストケースのレビュー時に指摘してくれれば神。
            バグ発生・検証後に言ってくるならただの事後諸葛亮。

            • by Anonymous Coward

              究極的にはあらゆる不具合の未発見はテストケース不足に帰結できるからなぁ
              まあ無意味だよな

            • by Anonymous Coward

              自分なら指摘してるし、テストするからなぁ。

              JavaScriptの日時クラスは無駄にサポート範囲広いからシステム仕様でサポートする日付範囲が決まってないならテストが糞面倒臭いよ。
              日本国内限定だと、遡っても1873年以降しかサポートしないってしておかないと地獄。
              でもうるう秒は入ってこないからマシな部類だと思う。

              西暦マイナスは端折るけど、単体テストで境界値とかの
              -1/12/31 23:59:59 西暦0年直前
              0/1/1 00:00:00 西暦0年(紀元前1年)
              0/12/31 23:59:59 西暦1年直前
              1/1/1 00:00:00 西暦1年
              9/12/31 23:59:59 西暦1桁最大
              10/1/1 00:00:00 西暦2桁最小
              99/12/31 23:59:59 西暦2桁最大

身近な人の偉大さは半減する -- あるアレゲ人

処理中...