【レポート】

JavaOne Tokyo 2005 - 自動化、心掛けてますか? 貴重な時間は大切に

1 無駄をなくす心がけ - 俺様の時間はとっても貴重

    大野晋一  [2005/11/10]

    JavaOne TokyoのDay-0、Javaデベロッパにはおなじみの稚内北星学園大学 丸山不二雄氏が提供する「丸山先生レクチャーシリーズ」が開かれた。この最後に「定時退社のためにJava」という一風変わった名前のセッションが開かれ、米Sun Microsystems Technical Stuffの川口耕介氏が、デベロッパはいかにして幸せになるべきか、などについて語った。

    川口氏もまた、Javaコミュニティには有名だろう。2005年度未踏ソフトウェア創造事業(いわゆる未踏ユース)において、筧捷彦PMにより川口氏の「スレッド冬眠技術を利用したイベント駆動によらないワークフローエンジンの開発」というプロジェクトが採択されている。また、Hudsoncom4jparse-iprparse-dot-classpathargs4jといったオープンソースソフトウェアの開発も行う。parse-dot-classpathやargs4jなどは実際に使っているデベロッパも多いのではないだろうか? 筆者もparse-iprとargs4jは頻繁に使用しており、手放せないコンポーネントのひとつだ。

    無駄をなくす心掛け

    さて、今回のセッションではJava開発において、いかに自動化を進めるか、デベロッパの手間をいかに減らすか、そしてこれらを実現するためにはどういった心がけが必要かについて語られた。

    川口氏が「だめな例」として挙げたのは例えば以下のような状態だ

    • テスターにバグ修正のメールを3回も送った: メールを送る手間がもったいない
    • コードをcut&paseteしている: 同じことを何回もしている
    • Googleで検索してオンラインのAPI javadocを見ている: ロードする時間がもったいない
    • System.out.printlnでデバッグ: あまりに効率が悪い

    これらはそれぞれ貴重な時間を無駄にする例だという。もしこういうことをしているのであれば川口氏は「責任を転嫁する」「とにかく楽をする」ように心がけることで改善するべきとする。

    たとえば、コーディング中のタイプミスなどにより、コンパイルして実行するとランタイムからエラーが吐かれたとする。しかし、こういったエラーは大概において何が原因でエラーになったのか的確に示していない。結局Googleなどでエラーを検索することで解決をはかるわけだが、同氏はこれが多大な時間の無駄だと指摘する。では、どうするべきかというと「動かないのは自分のタイプミスのせいではなく、JREのエラー文が的確ではないからだ」と責任を転嫁して、要求をJREのバグとしてファイルすべきという。こうすれば、自分だけでなく他人も後で楽をすることができるというわけだ。

    同様のことが例えばAntを使ったビルドにおいてターゲット名を間違えてタイプしたときにもいえる。この場合はzshなどAntターゲットを補完してくれるシェルを使えばよい。「動かないのは自分のタイプミスのせいではない。タイプミスを指摘して直してくれない環境がわるい」というわけだ。

    zshはAntターゲットなど入力の多くを補完してくれる

    汎用化も重要だという。コーディングでソースコードをコピーするというのは同じ実装を何度も行っているということになる。その実装をユーティリティクラスなどに汎用化することで省力化できるわけだ。

    • これっきりシンドローム: 何回も同じことをしない
    • 俺様は王様モード: 人間の時間はとっても貴重、どうして俺様の時間が無駄に使われているのか

    川口氏はこういった気持ちで無駄を省いているという。実際に上に挙げた同氏のプロジェクトでは省力化が多く図られている。ソースコードは公開されているので、是非ダウンロードして研究してみたい。会場の聴衆に対しても「時々立ち止まって考えよう」と、省力化を呼びかけていた。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン