今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

インスタンス名に命名する

クラス名ではなくて、プログラム内で動的に生成されるインスタンスを識別するために、インスタンス名の命名ルールを作った。
例えば、スレッドを生成するときに、そのスレッドのインスタンスに適切な命名をしておくと、Ctrl+BreakでThreadDumpを出力したときに、どのThreadが何をしているのか非常に見えやすくなる。
スタックトレースのメッセージにインスタンス名を含めると、例外が発生する原因が、全部なのか一部なのかひとつだけなのか、簡単に区別できるようになった。
もちろん、toString()でも分からないわけではないが、無意味なハッシュ値ではそのインスタンスが何者なのかは簡単には分からないし、クラスによってはたくさんの属性のすべてを文字列化して吐いてくれるので、その中からコンテキストに関する情報を探すのは一苦労だ。
かといって、toString()をオーバーライドしてしまうと、属性の情報を調べたくなったときに調べられなくなってしまう。
というわけでインスタンス命名する、これお勧め!