2006/06/08
■[programming][書評]最近読んでるプログラミング(主にJava)の本
なんか、気がついたら1ヶ月くらい日記書いてませんでしたね……。
ここのところ仕事でプログラミングすることが多いのですが、プログラミングしてると、どうにも他のことが手に付かなくなって困ります。Winny関係のあんな本やこんな本を買ったり、いつの間にかIETF 65のP2P SIP BOFの資料が公開されてるのに気付いたりしてはいたんですが、家でもプログラミングの本ばかり読んでしまう始末。
そこで、今日は日記再開のリハビリとして、そんな最近読んでるプログラミング本を紹介してみます(「今頃こんなの読んでるのかよ!」ってツッコミたくなるくらい有名な本ばっかりですけども)。
----
達人プログラマー―システム開発の職人から名匠への道(アンドリュー ハント/デビッド トーマス)
より効率的かつ生産的なプログラマ=達人プログラマーになるためのヒント70項目がまとめられた本。プログラミングのテクニックも多少書かれていますけど、ヒントの大半はプログラマの持つべき心構えについてのものです。
大まかな傾向としては、
- 物事を徹底的に検証、追求すること(ヒント44:偶発的なプログラミングを行わないこと、など)
- 繰り返しを避けること(ヒント29:コードを生成するコードを作成すること、ヒント61:手作業は危険である、など)
の2点が強調されていて、全体を通してとっても耳が痛いです。例えば、「ヒント44:偶発的なプログラミングを行わないこと」の項にはこんな記述があります。
偶発的プログラミングの方法
Fredが、あるプログラミングを指示された時のことです。まずFredは、少しだけコードを記述し、それをテストしました。どうやら動いているようです。Fredはもう少しだけコードを追加し、またそれをテストしてみました。大丈夫、動いているようです。このようなコーディングを何週間か続けた後、ある日突然プログラムが動かなくなったのです。その後何時間も修正を試みたのですが、彼には何が起こったのかが判りませんでした。Fredはこのコードを追跡するために長い時間を費やしましたが、修正することはできませんでした。彼が何をしていたのかは別にして、それはちっとも動いてはいなかったのです。
うーん。なんか、僕も時々こんなことやってる……。この本は時々読み返して教訓にするのがいいかも。
Effective Java プログラミング言語ガイド(柴田 芳樹/Joshua Bloch)
こちらはJavaの基本APIの設計および実装に関わっているSun社員による本で、Java言語でプログラミングする際の注意点がいろいろ書かれています。
ちなみに、僕のJavaに対する知識は「Javaの言語仕様は一応知ってて、JavaDoc片手になんとかプログラムできる」という程度です。オブジェクト指向は万能じゃないと思いながらも、なんとなく「Javaはオブジェクト指向言語だから、普通にコードを書いていても再利用性が高いんだ〜」と信じ込んでいる感じだったんですが、この本を読んで考えを改めました。
特に驚いたのは、クラスを継承するときに注意すべき点が、僕の思っていた以上に多いこと。この本、Javaでプログラミングする人は必読ですね……。
来年中には最新のJavaに対応したEffective Javaが出るらしいので、今から待ち遠しいです。
参考:【レポート】JavaOne 2006 - あの『Effective Java』から5年 「Effective Java Reloaded」 (MYCOMジャーナル)
http://journal.mycom.co.jp/articles/2006/05/18/javaone2/
増補改訂版Java言語で学ぶデザインパターン入門(結城 浩)
増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編(結城 浩)
上の2冊はこれから読む本。ちらっと読みましたが、結城さんの本は相変わらず読みやすいです。
----
今までは、プログラミングしていて詰まったときだけウェブサイトを探して回る、というやり方で適当にやり過ごしてきたんですが、こうやって本を読んでると、今まで知らなかったことの多さに驚かされます。やっぱり、基礎を押さえるには本で勉強しないとダメですね。
……とこんな感じで今とてもプログラミングの本に飢えてますので、このあたりのレベルで他に何かおすすめの本がありましたら是非コメントお願いします。
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。