Javaで実現できることは非常に多様である(表1)。この中で現在最も使われ、またJavaならではの特性を最大限に発揮できるのがJ2EEを使ったサーバサイドシステム(J2EEアプリケーション)だろう。
表1■Javaで実現できることJavaエディション | 提供されるもの | 内 容 |
J2SE | JVM(Java Virtual Machine)、標準API(java.lang、java.util、java.ioパッケージ、JDBC、JNDI、JavaBeansなど)、デスクトップアプリケーションAPI(AWT、Swingなど) | Javaで動作するプログラムの実行環境の提供、コンソールアプリケーション、GUIを持ったデスクトップアプリケーション、Java Applet |
J2EE | J2EE API(Java Servlet、JSP pages、EJB、JavaMail、JMSなど) | Webアプリケーション、分散オブジェクト、分散トランザクションを使ったサーバサイドシステム、非同期処理を行うサーバサイドシステム |
J2ME | J2ME API | モバイル機器向けアプリケーション、携帯電話向けアプリケーション、家電などの組み込み機器向けプログラム |
この特集では、Javaアプリケーション開発者、特にJ2EEアプリケーション開発者として成長したい方のために、どのような技術を学ぶべきか、どのようなところにアンテナを張っているべきか、J2EEアプリケーション開発者にとって必須のスキルは何か、今そしてこれからのトレンドは何か、といった内容を紹介したい。
まずはJava2 SE SDKのインストール方法、環境設定、基本的な構文、文法、コンパイル、プログラムの実行の方法を身につける必要がある。
これを覚えないとJavaでプログラムを記述することができないからだ。主な項目は表2のとおりだ。
表2■Javaの基本構文、文法項 目 | 内 容 |
Java2SE SDKのインストール | 入手方法、インストール方法など |
ソースコードの記述 | 型、変数、配列、条件分岐、ループ処理、パッケージ定義、など |
コンパイル | クラスパスの設定など |
実行 | プログラムの呼び出し方、実行時のクラスパスの設定など |
特に注意する点はCLASSPATHの設定方法である。CLASSPATHの設定方法にはいろいろな方法があるが、後に統合開発環境やビルドツールを使用する際にまごつかないようにここで正しく覚えておきたい。
基本的な文法、コンパイル、実行の方法が分かったら例外処理、スレッドプログラミング、標準コアAPIの使い方を覚えておきたい。特にjava.utilパッケージのCollectionフレームワーク(java.util.Collection、java.util.List、java.util.Set、java.util.Mapの各インタフェースとその実装クラス群)の使い方をよく覚えておこう。
また、J2EEアプリケーション開発者を目指すのなら、GUIプログラミング(Javaアプレット、AWT、Swingなど)や、ソケット通信プログラミングは必須ではない。省略して次へ進んでもよいだろう。
Javaはオブジェクト指向言語である。「オブジェクト指向」そのもの意味は、IT用語辞典が参考になる。特に、オブジェクト指向プログラミング(OOP)の意味も理解しておこう。
オブジェクト指向言語を使ったシステムの開発には、デザインパターン(※1)のような、オブジェクト指向言語ならではの設計手法を採用することができる。そのような設計手法には「継承」、「ポリモーフィズム」といった、オブジェクト指向言語独自の仕組みが駆使されている。
このようなオブジェクト指向言語ならではの設計手法を理解するには、継承、インタフェース、抽象クラス、カプセル化、ポリモーフィズムというオブジェクト指向の基本的な考え方、仕組みを理解することが必要である。ここではまだJavaの入り口としての紹介のため、それぞれの意味を追求しない。
※1 デザインパターン
デザインパターンとは、設計の定石をカタログ化したものだ。各カタログにはそれぞれ「××パターン」などの名が付けられている。
デザインパターンを知る者の間で意思の疎通が図りやすくなり、他人の書いたプログラムを理解しやすくなるというメリットがある。よく知られているものに、GoFパターン(Gang of Fourによる23のパターン)、J2EEパターンなどがある。詳細は後述する。
J2EEアプリケーションのクライアントは、昨今Webブラウザである場合がほとんどである。サーバサイドではさまざまな処理が行われるが、最終的にはHTMLタグとしてブラウザへ出力される(図1)。つまり、J2EEアプリケーションの開発にはひと通りのHTMLタグの読み書きができることが必要だ。
さらに、簡単なJavaScriptも扱えると好ましい。JavaScriptはブラウザ上で動作する簡単なスクリプトだ。よりよいサイトの見栄え、使い勝手を実現するためにまだまだ使われる場面は多いので、覚えておいて損はないだろう。
ただし、ブラウザ上で動作するため、ブラウザの製品やバージョンによって多少異なる動作をすることがある。このような特徴があるということは、頭の片隅に置いておきたい。
J2EEアプリケーションとは、語弊をおそれずにひとことで言うと、Webというインタフェースを介してデータベースを参照したり更新可能なアプリケーションである。事実上、J2EEアプリケーションとデータベースは切っても切り離せない関係だ。J2EEアプリケーションを開発するにはデータベースの知識も必須である。
データベースとは、その名の通りデータを保管しておく場所だ。さまざまな種類のデータベースが存在するが、最も普及しているのはリレーショナルデータベース(RDB)だろう。リレーショナルデータベースは、「テーブル」と呼ばれる行と列のある、表のような2次元構造でデータ管理する方式だ。
このテーブルに格納されたデータを検索したり更新したりするために記述する言語が「SQL」だ。J2EEアプリケーションを開発するには、テーブルの構成、テーブルに格納されるデータ型、検索、挿入、更新、削除のためのSQL文などを理解する必要がある。
関連記事データベースのパフォーマンスチューニングやバックアップ/リカバリの方法などの知識は、開発がメインの初期段階では特に覚えておく必要はないだろう。これらは、J2EEアプリケーション開発者ではなく、データベース管理者に必要なスキルといえるからだ。
Copyright © ITmedia, Inc. All Rights Reserved.