普通のシステムエンジニア
Amebaでブログを始めよう!

「日食」って…

プログラミングはもちろんソースを書かなきゃ始まらないのはご承知のとおり。僕のプログラミング経験はおよそ6年あまり。育った環境のせいなのか、エディタ(主にMeadowとかxyzzyとか)でゴリゴリとソースを書き、JDK使ってコンパイルするってのが私の開発スタイルでした。


「でした」ってのはついこの間まではそうだったんだけど、2、3ヶ月前からようやく話題の「Eclipse」を使い始めたのさ。一応説明しておくと、Eclipseってのは元々IBMが作っていた統合開発環境で、「Sunを食っちまえ!!」ってな勢いの元、「日食=Eclipse」なんて大胆不敵なネーミングでさっそうと登場。オープンソース化されてからはその使い勝手のよさとかプラグインによる拡張性なんかが買われてあっという間にシェアを拡大。


なんつーかこの手の所謂「統合開発環境」ってのは個人的には手を出しにくいところがあって、「プログラマーはツールの力は借りずに、エディタでソースを書かないと」ってのがなんつーか自分の中で美徳だったんです。まぁそれ以外にもEmacs系の素晴らしい操作性から逃れられなかったって理由もあるんだけど…。


ところが今はEclipse無しじゃ生きていけないというくらい、Eclipseにゾッコンラブ。僕の6年間のプログラミングスタイルがわずか3ヶ月で覆されるという、まさにパラダイムシフトが起こったんです!!まだエディタでの開発から逃れられないそこのあなた、意地を張らずにぜひともEclipseを使ってくださいねー。


Eclipseの使い方がわからない?ならばこの「Eclipse3によるJavaアプリケーション開発 」がお勧め。単なるインストール方法や使い方にとどまらず、Javaの開発で役立つTipsがいい具合にまとまってます。


水島 和憲
Eclipse3によるJavaアプリケーション開発

テスト!!

テストっていっても、期末試験とかそういうテストじゃなくて、ソフトウェア開発でのテストのお話。うちのプロジェクトは以前はオンリー手動テスト。障害が発生したら手動テストで現象確認→修正→手動テストで正常動作確認ってな手続きをひたすら続けてた。んだけど、つい2、3ヶ月前からようやく自動テストツールであるJUnitを導入。テストケース書いてEclipseやらAntやら使って自動テストをやってます。最初は多分誰でも「めんどくせぇ」と思うでしょう。現に僕はそうでした。ところがね、慣れてきてしまうとあら不思議、テストが書かれていないソースなんて気持ち悪くてしょうがなくなるんです!!今までのおれは一体何を持って「ソースが書けた!!」と言っていたのかと不思議になるくらい、テストを書いて通さないと気が気でなりません。まだテストケースを書いていないそこのあなた、ぜひとも書くべきです。明日から、今日から書くべきです。まじで。


とは言えね、いざテストケース作るとなると相当な経験がないと上手いテストケースが作れません。そんなときに買ったのがこの「JUnit in Action」。JUnitの使い方からCactusやらDBUnitなんかの使い方まで、色々と解説されています。内容的には非常に良いと思うんだけど、残念ながら翻訳がイマイチなんで、読み辛いんです。そこんところは勘弁。


ビンセント マソル, テッド ハスティード, Vincent Massol, Ted Husted, クイープ
JUnitイン・アクション

Hibernate

O/R(オブジェクト・リレーショナル)マッピングフレームワークって知ってる?要するに、オブジェクト指向の世界のオブジェクトと、全く違う世界のリレーショナルデータベースをつなぎ合わせるためのフレームワークだ。もっと間単に言うと、オブジェクトをあまり深く考えずに、非常にシンプルにデータベース上に保存できるツールというわけです。

んで、O/Rマッピングツールは色んな種類が存在してる。例えばiBatisとかCayenneとか。そんな中、おれが気に入ってるのが「Hibernate」ってわけです。シンプルかつ拡張性に富んでいて、かなり直感的に使える。ただね、他のオープンソースソフトウェアと同じで日本語ドキュメントがイマイチ充実していないのが問題。大問題。まぁ英語がスラスラ読める人は問題ないんだけどさ…。


そんなあなたにささげるのがこの「開発者ノートシリーズ Hibernate」。現時点で国内唯一のHIbernateの専門書。そこまで詳しい内容が書いてあるわけじゃないけど、手っ取り早くHibernateの利点を感じ取ってサラッと使っちゃおうって思ってる人には非常にお勧め。この本とHibernateのHPで提供されている日本語のリファレンスマニュアルがあればなんとか生きていけます。


とはいえね、Hibernateはバージョン3が出てて、この本は2.1.6ベース。早く3の日本語本が出ないかなぁといつも考えている私。リファレンスも日本語が出てないんだよなぁ。英語と中国語はやたらと早くリリースされたのに…。


James Elliott, 佐藤 直生
Hibernate

蟻・あり・Ant

Javaのソースを書いてクラスパス通してコンパイルしてJarで固めてwarで固めてディプロイして…を手動で繰り返していたのは昔のこと。今は素晴らしいツールがあるんです、そう、それがApache Ant。流石に誰も知ってるくらい有名になっちゃったけど、出たての頃は相当感動したもんだ。Ant無しの生活なんて考えられねーぜってくらいで、PCのファイルバックアップとかCSVからのソース自動取得とか、とにかく使いまくっていた。でも問題は日本語ドキュメントが充実していないってこと。そんなボクの悩みを知ってか知らずか、丁度よさげな本ってのがこの「Java プログラミングツールズ1 Apache Ant」。良くありがちな入門内容で終わるのではなく、リファレンスが充実しているし知らない使い方が満載でした。今でもAntで何かスクリプトを書こうって時はこの本が傍らにある。紙も薄くて軽いので、持ち運びが楽チンってのも個人的にはポイント高いです。



関口 宏司
Javaプログラミングツールズ1 Apache Ant

理想と現実

やっぱりJavaの案件っていうと、ここ最近はWebアプリケーションばっかり。というかね、僕は入社してからずーっとJavaでWebアプリ。J2EE。Servlet、JSP、EJBを使用したシステムに関わってました。


んで、そのシステムの保守中に読んだのがこの「J2EEシステムデザイン」。もう目から鱗!!って感じの内容。多くの本がJ2EE最高!!EJBって素晴らしいから使えよ!!とどんな本でも推奨されていた時代、机上の理想ではなく実務で使える現実解を次から次へと提示してくれたのがこの本です。理想じゃ飯は食えません。J2EEに関わる人には絶対お勧め。著者はここ最近かなり盛り上がってきたDIコンテナ、Spring Frameworkの作者として有名なロッド・ジョンソン氏。というかね、この本の内容がそのままSpringになりましたって感じ。ちなみに今のプロジェクトではEJB使用をあきらめ、軽量を目指してる。目を覚まさせてくれたのはまさしくこの本。超ぶ厚いけど読んじゃおう。



ロッド・ジョンソン
実践J2EEシステムデザイン

I ★ U (ハートマークが出ません…)

なんでソフトウェア関連の話題を取り上げているのにミュージックの話が突然出るの?と思っているそこの貴方、ご安心ください。ただ単に僕がMr.Childrenのファンだから。だから「ミュージック」の話題といいつつもミスチルの話しかおそらく出ません。ご了承ください。


んでね、今回の話題はなにかっツーと、なんとMr.Childrenのニューアルバムの発売が決定しました!!その名も「I ★ U」。ほんとは星じゃなくてハートマークね(ハートが表現できんとです)。発売日は9/27なのでみなさん楽しみに待ってましょう!!


さらに嬉しいことにドームツアーも決定しました!!ようやく動き出してくれたねぇ。ソフトウェア開発者のみなんさん、ミスチルを聞きましょう。きっと人生を幸福にしてくれる(はず)。


Mr.Children 公式HP

デザインパターン

オブジェクト指向言語を使っている人(または建築に関係しているひと)ならば、一度は「デザインパターン」って用語を聞いたことがあるかも知れない。というかあるはず。聞いたことがあるけど、いったいなんなのかわからない…という方のために軽く説明すると、先人の編み出した数々の秘術を23のパターンとしてまとめたものなのです。23個あるってところがなんか必殺技みたいでかっこいいでしょ?で、これを勉強するのはオブジェクト指向言語で開発する人にとっちゃー必須なんです。オブジェクト指向の利点が明確に分かるし、開発者間でのコミュニケーションも促進されること間違いなし。きっと将来的には「あ、そこはさ、Compositeで行こうよ」とか、「Storategyを使えばいいんじゃん」とかいう、おしゃれな会話が飛び交っているはず(ちょっと使い方間違ってるな…)。でも意外とね、おれの周りを見渡すとデザインパターンを知っていて会話ができる人っていないんすよ、まじで。知っていて当たり前な、基本の基本と思うんだけど…。色んな本でこれだけ紹介されてるのになんでだろ…と思っちゃう。デザインパターンは本で学んだ後に、実際に色んな場面で使用して経験を積まないとほんとの有用な使い方ってのはできないので、とりあえず覚えてさっさと使うと。これはほんと必須なんで、まだ知らない人はだまされたーと思ってお願いだから勉強して…。会話が成り立たないんです…。


で、デザインパターンを憶えるのにお勧めな書籍はこちら、「デザインパターン入門」。サンプルはJava言語で書かれていて、非常にわかりやすく書いてあるのでとっつき易い。下手に難しそうな本に手を出してかっこつけていないで、この本で基本をきちんと学びましょう。これを完璧マスターしたら、その補足としてデザインパターンの原点である「デザインパターン」をお勧めします。


結城 浩
増補改訂版Java言語で学ぶデザインパターン入門
エリック ガンマ, ラルフ ジョンソン, リチャード ヘルム, ジョン ブリシディース, Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides, 本位田 真一, 吉田 和樹
オブジェクト指向における再利用のためのデザインパターン

リッチクライアントとアプリケーションサーバの通信って?

僕の仕事では圧倒的にServletとかJSPを使ったWebアプリケーション開発が多いんだけど、現在色々と考えてるのはリッチクライアント(というか通常のクライアント用Javaアプリケーションなんだけど)とアプリケーションサーバ上に置いたリッチクライアントの通信方式。以前のプロジェクトで使用していたEJBは複雑すぎ+開発効率悪すぎで絶対使用したくないし、だからといってふつーのRMIも例外処理とか考えると嫌気が差すし。これまたふつーのHTTP通信をごりごりっと書いてサンプル実装してみたものの、良く考えたら通信時のセキュリティをどうしよう(SSLを使ったら暗号、複合をどう組めば…)と悩み、んじゃあようやく波に乗り出したSOAPでいこっかと思ってApache Axisをいじってみたけどこれまたかなり開発手順が複雑で、EJB時代を髣髴とさせる。第一性能出なそうだし(もうすこし検証する必要あるけど)。んで、やっぱふつーのクラサバ方式で、クライアント側に業務ロジック置いて、直接JDBC接続でいいんじゃない?っていう結論になりそう…だけどなんとなく時代がそれを許してくれなそう…。ふつーはみんな、こういう場合ってどうしてるんだろねぇ。誰かご教授ください…。

Javaの本その1

ぼかぁ、仕事でプログラミングするんだけど(うちの社内では結構珍しい方)、言語はずっとJava言語を使ってる。丁度大学で研究室に入りたてで、まだキーボードを右手の人差し指のみでタイピングしていた頃、研究室の教授から「これからはJavaが来るからJavaを勉強しなさい」と言われて、それ以来Javaを学んで来ました。一応、大学ではC言語を学んでたはずなんだけど、全く頭に入らずに(というか勉強してませんでした)すごしていたので、実質Java言語が僕の初言語。6年前のあの頃と比べたら、今は随分成長したもんだと自画自賛。なんつっても昔は「C言語とUNIX」っていう本を見て、友人に「C言語とUNIXって何が違うの?」と質問をして、いったいこいつにはどこから説明すればいいんだ…と困らせたことがあるくらいだ。いやぁ、昔は青かった…。


と、前置きが長くなりましたが、今回ご紹介するのは「Javaの格言」。丁度入社して1年くらい経った後(Java言語…つまりプログラミングというものに触れてから2年くらい経った後)、会社においてあったこの本を見て、ちょっとよんではまって、かなり参考になったと感動しました。今から思えばかなり基本なんだけど、「Java言語の文法は憶えて、一通りプログラムも組めるけど、さて、この先何を学んだらいいんだろ…」とお悩みのそこのあなたにお勧めです。同じような内容で「Javaの鉄則」ってのもあるんだけど、個人的にはどちらかというと格言のほうが好き(だった気がする)。



ナイジェル ウォーレン, フィリップ ビショップ, Nigel Warren, Philip Bishop, 安藤 慶一
Javaの格言―より良いオブジェクト設計のためのパターンと定石
ピーター ハガー, Peter Haggar, ドキュメントシステム
Javaの鉄則―エキスパートのプログラミングテクニック

システムエンジニア人生(わずか数年)の中で、影響を受けた偉い本その2

確か僕がシステムエンジニアとして2年目になった時。ある程度開発も慣れてきて、次の一歩を踏み出すにはどうしたらいいか…って感じてたときに読んだのがこの本「リファクタリング」。今ではもうかなりメジャーな開発プロセスになってきた、所謂「アジャイル開発」の重要なプラクティスのひとつしても有名で、システムをどんどん作り直して、進化させていく方法ってのが書いてある。そのためのテストの自動化にも焦点が当てられていて、読んで行くと目から鱗がぼろぼろと。この内容を理解しておくと新しくシステムを手がける際の視点も変わるよ。この本を読んで、著者「マーチンファウラー」のファンになりました。絶対に読んで損はしません。以下のような人に特にお勧め!!


 ・ Java(オブジェクト指向言語)で開発している(サンプルプログラムはJavaで書かれてます)

 ・ 開発になれてきたけど、次へのステップアップ方法がわからん人。

 ・ 手動でテストをやってる人。


マーチン ファウラー, Martin Fowler, 児玉 公信, 平澤 章, 友野 晶夫, 梅沢 真史
リファクタリング―プログラムの体質改善テクニック