ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

「プログラマが知るべき97のこと」読了

プログラマが知るべき97のこと

プログラマが知るべき97のこと

ああ、これはもう知ってるってものから、知ってるけど思わずうなずいてしまうもの、また、新たな知見を得られるものなど、色々あって楽しかった。
個人的に興味深いなと思ったのは、以下のもの。

07 共有は慎重に("共有は計画的に"じゃないんですねw)

なんでもかんでも共有ライブラリにしてしまうと、逆に依存関係が邪魔になるときがある。

37 バグレポートの使い方

バグレポートには、必ず次の3つのことを書く必要があります。

・バグの再現方法(できるだけ詳しく)と発生頻度
・本来の仕様(バグがない場合の望ましい動作。こうあるべき、という自分の意見でかまわない)
・実際の動作(完全でなくても、自分の記録した範囲で詳しく書く

まあ、当然っちゃあ当然なんですが、忘れがちなので。


あと細かいところでは、DRY(Don't Repeat Yourself)に対して、WET(Write Every Time)ってのがあるんだとか、データフロープログラミングってのがあるんだとか、いろいろ。

あれ?と思った

66 いったんコンピュータから離れてみる

の中で、

文字列の中に"hh:mm:ss xx"という形式の適切な時刻情報が含まれているか検証するメソッド

を、

  public static boolean validateTime(String time) {
    return time.matches("(0[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] ([AP]M)");
  }

と実装されているのを見て、
これ、00:00:00はどうするの??と考えてしまいました。


そして、答えと思しきものがこれ。
「12:00:00 AM」って何時?
つまり、

12:00:00 AM = 00:00:00 AM

ってことらしい。
だから、

hh:mm:ss xx形式 24h形式
12:00:00 AM 00:00:00
01:00:00 AM 01:00:00
... ...
11:59:59 AM 11:59:59
12:00:00 PM 12:00:00
01:00:00 PM 13:00:00
... ...
11:59:59 PM 23:59:59

ていう対応になるはず。
1時より、12時の方が先に来るなんて、なんか分かりづらくね?

この本も読んでみたい

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (350件) を見る
Code Reading―オープンソースから学ぶソフトウェア開発技法

Code Reading―オープンソースから学ぶソフトウェア開発技法

レガシーコード改善ガイドは、ずいぶん前から目を付けているんですが、
分厚さと値段で二の足を踏んでいるんですよね。。
この機会に買っちゃうかという気がしないでもない。