Java

コンテキストクラスローダって何だ?

システムクラスローダと似たようなものに、「(スレッドの) コンテキストクラスローダ (context class loader)」というものがある。前々から名前だけは知っていたのだが、特に必要とする機会もなかったので何なのかは知らないままだった。今回、システムクラ…

用語は正しく覚えよう: システムクラスローダとブートストラップクラスローダ

ディスカッションの最中、どうも話がかみ合わないと思ったら用語の使い方が間違っていた、ということが時々ある。同じ概念を違う用語で呼んでいる場合はすぐに気づくので問題ない*1が、同じ用語で違う概念を指していると混乱の元凶になる。なので、ちょっと…

引数にも const や final を付ける

ローカル変数には const や final を付けるわけだが、関数 (メソッド) の仮引数というのは一種のローカル変数なわけで、やっぱり、const やら final やらを付けるべきだ。 C++ でも Java でもこれらの型修飾子はシグニチャには影響しないので、API 仕様が汚…

ローカル変数には const や final を付ける

変更しないローカル変数には、const とか final を付けるべきだ。そして、ローカル変数を変更しないようなプログラミングスタイルにしてもらえると、レビューが楽で助かる。 もちろん、ループカウンタなんかは const にはできない。絶対にできないわけではな…

引数チェックと assert

後輩のコードレビューをしていて、引数チェックはどういう風にするのがいいのか、みたいな話になった。 「どういう風に」といってもいろいろあるが、今日の話題は、以下の2派閥のどっちがいいのかということ: 引数チェックは常にするよ派 void methodA(final…