Effective Java 第8章 プログラミング一般 (53 - 56)

なんかかなり間が空いた気がする…… なのでちょっとがんばる。

項目53

リフレクションは利点を行かせる部分だけで使いましょう、という項目。(曖昧だなー)
普通のプログラムを作るなら、あまり使うことはないと思う……
リフレクションを使わなくても出来ることを、リフレクションでやってしまうと大きな代償が求められるかも。
まあ、実行時にごにょごにょするようなコード多く書かないといけないなら、そもそもJavaは選ばないような気がする。

項目54

パフォーマンス改善の為にネイティブメソッド(JNIとかJNA)を使うのはやめましょう、という項目。
JVM1.3以降はかなり高速化されたので、パフォーマンスの為にネイティブメソッドを使うのはメンテとか面倒になるだけ。
その他に移植性が低くなるとか、バグがあった場合にメモリ破壊したりとか。
よほどのことが無い限りはJavaで書きましょう、ってことか。

項目55

速いプログラムより良いプログラムを書くようにしましょう、という項目。
早いうちからパフォーマンスを気にして最適化してしまうと、後から拡張しにくくなったりいろいろ弊害がでるとか。
念入りに設計して、わかりやすく簡素な実装のものが作れて、それでもパフォーマンスが気になって初めて最適化を検討する時期。


……早いうちに最適化したせいで作りにくくなったのは何度か経験したなあ。
未だにやってしまうのが困りものなんだけど…… それでも最近はパフォーマンスを無視して作れてる気がする。
この点はちょっと気をつけて、コードを書いていこうかと。

項目56

命名規則を守りましょう、という項目。
CamelCaseとか、定数は全部大文字とか。インデントスタイルも、かな。
統一されていれば、メンテとかも楽になるかと。


1つのソースコードの中に、K&RスタイルとBSDスタイルが混ざってたときはアホかと思った。
ほんと、やめてよねー。


8章はこれでおしまい。次は…… 第4章の「クラスとインタフェース」がいいかな。