ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

システム理解度の観点から見る、フレームワークに対するライブラリの優位性

Saturday, 30 June 2007 10:31 by sabro

このブログで、何度か書いているように、私はフレームワーク反対派です。今日は、フレームワークに対するライブラリの優位性を、開発者のシステム理解度の観点から説明します。

フレームワークとは、システムの大枠です。フレームワークが、システムの共通処理部分を実行してくれるので、一般開発者は、業務ロジックに特化した部分を、フレームワークの処理の流れの中に、組み込むことになります。

図にすると、こんな感じです。

一般開発者は、フレームワークが実行している処理について、ドキュメントを読んで、大まかに理解していることが多いですが、ソースコードを追うことは、あまりありません。

フレームワークを使わずに、ライブラリを使った場合は、以下のようになります。

フレームワークがないので、処理の流れ全体を、一般開発者が作成します。一般開発者は、ライブラリのドキュメントを読みますが、ソースコードを追うことは、まずありません。

一見すると、フレームワークのほうが、ソースコードを読まれる可能性が高い分、システムに対する理解度が増すのではないかと思いますが、それは間違いです。先ほどの図で、一般開発者が、実装している独自処理部分に、注目してください。

フレームワークを使用した場合は、処理の流れの中で、フレームワークのロジックと、業務ロジックが交互に実行されます。これでは、一般開発者は、処理全体の流れを把握するのは大変です。大体こんな処理をしているだろうという想像は出来ますが、完全に全体を理解するには、他人が書いたソースを追うしかありません。フレームワークの中で、理解不能の例外が発生した場合などは最悪です。フレームワークは、取り外し不可能なので、必死で原因を調査して、ツギハギ的な対応をすることになります。しかも、そのような例は、比較的大きなフレームワークでも起こったりします。

 ライブラリの場合は、一般開発者は処理の流れを全て把握できます。ライブラリは、処理の流れの中に、特定の機能を組み込むため、一般開発者によって、能動的に呼び出されます。ライブラリの中で、理解不能の例外が発生したら、その箇所では、ライブラリを使わないという選択もできるので、ハマることがありません。

一般開発者が作った画面は、通常、一般開発者によってメンテナンスされます。その際に、処理全体の流れが見えていないと、とんでもないポカをやらかす可能性がでてきます。フレームワーク作成者しか、全体の流れが見えないシステムを作るのでなく、一般開発者全員が、処理の流れを細部まで、理解しているシステムを作る。そのためには、フレームワークという枠組みは邪魔でさえあるのです。

Categories:   Architecture
Actions:   Permalink | Comments (2) | Comment RSSRSS comment feed

商用製品はやはりスゴイのか

Saturday, 23 June 2007 14:56 by sabro

帰国ゥ \(^ o ^)/

いやはや、大変なプロジェクトでした。

さて、自分の次のプロジェクトは、Java の商用 J2EE サーバを使うみたいです(まだ、決定ではありませんが)。

私は、無料で開発できるプロダクトばかり触ってきたので、商用サーバは経験がありません。そこで、さらっと、WebLogic や WebSphere のドキュメントを見てみました。

なんということでしょう。

商用製品だけあって、ドキュメントは完全にそろっているし、開発環境は、Visual Studio っぽく、RAD 開発が出来るみたいです。これは、ひょっとすると、NetBeans よりいいかもしれません。今まで、まったく触ってこなかったので、商用製品のポテンシャルを見誤っていたようです。

まあ、商用は高いので、結局自宅ではフリーのやつを使うんですけどね。

Categories:   その他
Actions:   Permalink | Comments (32) | Comment RSSRSS comment feed

カ、カブッた・・・

Wednesday, 20 June 2007 04:29 by sabro

akiyan 氏のサイトで、すばらしいサービスが公開されています。

エンコードマニアックス

流行の技術に流されず、本当の意味でユーザの役に立つサイトだと思います。

ここから本題。

サービスがカブッた・・・orz

さすがに、私が作っていたサイトよりも非常に出来が良く、私のツールで出来ることは、全て、エンコードマニアックスで出来てしまうので、私のサイトは公開するか微妙になってきました。

まあ、JSFの練習のために作っていたサイトなので、その目的は達成しているし、新しいネタを探しますかね ( ̄~ ̄;)

Categories:   その他
Actions:   Permalink | Comments (5) | Comment RSSRSS comment feed

デザインの基礎が学べるノンデザイナーズ・デザインブック

Saturday, 16 June 2007 05:17 by sabro

NY 滞在再延長、オワタ \( ^ o ^ )/

う~ん。蟻地獄のようなプロジェクトですな ( ̄~ ̄;)

さて、私は、NY での生活が長引くことも考えて、色々な本を持ってきました。その内の1つが、「ノンデザイナーズ・デザインブック」です。この本は、Web というよりは、出版物全般について書いてあるのですが、その内容は、デザインに関する基礎を学ぶための教科書的なテイストになっています。

私のように独学でデザインを学び、Tips を真似することばかりやっていると、いずれ限界が来ます、というか来ました。このままでは、いけないと思い、基礎を学べる書籍を探して、この本にたどり着いたわけです。

この本の内容が、非常に参考になったので、特に印象に残った、デザインの4大原則(近接、整列、反復、コントラスト)について紹介しておきます。

近接
意味が似ているコンテンツは、グルーピングして近づけることで、一目で分かるようにしておく
整列
複数のコンテンツ、グループを整列させることで、それらコンテンツ間の関連を表現する
反復
色、形、サイズなどの視覚的要素を、作品を通して反復することで、一体感を出す
コントラスト
重要な要素を、意識的に他の要素と差別化することで、注意を促す。

たった、これだけです。おそらく、これらの原則は、誰でも無意識のうちに使っていると思います。しかし、これらを無意識でなく、意識的に行うことが重要です。デザインしていて、"なんとなくデザインが良くないんだけど、どこが悪いか分からない"、といった経験は誰でも1度くらいあると思います。

どこが悪いかを、言葉で表現できないと、デザインを修正することが出来ません。しかし、次のように、悪いところを言語化できるとどうなるでしょう。

「このコンテンツとあのコンテンツは、意味が近いのに離れすぎていて、近接の原則に反している」

「このページには、明確に他と異なる部分がないので、コントラストに欠け、重要な情報がどこにあるか分からない」

どこを修正すればよいか、一目瞭然だと思います。直感でデザインすることに限界を感じている人は、この本を読むと、論理的にデザインをできるようになります。デザイン初心者にオススメです。


ノンデザイナーズ・デザインブック

Tags:  
Categories:   WebDesign
Actions:   Permalink | Comments (43) | Comment RSSRSS comment feed

JRuby 1.0 リリース

Saturday, 9 June 2007 03:24 by sabro

JRuby 1.0 が、リリースされてるようです。

今のところ、トップページでは、アナウンスされてないみたいですけど、以下のページからダウンロードできます。

http://dist.codehaus.org/jruby/

個人的には、気になるプロダクトですね。

自分は、JRuby の方が、本家より速度が速いと思っていたのですが、ここをみると単純にそうというわけでもないようです。

Tags:  
Categories:   Ruby
Actions:   Permalink | Comments (41) | Comment RSSRSS comment feed

Ruby をさわった

Tuesday, 5 June 2007 05:12 by sabro

NY にも、そろそろ飽きてきた? sabro です。

土日は、それなりに暇ができたので、Java で遊ぼうかと思ったのですが、こちらに持ってきたマシンは、非力なので、少々スペック不足でした。

そこで、重たい IDE や、サーバ製品を使わなくていいように、Script 言語を使ってみることにしました。

実は、私は、Script 言語の経験がほとんどなく、Perl で CGI もどきを 1度書いたのと、Pukiwiki のソースをチラ見しただけなのですが、とりあえず流行りに乗って、Ruby を触ることに。

用意したもの

参考サイト

Ruby は、One-Click Ruby Installer を使って、サクッとインストール。エディタを Vim にしたのは、得意だからではなく、苦手だったから。ついでに、こちらもマスターしてしまおうという魂胆です。Vim で、ガリガリ書くのは、普段 IDE を使い慣れている自分にとっては新鮮でした。

チュートリアルに沿って進めていったのですが、Ruby の直感的な構文のおかげで、特に詰まったりせずに進みました。Java 使いのハマりどころであるクロージャも、Script-Fu で、Scheme を触っていたおかげで、スンナリ理解。(スンナリはウソです。スイマセン。)

今まで、特に気に留めていなかった、JRuby や NetBeans での RoR なども、なんだか、ちょっと気になってきてしまいました (^^)

Tags:  
Categories:   Ruby
Actions:   Permalink | Comments (48) | Comment RSSRSS comment feed