2007-01-01から1年間の記事一覧
GRASPとは General(汎用) Responsibility(責任) Assignment(割り当て) Software(ソフトウェア) Patterns(パターン) の頭文字でオブジェクト指向のドメインオブジェクト設計をのための原則です。 より詳しく言えば、オブジェクトへの責任割り当て(…
クラスへの責任割り当てパターンであるGRASPパターンを噛み砕きます。 「責任=メソッド」をクラスに割り当てる一般的原則は「情報エキスパート」パターンです。 責任の遂行に必要な情報を持っているクラスを「情報エキスパート」と呼びます。必要な情報を全…
GuiceとServletの連携というのをやってみます。 今回試すのは、Guiceで管理するオブジェクトに「RequestScoped」「SessionScoped」というスコープを設定することです。 Guiceのスコープの範囲で、「リクエスト」と「セッション」が使えるようになります。 Gu…
id:arumaniさんのところでやっていたAOPの解説をみながらGuiceを使ったAOPを触ってみる。まずは、基本的なDIのサンプルとして以下のようなクラス構成をとります。 (GuiceによるDIの基礎編"GuiceでHelloWorld”は、KronosのHPで扱っています。まずはそちらを…
Guiceで、AOPを利用するためのポイントとなるのは、設定を記述するModuleです。 今回は、MyModuleを分解して行きます。まずは、昨日と同じソースコード。(行番号を振りました) 01: package net.kronos_jp.guice.aop; 02: 03: import com.google.inject.Abst…
Genericsについて基礎をしっかり学ぼうと思って調べていたら、 Javaエンジニア教育コンサルをやっている上司よりこんな本を紹介された。Java 2 Standard Edition 5.0 Tiger―拡張された言語仕様について作者: 柴田芳樹出版社/メーカー: ピアソンエデュケーシ…
Interface Matcher 既知の実装クラス AbstractMatcher public interface Matcher<T> Returns true or false for a given input. 与えられた入力に対してTrueまたはFalseを返します。 Method Summary Matcher and(Matcher other) Returns a new matcher which re</t>…
Class Matchers java.lang.Object └com.google.inject.matcher.Matchers public class Matchers extends Object Matcher implementations. Supports matching classes and methods. Matcherの実装であり、マッチングクラスおよびメソッドをサポートします。 …
Interface Module com.google.inject.ModuleAll Known Implementing Classes: AbstractModule, ServletModule public interface Module A module contributes configuration information, typically interface bindings, which will be used to create an In…
Class Guice java.lang.Object └com.google.inject.Guice public final class Guice extends Object The entry point to the Guice framework. Creates Injectors from Modules. Guiceフレームワークのエントリーポイントです。Module群からInjectorを作成し…
C#2.0と比較したときのC#3.0の新しい言語仕様を紹介します。 引用元:http://www.codepost.org/view/126動的型付け言語の影響を強く受けた仕様だという印象があります。(MSらしいなぁ) 「var」キーワード VB6.0以前のVariant型に似たものでしょう。「何で…
Javaを使っていても、オブジェクト指向分析・設計をやっていても、結局「手続き型のアーキテクチャ」になっている企業システムをよく見かける。そして多くの場合、それがそのプロジェクトでは最も良い選択肢であると感じる。マーティンファウラーさん著のエ…
GuiceはJavaのGenerics機能をフル活用したタイプセーフなフレームワークです。 私も、当初よりGenerics機能は、Javaの静的型付け言語的良さを強化する素晴らしい機能だと思っていましたが、実用方法としてはCollectionフレームワーク以上のものが思いつきま…
ORMの対象領域で有名なインピーダンスミスマッチだけど、 Webアプリケーションの場合、StrutsやServlet&JSPなんかを使うと ViewとModel層にもインピーダンスミスマッチが発生してしまうのではないだろうか?O-Rのインピーダンスミスマッチは、モデリングの…
Kronos社内では最近開発プロセスの優劣について話題が熱い。 開発プロジェクトの正解を探す旅をはじめてこそ、真のエンジニアに近づけると思うのでこの傾向はとても好ましい。 しかしこの議論には、まずはさまざまな前提を先に共有すべきだ。 ■ 究極の開発プ…
■DIの説明で「生成処理の一元管理のメリット」を言うなら「一時的なクラスの切替のシナリオ」を使うべき DIのメリットを説明するときの話。 DIで管理することで「具象クラスに仕様変更があったときに切替が容易」といいますが、Eclipseリファクタリング全盛…
■インターフェイスは単体では依存性を弱めない インターフェイスの効能として、よく「依存性を弱める」「疎結合にする」があげられますが、これはインターフェイスだけの効能ではありません。依存性を弱めるにはインターフェイスの仲介だけでは駄目です。 イ…
あるDIに関連するFrameWorkの本の監修レビューをしています。 その中で思う色々を以下につづります。
要求 顧客が表面的に欲しがっている事項 要件 要求の中でも、なくてはならない必須事項 このとき、「顧客にとって要求はすべて要件では?」という疑問があるかもしれないが、顧客は実現可能性(コスト・納期含む)を検討していない。 顧客要求(やりたいこと…
SpringComparison Springとの比較How does Guice compare to Spring et al? The Spring Framework, created by Rod Johnson, blazed the Java dependency injection trail. If not the first dependency injection framework, you can certainly credit Spri…
プロジェクトマネージメントで四苦八苦しながら考えてることをまとめていきたいと思います。 マネージメントに首を突っ込んだ当初「見積」をどうやっていいかわからなくて困った。 「不確実な未来をどう見積もったら良いのか?」に非常に苦しむ。 見積段階は…
TheServerSide.comに掲載された「UsingTerracottaDSO」の記事の翻訳 Terracottaとは 複数のJavaVM上で同じJavaオブジェクトを共用できるオープンソース製品。 2005年の製品登場時期より150台を超えるWEBコンテナのセッションをクラスタリングする事例が出る…
WicketのStockQuote Componentサンプルのチュートリアルカスタムコンポーネント: 株式相場 Custom Component: StockQuote This example shows how to create a custom Wicket component: a stock quote component. We assume you already are familiar with…
Wicketのマークアップの継承サンプルのチュートリアルThis markup inheritance example show you how to create reusable page layouts and panel layouts. このマークアップ継承のサンプルでは、再利用可能なページレイアウトおよびパネルレイアウトの作り…
WicketのAjax カウンターサンプルのチュートリアルAjax CounterAjax カウンターThis example shows you how to use Wicket's Ajax behaviors and components by building a simple counter that updates through Ajax link clicks. このサンプルは、Ajaxリン…
Wicketのフラグメントの利用法サンプルのチュートリアルフラグメントを使うThis example shows you how to use fragments (Wicket 1.2 feature) to lessen the burden on extra markup files. Fragments are 'inline panels' and are a quick way of using p…
付録:Injectorはどうやってインジェクションの要求を解決しているか?The injector's process of resolving an injection request depends on the bindings that have been made and the annotations found on the types involved. Here is a summary of ho…
ようやく完訳しました。多分めちゃくちゃ誤訳だらけです。自分で読んでて意味判らんところもありますので。。よかったら御指摘ください。 id:shot6さんが一覧化してくださいました。 http://d.hatena.ne.jp/shot6/20070320 一覧だと上から読めますね。 あり…
会社の技術情報サイトに寄稿してます。 http://www.kronos-jp.net/tech_list.htmlすでに出回りまくった初級編ですが、よろしければ!
Wicketの特徴 ※ 最近Guiceと共に気に入ってるWicketの公式サンプル解説を訳します。 Wicket (http://wicket.sourceforge.net)