J2EE STUDY MEETING 11th
第11回J2EE勉強会にいってきました。(なんか勉強会の時しか日記書いてないような…)
今回は秋葉原のわっくほっく東京サテライト校@ダイビルで行われました。
内容はいつもながら非常〜に充実していて大変ためになりました。著名な方もさらに多数参加されていてびっくり。いや〜この会ってすごい。
今回は80人を越える参加者に加えテレビの取材(勉強会の内容とは関係ない趣旨っぽかったけど)も入ったりとちょっとEXCITINGでした。
そんな中、私は徹夜仕事あとのヒゲボーボーのいでたちで参加してもーた。反省。(しかも取材カメラの真正面…きっと放送禁止でカットだな…)
そんなわけで(どんなわけで)(C)koichikさん 今回はメモ風にかきます(当日のミミズ文字encription方式で暗号化されたメモを解読しつつ…)
インターセプターのメソッド・シグニチャー
public Object someMethod(InvocationContext ic) throws Exception … 太字部分は固定
-
-
-
- × pointcutsなし … ん〜いまいち
-
-
ちなみにインターセプターの実装に関して
- ダイナミック・プロキシ タイプ … Self Calling NG (自メソッドコール時、インターセプターを通らない)
- バイト・コード・エンハンスメント タイプ … Self Calling OK (自メソッドコール時、インターセプターを通る)
-
-
- Dependency Annotation (なかなかCOOLなネーミング!) の適用対象
- Configuration by Exception
-
- Next Generation J2EE Development / 比嘉さん (帰り際へんな質問しちゃってすみません mOm;;;)
- Agenda
- DIコンテナは Alternative から Main Stream へ
- Innovations born from Open Source (by Rod Johnson)
- オープンソース発展の要素
- インターネットにより容易に遠隔地間のコミュニケーションが取れる時代
- コミュニケーション・タイムラグの減少
- E-mailによる効率的な非同期コミュニケーションの実現
- インターネットにより容易に遠隔地間のコミュニケーションが取れる時代
- ミドルウェア系ソフトウェア・プロダクトのライフサイクル
- HOT SPOT ⇒ 標準化
- Less Configuration
- コンポーネント結合は設定なしで行えるようにし、設定情報としては、必要最小限の環境設定などにする
- Convention over Configuration
- ≒Configuration by Exception
- Seasar2 Next Generation
- フレームワークの比較
- Agenda
SpringとSeasar2
AOP(Intercepter)
- インターセプターのグループ化
- プロキシー タイプ
※ 内容が特濃なので力尽きました。ここからはへなちょこ英語で書いた個人用メモなので読まないで下さい。(だったら書くな〜ごるぁ〜)
-
- O/R Mapper
- Specification - Persistent API
- Implementation - Hibernate3, TopLink
- Weakness - DI, AOP are not supported => Next^2 Generation
- Hard to testing
- DAO(Data Access Object) => de facto standard
- Requirements now and then
- Codeless: EJBQL, Persistent API
- method signature
- annotation
- Codeless: EJBQL, Persistent API
- 2Way SQL
- Write once, run both on Query Tool and Application.
- O/R Mapper
SELECT * FROM emp WHERE id=/*id*/1
SELECT * FROM emp
WHERE job = 'clerk' AND
/*IF sal != null*/
sal >= /*sal*/2
/*END*/
-
-
- What is DXO ? (Data Exchange Object)
- (similar to Data Transfer Object ? / in my opinion)
- Object which exchange between Domain Model and Presentation Model
- Codeless transformation ! (because it costs too match in hand writing)
- Lyering Architectre
- Layers and related factors
- Presentation Layer
- Presentation Model
- Business Logic Layer
- Domain model
- Persistent Layer
- Presentation Layer
- Practical advantages of Layering
- Easy to find a person who has a skill of each layer. (not all layers)
- Minimal effects when specification has changed
- Factors for further figure
- Service (Service Layer Pattern)
- DXO
- Application Logic
- independent from SERVICE
- independent from DOMAIN
- not 'pure' domain logic
- Domain Logic
- Generalization -> Re-Use
- 'pure' domain logic
- Domain Model
- Rich Domain Model - include Domain Logic
- Thin Domain Model - do not include Doamin Logic
- Modeling of Domain Model
- report, master, data-processing
- manual procedure
- user's point of view
- specification
- Do xxx yyy
- Listing style
- Think GOAL first and then make procedure to it.
- Specification, Business-Procidure, Name, Result, Procedure
- Categorize Application Logic and Domain Logic
- Application Logic
- DO xxx(class) YYY(method)
- Grouping by XXX
- Domain Logic
- Rich
- mapping XXX to domain model
- XXX which could not map to any model
- non-persistent model (object)
- persistent <-DI- non-persistent
- solution
- persistent --new--> non-persistent
- persistent =static= non-persistent
- ○ Object Oriented
- × Less Testability
- × Impossible to replace domain-logic object by DI container
- × Logic modification effects implies Model modification
- Thin
- Opposit to above ○×
- mapping XXX to none (any domain model could not handle it)
- class name rule: XXXLogic
- Martin Fowler
- Transaction Script => Duplication
- Rich
- Layers and related factors
- What is DXO ? (Data Exchange Object)
-
- Lightning talks
- Mr.Koichik
- PofEAA / Martin Fowler
- ??? / Eriksson Penker (look [only?] the chart of p.65)
- meta model of business model
- -> Research -> Rule -> Process -> [RRP]
- Principles of the ..(i've forgot).. Application / Ronald.G.Loss
- Hoah(?)'s CSP model
- Mr.Shot
- Java Reflection in Action (i will buy)
- Mr.Ota
- Mr.t-Wada
- RtP Referctoring to Patterns
- Mr.Koichik
- Refactoring and Testing (TDD story part2)
- TDD != Certification Test
- TDD == Specification Technology
- RAD, Quality
- Deploy Test
- Custom Test
- QA Test
- Refactoring => easy to understand, easy to modify (for specification satisfaction)
- 2 types of refactoring
- Sence of refactoring
- definition (by Fowler)
- noun:
- verb:
- definition (by Fowler)
- Who ?
- Parameters
- rename
- extract
- inline
- Parameters
- Refactoring is not rework
- t-WADA's view
- published method should not be changed (Green to Green)
- reset-culture - testing/refactoring
- definition of "simple"
- refactoring … codes not be thrown away
- Chart
- Y-axis: Dirty, Clean
- X-axis: Don't work, Work
- Sequence
- red =commit=> green =commit=> refactor =commit=> green
- noemal <=> evolutionary design
- Development Process
- purpose
- certification
- time
- value
- maintenance cost
- improvement of quality
- Test Phase
- Unit Test (:= Interaction-based Test / Fowler)
- Assembly Test
- Function Test
- Grouping Tests by Granularity and Type(interraction/state)
- State-based Test include all Functional Test, almost Assembly Test and a little Unit Test
- Interaction-based Test include almost Unit test and a little Assembly test
- Green to Green <=> All Green to All Green
- Unit test may not work after refactoring
- Test Scale (Granularity)
- Mock Test - bottom-up
- Acceptance Test - satisfy functions (not enough : Red signal term is to long)
- published method should not be changed (Green to Green)
- In J2EE
- Both 2 below are funcitonal (blackbox) <= work well with refactoring
- Cactus
- Http Unit
- Both 2 below are funcitonal (blackbox) <= work well with refactoring
- Advanteges of Mock Test
- feed back
- bad specification (it takes long time to notice)
- not EasyMock / too many mocks
- crash test dummy (illegal)
- Tell, Don't Ask (collaborator)
- radical approach
- stub-out -- assembly test
- Summary
- ?????
- Make balance of specification decision
- Enjoy Testing !
- To Be Continued...