Builderパターンは、Template Methodパターンによく似ています。Template Methodパターンとの大きな違いは、その目的がオブジェクトを生成することであり、アルゴリズムを実行することではないという点です。Builderパターンは、役割分担を明確にするだけでなく、インターフェイスと実装の分離を実現する代表的な事例であり、パターンを使用しない場合に起こりうる重複をかなりの程度防ぐことができます。
WebアプリケーションではURLのわかりやすさも重要とされている。たとえば http://www.example.com/diary/diary.cgi?year=2007&month=05&day=12 というURLよりも http://www.example.com/diary/2007/05/12 というURLのほうがユーザにとってもわかりやすいし、検索エンジンにもクロールされやすいといわれている。 Apacheでは後者のURLへのリクエストを、サーバ内で前者のURLに書き換えて処理を行うための"mod_rewrite"というモジュールが存在する。mod_rewriteを使えば既存のWebアプリケーションに大きな修正を加えずに、後者のようなアクセシビリティの高いURLを提供することができる。また、サーバ上でWebサイトのフォルダ構成を変更した場合などもmod_rewriteを使用する
最近、Ruby関西に行ってRubyの勢いを感じている。 そんな時に、Javaの最近の動きを聞く機会があった。 Java6やSeasarの話を聞くと、JavaがC#やRailsの影響を受けているように聞こえた。 でも、話しているうちに、「やっぱりRubyよりもJavaが好きなんだ」と気づいた。 その理由は、「JUnitのようなテスト駆動ツールが揃っている」点に尽きる。 そこで「テスト駆動の観点から眺めたJavaの利点とプログラミング思想」について考察してみる。 【1】テストを意識するとメソッドの行数が自然に短くなる プログラミング初心者のプログラムを見ると、行数がやたらと長く、長いプログラムを書き上げた後からデバッグし始める。 だから、いつまで経っても動かない。 プログラミング中級者になると、行数は長いままだが、少しずつ書いてはプリント出力してデバッグで動作を確認し始める。 この
UML、なかでもクラス図はクラスの関係を把握するうえで欠かせないダイアグラムだ。できれば既存のAPIはクラス図を見て簡単に全容を把握しておきたい。その際に全自動でクラス図を作成できると大変便利だろう。そこで紹介したいのがUDocだ。こうした用途にぴったりのアプリケーションである。 UDocはJava クラスをUMLライクのダイアグラムによって視覚化するGUIアプリケーションだ。Javadoc、Javaバイナリファイル、Javaソースコードなどから動的に UMLライクのダイアグラムを生成できる。生成されるダイアグラムそのものを動的に編集することも可能なので、グリグリといぢりながらクラス関係を解析できるすぐれものだ。動作にはJDK 5.0かそれ以上のバージョンが必要。本稿執筆時点の最新版は12日(米国時間)に公開された1.005であり、GNU GENERAL PUBLIC LICENSE Ve
JRubyとは、Javaで実装したRubyの処理系だ。オープンソースプロジェクトとして、Charles Nutter氏とThomas E Enebo氏を中心として開発が進んでいる。執筆時点での最新の安定版リリースは0.9.8、5月の"2007 JavaOne Conference"で1.0が正式にリリースされる予定だ。 まずは、JRubyの特徴を紹介しよう。 Rubyの言語仕様に準拠している: Ruby1.8.5を元に、一部未実装や問題がある機能もあるものの、言語仕様を非常に互換性高く実装している。またRubyの標準ライブラリやgems(Rubyのライブラリなどをインストールするためのツール)についてもほとんどが含まれており、Rubyのプログラムの多くがJRuby上で正常に動作する JVM上で動作する: JRuby自体は100%Javaで実装された処理系である。したがって、実行するためには
Javaのオンライン学習するサイトJavalaが公開されている。JavalaはWebブラウザでJavaを学習したり、コードの実行結果を確認したりするための環境。タンペレ工科大学で開発されたもので、Java言語の学習を目的としている。リードデベロッパはTimo Lehtonen氏。使用に制限はなく、自由に利用できるとされている。用意されている言語は英語とフィンランド語。 図.1 Javala – Javaラーニング環境 基本的なトピックとしてはJava言語の基礎(基本型、演算子、制御構文、ループ構文、配列)、文字列(編集、比較、結合、トークン化)、オブジェクト(ネーミングとパッケージ、属性、演算、コンストラクタ、リファレンス、生成、削除)、クラス(クラスメソッド、クラス変数、定数、アクセス指定子)、継承(抽象クラス、サブクラス、動的束縛、型変換、比較、インタフェース)、例外(処理、try c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く