2008年12月21日日曜日

EffectiveJava第2版を読んだ

EffectiveJava第2版を今読み終えました。
始めは旦那が読み終わったら借りようと思っていたんですが、私も買ってしまいました。...ということで、この本は、我が家に2冊もあったりします(笑)
我が家に2冊も買わせた本はこれで2つ目。

読んだ感想ですが...あー私ってばあまり使う人のことを考えずにコーディングしてたなぁってのが一番かなぁ。
「要求通りに動くもの」というのを作るのはまぁ当たり前ですが、そこから「自分以外の人にも使いやすくする事」というのはこんなに丁寧に考えて作るもんなんだなぁ....と。

私も仕事上で製品開発を一応していたので、「使う人の事を考えて拡張しやすいように」というのは、まぁ普通に考えて作った所はあるんですが、使う為の前提が多かったり...動かしてみないと分からなかったり...リリース後に発生した”これも拡張できるように”という要望を満たすため委譲クラスをポコポコ作るハメになったり...提供インターフェースで提供してなかったので実装クラスを継承してもらうしかなかったり...と色々ありました。

他の人に使ってもらうようなライブラリのクラス構成を考えるのはホント難しいです。

どれだけ やって欲しくない事を 実行時エラーでなく、コンパイルエラーで出せるようにするか...というのが重要だし、その方法/手段というのはアイデア(?)次第で出来る事も多い。
ただ、その方法を自分で始めから探るのは時間もかかるしミスも多い。ましてや仕事上の限られた時間ではそんな時間もとれない。
そこでこぅいぅ本の情報が凄く役に立つんだと思う。私のような低速な脳みそでは特に(笑)
この情報を生かして実践していくのは、もしかしたら何も考える前よりも時間がかかる作業があるかもしれない。人に使ってもらいやすくするというのは時間がかかる作業だし。
でも、こぅいぅ方法を教えてもらった事に感謝しつつ、変なコードを後々の人に残さないようにして行く事が自分の為にも、業界全体にとっても必要なんだ!と感じなくてはなぁ。
なんて思います。

でも、J2SE5になってからenumやアノテーションが使えるようになって楽になった部分が凄くありますよね。
まぁ、私の仕事上では互換性を保つためにそれらを使ってガラっと替える事はできなくて涙流した所は多いですけども(ぐすっ)

コノ本では、オススメしない内容とその理由、代替案...というカンジで書いてあるので、納得もしやすくていいです。使うのが適切な場面というのも明確になりますし。
(でもたまに文面が難しいので大変。。お布団に入ってから見るのはツライ。)

本を読んでから、自分のコードを振り返ると、「あーあそこのコード、まずいよな。直したい」と思いましたぁ。多分読んだ人の殆どが感じたりするんじゃないかなぁ?ということで、Javaをある程度書いてみたって人には超オススメ本。
逆に、Javaをこれから学んでみたいんだけど...方にはオススメしません。

これからはトイレに一冊置いて、復習しますー。

(トイレでゆっくりする時間も大切なのよっ!特に女性は...)

• • •