レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

2007-01-01から1年間の記事一覧

そういえばGRASPとは

GRASPとは General(汎用) Responsibility(責任) Assignment(割り当て) Software(ソフトウェア) Patterns(パターン) の頭文字でオブジェクト指向のドメインオブジェクト設計をのための原則です。 より詳しく言えば、オブジェクトへの責任割り当て(…

シンプルGRASPパターン ■Information Expert (情報エキスパート)

クラスへの責任割り当てパターンであるGRASPパターンを噛み砕きます。 「責任=メソッド」をクラスに割り当てる一般的原則は「情報エキスパート」パターンです。 責任の遂行に必要な情報を持っているクラスを「情報エキスパート」と呼びます。必要な情報を全…

Guice & Servlet

GuiceとServletの連携というのをやってみます。 今回試すのは、Guiceで管理するオブジェクトに「RequestScoped」「SessionScoped」というスコープを設定することです。 Guiceのスコープの範囲で、「リクエスト」と「セッション」が使えるようになります。 Gu…

Guiceを使ったAOP

id:arumaniさんのところでやっていたAOPの解説をみながらGuiceを使ったAOPを触ってみる。まずは、基本的なDIのサンプルとして以下のようなクラス構成をとります。 (GuiceによるDIの基礎編"GuiceでHelloWorld”は、KronosのHPで扱っています。まずはそちらを…

Guiceを使ったAOP(2) 〜 Matchersクラス

Guiceで、AOPを利用するためのポイントとなるのは、設定を記述するModuleです。 今回は、MyModuleを分解して行きます。まずは、昨日と同じソースコード。(行番号を振りました) 01: package net.kronos_jp.guice.aop; 02: 03: import com.google.inject.Abst…

Genericsについて調べるならこの本

Genericsについて基礎をしっかり学ぼうと思って調べていたら、 Javaエンジニア教育コンサルをやっている上司よりこんな本を紹介された。Java 2 Standard Edition 5.0 Tiger―拡張された言語仕様について作者: 柴田芳樹出版社/メーカー: ピアソンエデュケーシ…

Guice API翻訳 ■com.google.inject.matcher.Matcherインターフェイス

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>…

Guice API翻訳 ■com.google.inject.matcher.Matchersクラス

Class Matchers java.lang.Object └com.google.inject.matcher.Matchers public class Matchers extends Object Matcher implementations. Supports matching classes and methods. Matcherの実装であり、マッチングクラスおよびメソッドをサポートします。 …

Guice API翻訳 ■com.google.inject.Moduleインターフェイス

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…

Guice API翻訳 ■com.google.inject.Guiceクラス

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# 3.0の新しい言語仕様

C#

C#2.0と比較したときのC#3.0の新しい言語仕様を紹介します。 引用元:http://www.codepost.org/view/126動的型付け言語の影響を強く受けた仕様だという印象があります。(MSらしいなぁ) 「var」キーワード VB6.0以前のVariant型に似たものでしょう。「何で…

手続き型をトランザクションスクリプトと呼べば許される気持ちになる

Javaを使っていても、オブジェクト指向分析・設計をやっていても、結局「手続き型のアーキテクチャ」になっている企業システムをよく見かける。そして多くの場合、それがそのプロジェクトでは最も良い選択肢であると感じる。マーティンファウラーさん著のエ…

Guiceのソースから学ぶGenerics

GuiceはJavaのGenerics機能をフル活用したタイプセーフなフレームワークです。 私も、当初よりGenerics機能は、Javaの静的型付け言語的良さを強化する素晴らしい機能だと思っていましたが、実用方法としてはCollectionフレームワーク以上のものが思いつきま…

View - Modelにインピーダンスミスマッチがある

ORMの対象領域で有名なインピーダンスミスマッチだけど、 Webアプリケーションの場合、StrutsやServlet&JSPなんかを使うと ViewとModel層にもインピーダンスミスマッチが発生してしまうのではないだろうか?O-Rのインピーダンスミスマッチは、モデリングの…

開発プロセスの議論

Kronos社内では最近開発プロセスの優劣について話題が熱い。 開発プロジェクトの正解を探す旅をはじめてこそ、真のエンジニアに近づけると思うのでこの傾向はとても好ましい。 しかしこの議論には、まずはさまざまな前提を先に共有すべきだ。 ■ 究極の開発プ…

DI解説のなかで、DIのメリット説明方法

■DIの説明で「生成処理の一元管理のメリット」を言うなら「一時的なクラスの切替のシナリオ」を使うべき DIのメリットを説明するときの話。 DIで管理することで「具象クラスに仕様変更があったときに切替が容易」といいますが、Eclipseリファクタリング全盛…

DI解説のなかで、インターフェイスのメリットの説明方法

■インターフェイスは単体では依存性を弱めない インターフェイスの効能として、よく「依存性を弱める」「疎結合にする」があげられますが、これはインターフェイスだけの効能ではありません。依存性を弱めるにはインターフェイスの仲介だけでは駄目です。 イ…

レビューコメント

あるDIに関連するFrameWorkの本の監修レビューをしています。 その中で思う色々を以下につづります。

要求と要件

要求 顧客が表面的に欲しがっている事項 要件 要求の中でも、なくてはならない必須事項 このとき、「顧客にとって要求はすべて要件では?」という疑問があるかもしれないが、顧客は実現可能性(コスト・納期含む)を検討していない。 顧客要求(やりたいこと…

Guice Featured Wiki Pages■Spring Comparison

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…

見積もりの良し悪し

PM

プロジェクトマネージメントで四苦八苦しながら考えてることをまとめていきたいと思います。 マネージメントに首を突っ込んだ当初「見積」をどうやっていいかわからなくて困った。 「不確実な未来をどう見積もったら良いのか?」に非常に苦しむ。 見積段階は…

UsingTerracottaDSO via TSS

TheServerSide.comに掲載された「UsingTerracottaDSO」の記事の翻訳 Terracottaとは 複数のJavaVM上で同じJavaオブジェクトを共用できるオープンソース製品。 2005年の製品登場時期より150台を超えるWEBコンテナのセッションをクラスタリングする事例が出る…

Wicket Examples ■StockQuote Component

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 Examples ■Markup Inheritance

Wicketのマークアップの継承サンプルのチュートリアルThis markup inheritance example show you how to create reusable page layouts and panel layouts. このマークアップ継承のサンプルでは、再利用可能なページレイアウトおよびパネルレイアウトの作り…

Wicket Examples ■Ajax Counter

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 Examples ■Using Fragments

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…

[翻訳]Guice User's Guide ■34. Appendix: How the Injector resolves injection requests

付録: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…

Guice User's Guide 完訳

ようやく完訳しました。多分めちゃくちゃ誤訳だらけです。自分で読んでて意味判らんところもありますので。。よかったら御指摘ください。 id:shot6さんが一覧化してくださいました。 http://d.hatena.ne.jp/shot6/20070320 一覧だと上から読めますね。 あり…

GuiceでHelloWorld

会社の技術情報サイトに寄稿してます。 http://www.kronos-jp.net/tech_list.htmlすでに出回りまくった初級編ですが、よろしければ!

Wicket Examples ■Wicket Features

Wicketの特徴 ※ 最近Guiceと共に気に入ってるWicketの公式サンプル解説を訳します。 Wicket (http://wicket.sourceforge.net)