11夜連続企画(できなかったらすみません)。 いろんなJava Webフレームワークで同じ画面を作ってみます。 まぁ、よくある足し算プログラムです。 題材 足し算プログラム 計算結果は、別画面に遷移し出力する。 submit時にリクエストパラメータ名称で処理を切り分けるパターンを検証。 バリデーションは、必須チェックと整数チェック。 エラーメッセージは、一括で出力するパターンと、フィールド毎に出力するパターンを試す。 DBアクセスはないよ。 取り上げてみるフレームワーク 以下、記事へのリンクになってます。 Slim3 Struts1 Struts2 SAStruts Teeda(JSF) Spring MVC 3.0 Stripes Cubby2 Click Wicket Mojarra(JSF2) T2framework(追加) Play!(追加) Ninja (追加) そして、総括。
プログラミングと設計は本来切り離せないものなのではがすごい反響だったのですが、結局この記事で私が言いたかったことは、 Java EEなどの現代的な開発環境はCOBOLなどの古い言語を使った開発とは根本的に設計の手法が異なる 多くの現場では未だに古い設計手法を使っているため、オブジェクト指向などの最近の開発環境のメリットが活用できず、低い生産性にとどまっている。 ということに要約できると思います。ただし、どうして、Javaではオブジェクト指向で開発しないといけないのか、どうして昔ながらの伝統的なやり方を改め、新しい設計手法を採り入れないといけないのかと疑問を持たれた方もいらっしゃるかもしれません。ここでは、開発手法と生産性の問題について、もう少し掘り下げて検討してみたいと思います。 レガシー言語の生産性 最近のCOBOLでは、オブジェクトやスタック変数すら使えますが、ここではCOBOL85の
SpringやStrutsやGoogle Web Toolkitなど、たくさんあるJava VM対応のWebフレームワーク。どれがどのような特徴を持ち、何を選べばいいのでしょう? 11月15日から行われたJava開発者が集うイベント「Devoxx 2010」。このイベントで行われたMatt Raible氏によるセッション「Comparing JVM Web Frameworks」(JVM Webフレームワークの比較)のプレゼンテーションが、同氏のブログにポストされたエントリ「My Comparing JVM Web Frameworks Presentation from Devoxx 2010」で公開されています。 その内容は、開発者の方々に非常に参考になるのではないかと思うので、全56枚のプレゼンテーションの中からポイントとなる部分を紹介します。 評価優秀とされたのはSpring、GW
1. 環境別の設定はプロファイルで 環境毎に切り替えたいっていう設定ファイルは大抵のプロジェクトにはあると思います。DB接続先設定だったり、ロギング設定、場合によってはweb.xmlの初期化パラメータとか。最近流行り?のAppEngineだとデプロイ先の設定、開発時のcronの設定とか。こういった環境毎の設定を都度都度書き換えてなんてことをやってたらバージョン管理上うまくない*1ですし、Hudson、その他自動化スクリプトからデプロイを行ったりする際に色々とうまくないです。なので、こういった設定はプロファイルを使ってサクっと切り替えられるようにしてます。 詳しいプロファイルの使い方*2についてはそのうち別エントリで書く*3!...と思います。基本的なことはTECHSCOREさんのここを参照すればかなり分かるはずです。自分はここで覚えました。ただMaven3からはprofiles.xmlの使
営業支援で提案中の案件があるのですが、現状CGI+Perlで作られているコンシューマー向けサイトがあるが、 CGIなので性能が悪い コンテンツの修正が大変なのでMVCできちんと作りたい 実績のあるJavaとStrutsをメインに検討している とのことです。今時多くのコンシューマー系のサイトで、コンテンツの管理を容易にしたいならオープンソースも含めてPHPベースのCMSが星の数ほどあるという事実はおいておくとしても、とにかく、実績重視ということでStrutsということになってしまうのでしょうか?お客様もMVCなど相当技術を勉強されていることは感心なのですが、JavaのMVCフレームワークというとStrutsしか考えないというのは問題ではないのでしょうかね。多くのStrutsベースの既存システムを自社で抱えているなどの理由があるのであれば、それも一つの選択なのかもしれませんが、実績重視とか社内
「Javaによるビジネスアプリケーションの開発は複雑すぎる。開発チームはJavaからの逃避を検討すべきだ」という内容のレポート「Java Is A Dead-End For Enterprise App Development」(Javaはエンタープライズアプリケーション開発に行き詰まっている)を調査会社フォレスターのアナリストMike Gualtieri氏がブログで公開しています。 Gualtieri氏は、Javaはビジネスアプリケーションの開発言語として確固たる地位を築いており、COBOLが消え去らないのと同じように急に消え去ったりはしないけれど、Java以外の選択肢を検討した方がよいとしています。 ビジネス要件が変わり、プレゼンテーションレイヤで失敗した Javaが行き詰まっているというGualtieri氏のおもな理由をピックアップしてみましょう。 ビジネスの要件が変わってきた 変化
JavaとScalaとC#のジェネリクスは、いずれも継承を持ったオブジェクト指向言語においてParametric Polymorphismを実現するための手段であり、それぞれ異なった特性を持っている。というわけで、それぞれの言語においてジェネリクスがどのようにサポートされているかを比較した表を用意してみた。後で気が向いたら、各項目の説明を追加するかも。 Java(5.0以降) Scala C#(4.0) ジェネリックなクラス ○ ○ ○ ジェネリックなメソッド ○ ○ ○ 型パラメータの上限 ○ ○ ○ 型パラメータの下限 × ○ × 型パラメータの推論 ○ ○ ○ 全ての型のサブタイプ(ScalaにおけるNothing) × ○ × definition-site variance × ○ ○ use-site variance ○(Wildcard) ○(Existential Typ
以下のサイトよりパクリ Ubuntu 10.10に本家SunのJava環境を導入し、導入済みのopenjdkと切り替える http://viva-ubuntu.com/?p=4204 Canonicalパートナー・リポジトリの有効化 システム→システム管理→Synapticパッケージ・マネージャ 設定→リポジトリ→他のソフトウェア Canonicalのパートナー Canonicalのパートナー(ソースコード)にチェック 再読み込み Sun Javaのインストール 「sun java」で検索 sun-java6-jreをインストール開発環境も必要なら「sun-java6-jdk」 Sun Javaへ切り替え 以下のコマンド実行 sudo update-alternatives --config java 文字化けの解消 以下のコマンドを実行 cd /usr/lib/jvm/java-6-su
@ -------- スポンサー広告 この記事にトラックバックする(FC2ブログユーザー) http://coffeecupman.blog28.fc2.com/tb.php/5-46a8791a トラックバック コメント Ubuntu 10.04 にJava開発環境のsun-java6-jdkやopenjdk-6-jdkをインストールしてみたところ、所々で文字化けを起こしている。そこでさっそく調べてみた。 原因はたぶん、フォント構成ファイルによってJavaが必要としているフォントが、Ubuntu 10.04にインストールされていないため文字化けが起こっているように見える。 具体的には、例えばUbuntu 10.04 上で動作する sun-java6-jdkのフォント構成ファイルは /etc/java-6-sun/fontconfig.properties が読み込まれると思われるが、そこ
Javaのややこしいジェネリクスの話をしよう。*1 再帰的ジェネリクス クラスHogeがあったとして、型変数Tを取る。 public class Hoge<T> {} このHogeの型変数Tがextends Hogeとすると public class Hoge<T extends Hoge> {} すると、T extends Hoge の Hoge が raw型だと警告される。Hogeの<>の部分にHoge型を継承した型を指定しなければならない。ここで型変数T が extends Hogeだったので、丁度いいからT型をおさめよう。 public class Hoge<T extends Hoge<T>> {} これは再帰的ジェネリクス(recursive generics)と呼ばれているようだ。 追記:僕は勝手に自己言及型ジェネリクスなどと呼んでいた。情報サンクス!併せてタイトルなども表現
この記事は、Javaに精通した開発者の方に、ActionScript 3.0(以下AS3)がどのような言語なのか、どこがJavaと異なっているのか(あるいは同じなのか)を一覧できるようまとめたものです。 主にAS3の静的な側面をまとめた、『文法編』(この記事)および『クラス宣言編』(Adobe Developer Connectionにて公開中)と、動的な側面をまとめた『属性操作編』(近日公開予定)および『振舞い編』(近日公開予定)の4編に分けて、Java開発者が引っかかりやすいと思われる点を中心に記述しました。 厳密な言語解説よりは、まずAS3の概要が分かること、を目的に書かれています。さらに詳しい言語仕様についてはActionScript 3.0の学習をご覧ください。 文法編の内容 文法編では、要素と宣言に関わる基本的な文法を扱います。とはいっても、JavaとAS3の文法はいろいろな面
λ... λ... ちょっととおりますよ はじめに C++ Template の勉強をしていて、気がついた。 ネストした(内側から外側が見える)名前-値の空間が存在し 値から名前-値の空間を生成することが可能で その空間を生成するための情報を値として扱え 名前-値の空間の中の一つ以上の値を取り出せると ラムダが出来る。 という訳で Java でラムダを作ってみた import static java.lang.System.out; public class Hoge { public static void main (String args[]) { // チャーチ数 0 final λ zero = new λ () { λ call (final λ f) { return new λ () { λ call (final λ x) { return x; }}; }}; // チ
Ubuntu 10.04 にアップデートしたんだけど,標準だと,OpenJDK しか入れられなくなった. OpenJDK はちょっとバギーだし,Font 回りの設定とかがグダグダなので, 日本語が上手く表示出来なかったりするので,sun のやつを入れる $ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner' $ sudo apt-get update $ sudo aptitude install sun-java6-jdk で,インストール出来るので, デフォルトの設定を変更しちゃえば終り $ sudo update-alternatives --config java There are 2 choices for the alternative java (providing /usr/b
タグ Windows / インストール / Linux / 設定 / エラー / Java / Eclipse / AutoHotkey / TeX / C# / VisualStudio2008 / 対策 / Subversion / LaTeX / Vista / 方法 / CentOS / Android / Microsoft / Windows7 / Office / バージョン管理 / プログラミング / eclipse / PowerPoint / SSH / Ubuntu / WindowsVista / コマンド / ショートカット / .NET / Desire / VisualStudio / 便利 / P2P / Unix /
JavaによるRESTfulシステム構築 作者: Bill Burke,arton,菅野良二出版社/メーカー: オライリージャパン発売日: 2010/08/23メディア: 大型本購入: 28人 クリック: 804回この商品を含むブログ (40件) を見る これ,本当にタイトル勿体無いなぁって思う本でした. いや,タイトルに偽りは無いんだけど,これだと REST に興味無い人は手に取らないだろうなぁと思って,それは凄く勿体無い内容なので,ホントみんな読むと良いと思う. 簡単に説明すると,Java で REST を扱うために JAX-RS という API があるんだけど( JSR311 ),そのエキスパートグループの一人であり,さらにその実装である RESTEasy の作者が書いている本です. で,この人は元々 SOAP とかのどちらかというと Fat な仕様大好きっこだったので,この本には色
昔も書いたが、EclipseのJavaコンパイラとJDKのjavaコンパイラは別物。 昨日、原因究明に到るまで半日要したのだが、 Eclipse3.5のJavaコンパイラ(ecj)に致命的なバグがあることを発見した。 簡単に説明すると、 『非publicな親クラスから引き継いだpublicメンバーを、異なるパッケージにおいて子クラス経由でリフレクションで呼び出すとエラーになる』 というもの。まあコードを見たほうが早いので、下のコードを見るべし。 サンプルコード NonPublicParent.java package foo; class NonPublicParent { public void aMethod() { System.out.println("method1"); } } PublicChild.java package foo; public class PublicC
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く