はじめに Stripesには、JSP内で使用するための豊富な独自タグが用意されています。これらを利用し、Stripesを経由してタグを出力させることで、さまざまな表示をStripesから制御できるようになります。 今回は、そうした独自タグの中から、フォームの主要コントロールのためのものと、レイアウト作成に関するものをまとめてとりあげることにしましょう。とりあえず、これらのものが一通り使えるようになれば、Stripesによるページ作成の基本はマスターできるでしょう。 対象読者 Javaで手ごろなフレームワークを探している技術者。 最近のフレームワークをごくざっと理解しておきたい方。 Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ。 チェックボックスとラジオボタン 今回は、Stripesの機能についてより詳しく見ていくことにしましょう。まずは、フォームのコントロール関
はじめに 今やWebのフレームワークと言えば、そのほとんどが「RoRタイプ」です。RoR(Ruby on Rails)がWebの開発に与えた影響は非常に大きく、その後生まれたフレームワークの多くがその影響を受けています。 しかし、Javaの世界に関しては、RoRはなぜか素通りしてしまいました。既にStrutsというデファクトスタンダードがあったために新しいMVCフレームワークが割り込む余地があまりなかったのか、あるいはLL(ライトウェイト)言語でないとRoRなスタイルは作りにくかったのか。ともあれ、その後、長い間、Javaでは「いわゆるRoRタイプ」と言えるフレームワークは登場しませんでした。 その流れを変えたのは、Groovyです。Groovyの登場により、JavaでもLL言語のような小回りの聞くコーディングが可能となりました。そのおかげで、ようやくJavaの世界にも遅まきながら新しい世
最近、増井君と私でアーキテクチャの話をすることが多いのだが、そんなディスカッションの中で気に入っているのは左の図のようなアーキテクチャ。 もちろん、核となるのはビジネスロジックを含んだModelの部分。そこをしっかりと実装し、内部構造を隠す粒度の荒いインターフェイスを定義し、外から何をされてもデータの整合性が壊れない様にすることは何よりも大切。 そして、そのModel層へのインターフェイスを特定の言語に依存したクラスやAPIではなく、HTTP上でJSON(XMLでもかまわない)をやりとりするだけの RESTfulなWeb Serviceにすることがミソ。こうすることによりにより、どんなに締め切りに負われようが、誰がControllerを実装しようが「ずるができない」ように作っておく(ずる=本来使うべき外部インターフェイスだけでなく、Model内部に直接アクセスして依存関係を作ってしまう事)
先日のMVCの議論の際には、私自身いろいろと勉強させていただいたが、少し心配になったのは、「MVCの定義だって時代とともに変わる」「ウェブサービス用のMVCはSmalltalk時代のMVCとは異なるもの」「MVCなんか理解してなくてもアプリケーションが作れればいいじゃん」など、そもそも「MVCとは何か」どころか「デザイン・パターンとは何か」を理解していないんじゃないかと思われる発言が見られたこと。ということで、今日はデザイン・パターンについてひと言。 デザイン・パターンとは、(業界に蓄積されたノウハウに立脚した)何かを作る際の指針のこと。ソフトウェアに限らず、ものを作るときにはさまざまな(場合によってはお互いに矛盾する)要求条件や制約が課せられるわけだが、そんな時に過去にさまざまな事例を解決してきた先人の知恵を「パターン化」してノウハウとして身につけておけば、似たような事例に出会った時に効
昨日の「Ruby on Railsの『えせMVC』の弊害」というエントリー。若干「釣り」の要素が含まれたタイトルが功を奏したのか、たくさんのフィードバックがいただけた。そんな中で見えて来たのは、この問題はRailsに限った話ではなく、業務用アプリケーションで使われているJavaや.Netの世界でもよく見られる問題だということ。 その「問題」とは、ActiveRecordに代表されるO/Rマッピングの技術の進化が、本来のMVC(そしてオブジェクト指向そのもの)のメリットを無視した「えせMVC」な設計を助長している、という問題である。 ・MVCやオブジェクト指向を表面的にしか理解していないエンジニアが増えている(ここが根本的な問題) ↓ ・SQLを自分で記述しなくて良いO/Rマッピングはとても魅力的(これはこれで別の問題を含んでいるが、このエントリーではあえて突っ込まない) ↓ ・O/Rマッピ
Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある RailsのえせMVC疑惑で盛り上がってますね。Railsが「えせMVCフレームワーク」ではないのは、みんな知っていると思うので、記事、コメントをみて勘違いしている人が多そうな部分に一言書いておきます。 まず、おかしいのはsatoshiさんのこの意見。 PhotoShareは主にRailsで作られているので、ModelはActiveRecordが担当しているわけだが、Modelのレイヤーが非常に薄いために(O/Rマッピングをしているだけ)、データベースの整合性の責任がController側にある。そのため、ちょっとした機能変更のたびにAPIレベルでのテストを大量に走らせなければならないし、それでもどうしてもミスが生じてし
はてブをちら見してあれだったんで、書いておきます。タイトルは釣りタイトルっぽいですが、そんなこともなくまったくもって正直な気持ちです。 圧倒的に生産性の高い人(サイエンティスト)の研究スタイル フレームワークに踊らされるヒマがあったら、このエントリを繰り返し100回でも200回でも読んで実践してみるべきです。(こちらも1,000オーバーのブクマが付いてはいますね。) それだけの価値がこのエントリにはあります。 どうしてもフレームワークについて読みたいなら、大前研一さんの「企業参謀」「続企業参謀」をやっぱり100回でも200回でも読んで、その後で「マッキンゼー現代の経営戦略」を読んで衝撃を受けて、そこで「企業参謀」に戻ってみたら衝撃を受けたはずのことがすべてその何べんも読んだはずのその本に書いてあったことに気付いてぶっとんでみればいいと思います。 最近では斉藤嘉則さんの本のほうが人気のようで
ホッテントリメーカーからタイトルを頂戴した。id:phaさんありがと。 社会人なら押さえておきたいフレームワーク思考 : LINE Corporation ディレクターブログが非常に人気で今年のアルファブロガー(というかエントリ大賞に見える)大賞にもノミネートされている。こういう記事はニーズがありそうなので、僕なりにフレームワーク思考についていくつかサンプルを用意し、僕が使うチャートのサンプルを紹介しておきます。 というか1000以上のブクマとか・・・嫉妬!激しく嫉妬!!ハンカチ噛んじゃう!!!! そもそも議論しちゃいけないこと 個人の価値観に依拠し、お互いの主張を出し合っても全体として合意が得られそうにないこと。例えば「浮気の定義」とか。こんなのは議論したって全体最適なんて導けるわけが無いので、ビジネスの場では全く持ってムダです。居酒屋でやりましょう。 仕事で議論することの意味 あなた
ITの世界では、「MVCモデル」というものが知られている。 「MVC」とは、「Model」 「View」 「Controller」の頭文字で、ごく大ざっぱには M (モデル) - データ V (ビュー) - 見せ方 C (コントローラ) - ロジック のような意味だ。これを混ぜてしまうのではなく、別々に切り離す設計にしておくと、うまくいくと言われている。 このMVCの考え方は、ITだけではなく、Webそのものにも適用できそうに思う。 M (モデル) - コンテンツ V (ビュー) - デザイン C (コントローラ) - テクノロジー という感じだ。 かつて、まだブログもなかった頃は、みんな「ホームページ」を作っていた。HTMLを手書きしたり、ツールを使って、ページを1枚1枚作っていた。 この状態では、コンテンツ、デザイン、テクノロジーがごちゃまぜになっている。テキストを書きたいだけだとして
はじめに 本連載では、PHP上で動作するアプリケーションフレームワークの「Zend Framework」について紹介していきます。本連載では、以下の内容を扱う予定です。Zend Frameworkフレームワークの特徴Zend Frameworkを利用するための環境設定手順Hello, Worldアプリケーションの作成/基本的なコンポーネントについての解説その他Zend Frameworkにおける各種コンポーネントについて 導入の今回は、まずZend Frameworkの特徴と環境設定手順までを紹介します。対象読者 PHPの基本構文は一通り理解しているが、フレームワークを利用したことはないという方を対象としています。必要な環境 Zend Frameworkは、PHP5.1.4以降とWebサーバがインストールされている環境で利用可能です。本稿ではWebサーバとしてApache2.2を、OSに
Ext JS, The Ext teamは1日(米国時間)、Extの最新版となる「Ext 1.1」を公開した。ExtはJavaScriptで開発されたWebアプリケーションフレームワーク。スタンドアロンで提供されているフレームワークで、軽量HTMLエディタ、新しいExt.Ajaxユーティリティクラス、拡張されたDateFieldおよびDatePickerコンポーネント、整備されたドキュメントなどに特徴がある。以前のバージョンと比較してバグ修正も実施されている。 Ext 1.1では、とくに他のサードパーティライブラリへの依存がなくなった点が特徴的。このためExtを使ってWebアプリケーションを開発する場合にはExtだけを用意すればよくなった。ただし他のライブラリと共有するためのアダプタ機能は引き続き提供されるため、デベロッパのチョイスで複数のライブラリやフレームワークを組み合わせて使うことも
別に個人的にGREEでEthnaを使ってたから、とか藤本さんと個人的に知り合いだからだとかそういう理由じゃなくても、ここでEthnaが引合いに出されるのはやっぱり違和感がある。だからあえて書く。勘違い君を増やしたくないので、ネタにマジレス。 EthnaってあのクソなStrutsの劣化コピーwwwwww -- Ethnaは確かに洗練されたフレームワークではない。それは誰しもそう思うだろう。実際に一緒に仕事をしていた同僚はみなRoRを引合いに出しては「なんでEthnaには○○がないの?」と言っていたように思う。でも、フレームワークって洗練されているか否かという観点で語るもんじゃない。現実世界の問題 (つまり案件一つ一つ) を、どうやって大勢でよってたかって解決するか、という解法に対するアプローチに過ぎないからだ。そして、いかなるアプローチでも現場の大多数が違和感を感じるならそれを選択するべきで
Googleは3月8日(米国時間)、Guiceの初のメジャーリリースとなるGuice 1.0を公開した。GuiceはJavaで開発されたDI(Dependency Injection)フレームワーク。シンプルなアーキテクチャになっており、アノテーションやジェネリックを活用した開発が特徴。 Guiceが依存性注入できるのはコンストラクタ、フィールド、メソッドなど。セッターメソッドにかぎらず、複数の引数をとるメソッドに対しても適用できる。そのほかの特徴としてカスタムスコープ、環状依存への対応、スタティックメンバーのインジェクション対応、Spring Frameworkとの統合、AOP Allianceメソッドインターセプションなどがある。 Guiceはすでに数カ月にわたり、Googleにおけるミッションクリティカルアプリケーションにおいて採用されている。Google最大のアプリケーションである
たまたま講読している php-dev というPHPの実装を日本語で議論するメーリングリストで「mbstring の新関数」というスレッドがあった。新規にmb_list_encodings_alias_names()という関数を追加したらしいのだが、既存のmb_list_encodings()とどう違うのかどうかという議論がわきおこっている。 ここでは、mb_list_encodings()を題材にどうやってphpの実装を理解していくか、そのプロセスを記述してみたい。もちろんこの方法がベストであるとか、この方法でなければいけないとか、いつでもこの方法が適用可能だなんてことを主張するつもりは一切ないが、一つの例として大規模ソフトウェアの微視的理解方法を理解いただきたい。 1) mb_list_encodingsがどこで利用されているかを知る。 $ cd /usr/src/php-5.1.4 $
本連載では今話題のフレームワーク「Ruby on Rails(以下、Rails)」と現在Webアプリケーション開発で主流であるJavaのフレームワーク群を比較していきます。 比較軸については、開発に関する事項(生産性やメンテナンス性など)を中心に解説していきます。第1回の今回はO/Rマッピングを提供するフレームワークについてです。 O/Rマッピングとは、オブジェクトとRDBのテーブルをマッピングすることをいいます。O/Rマッピングフレームワークはオブジェクト指向とRDBの仲介人となることで、アプリケーションの開発生産性を向上させます。 Railsからは同梱の「ActiveRecord」というO/Rマッピングのコンポーネントを取り上げます。対してJavaのO/Rマッピングとしては、もっとも知名度が高いと考えられる「Hibernate」と、Javaの正式仕様として策定された「Java Pers
サポートページ(ダウンロードや正誤表)を探す 上の検索ボックスにキーワードなどを入力して[検索]ボタンを押してください。検索結果画面の上部に「サポートページを探す」というタブがありますので,これをクリックするとサポートページのみの検索結果が表示されます。 例)「今すぐ使える Excel2003」を入力して[検索] → 「サポートページを探す」をクリック 書籍の内容についてのお問い合わせはコチラ
オープンソース・ミドルウェア・ベンダーの米JBossは6月13日、今回で3度目となる年次ユーザー・コンファレンス「JBoss World 2006」(6月12〜15日:ラスベガス)において、Web 2.0対応をうたった同社初のアプリケーション・フレームワーク「Seam 1.0」を発表した。 JBoss World 2006では、ベンダー認証プログラムをSaaS(Software as a Service)プロバイダーに拡張し、エンタープライズ向けオープンソース製品のサポート基盤を強化していくこと。JBoss Operations Networkに含まれるコア・システム管理エージェントをオープンソース化し、独立系ソフトウェア・デベロッパーへのオープン管理プラットフォームの普及促進を図ることも明らかにされた。 JBossの製品管理担当副社長ショーン・コノリー氏によると、これらの発表には、自社ソ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く