2014年11月15日(土)に開催されたJJUG CCC Fall 2014での講演「Javaエンジニアのためのアーキテクト講座」の資料です。Read less
JAX-RSはもともとRESTアーキテクチャなWebアプリを作成するための仕様だが、これを利用すると、普通のJavaクラスにアノテーションを付けるだけでWebサービスとして公開できるようになる。この記事では単純なJavaクラスを作成し、それをJAX-RSを利用してWebサービスとして公開するまでを示す。 なお、JAX-RS自体はJava EEの仕様のため、Java SEで利用可能なフレームワークはサードパーティによって提供される。本記事ではjava.netで公開されているJerseyを利用する。インストール手順などは記事内で説明する。 JAX-RSを利用したWebサービスがどのように動作しているかは最後で解説するものとして、ここではJAX-RSを利用すると、普通のJavaクラスをWebサービス化するのがどれほど簡単かに注目いただきたい。 JAX-RSの意義 全てのソフトウェアをサービスとし
なぜアルゴリズムを学ぶのか GCによる停止時間が長くなり、アプリケーションの処理時間が短くなると、業務に使える時間が短くなってしまいます。その問題を解決するために、GCをチューニングすることで、アプリケーションの停止時間を短くすることが考えられます。 その際大事なのは、GCのアルゴルズムを把握しておくことです。 GCのチューニングを行うときは、GCで行われている処理の内、どの処理に時間がかかっているかをモニタリング⇒分析⇒チューニングする、という流れになります。しかし、GCのアルゴリズムを知らないと、モニタリング結果を見てもどこに問題があるかがわからず、分析やチューニングを行うことができません。 今回は、以下の4つのアルゴリズムをご紹介します。 マーク&スイープGC コンパクション コピーGC 世代別GC GCのアルゴリズムはJVMの実装によって異なりますが、多くの場合、上記4つのアルゴリ
なぜScalaがバカ向けなのか。 ぼくの経験を元に、バカ向け言語と非バカ向け言語を比較しながら見て行きましょう 非バカ向け言語 C プログラマーとして最初に携わったのがC言語です。 それは以下のようなものでした。 何十ものファイルにまたがるグローバル変数 緻密な制御が必要であるにも関わらず、無秩序に取得/開放が行われているメモリー管理 このような複雑な構造を、ぼくのようなポケコン並の処理能力しか持たないバカに把握可能でしょうか。もちろん不可能です そこで、次のようなコーディングを心がけました。 グローバル変数を使わず、関数に引数を定義して渡す メモリーの取得/解放を同一ファイル内に限定する これで、メモリーや変数参照の影響範囲を限定し、ぼくのようなバカでも理解できるようになります。 ですが、わざわざそんな事をやらなくても全てを理解できるエリート様達は、 「なぜ引数で渡すんだ。グローバル変数
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く