new ways around generation gap pattern
DESCRIPTION
The Generation Gap Pattern (see also John Vlissides) is widely used to separate generated code from modifdied/extended code. But the Generation Gap Pattern isn't always aplicable - from my experiences it fails if you generate code into areas with partly complex inheritance hierarchies like Persistence Layer with Entity, Embeddable, EJB3 etc. Using a modern Generation Framework as oAW (openArchitectureWare) from Eclipse Modeling Tools Project you can implement a Veto Strategy in your workflow components to optimize file handling using Generation Gap Pattern. In this presentation I introduce a VetoRedirectStrategy to find ways without applying the Generation Gap Pattern. I tried to make a presentation partly in ZEN style and with easy-to-understand slides - so have fun. HINT: YOU CAN WATCH THESE SLIDES AS A VIDEO+AUDIO: http://vimeo.com/ekkescorner Additional Informations: http://ekkes-corner.org (blog in english) http://ekkes-ecke.org (blog in german) http://ekkes-corner-tv.org (video podcasts) iTunes (search for "ekkes-corner") @ekkescorner (twitter) references: (c) 1996 John Vlissides "Generation Gap Pattern" http://www.research.ibm.com/designpatterns/pubs/gg.html Article Heike Behrens "Generation Gap Pattern" http://www.1160pm.net/2009/04/23/generation-gap-pattern/TRANSCRIPT
ekke (ekkehard gentz), softwarearchitect(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
New Ways around Generation Gap Pattern:
ekke (ekkehard gentz), softwarearchitect(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
New Ways around Generation Gap Pattern:
Protected Regions
ekke (ekkehard gentz), softwarearchitect(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
New Ways around Generation Gap Pattern:
Protected RegionsVetoRedirectStrategy
ekke (ekkehard gentz), softwarearchitect(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009
1996
Freitag, 8. Mai 2009
John Vlissides
Freitag, 8. Mai 2009
Generation Gap Pattern
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
1996
2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
?Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
DISABL
ED
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
DISABL
ED
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// /* PROTECTED REGION END */
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
DISABL
ED
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// /* PROTECTED REGION END */
now here‘s changed code
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
DISABL
ED
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */// /* PROTECTED REGION END */
now here‘s changed code
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// some default code/* PROTECTED REGION END */
DISABL
ED
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */// /* PROTECTED REGION END */
ENABLE
D
now here‘s changed code
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */// /* PROTECTED REGION END */
ENABLE
D
now here‘s changed code
DISABL
ED
Freitag, 8. Mai 2009
/* PROTECTED REGION ID(MY_UNIQU_ID) START */// new generated default code/* PROTECTED REGION END */
/* PROTECTED REGION ID(MY_UNIQU_ID) ENABLED START */// /* PROTECTED REGION END */
ENABLE
D
now here‘s changed code
DISABL
ED
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D D D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D D D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D
D
D
D
D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D
D
D
E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
G G D D D
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
vetoG
GD
E E
D
D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D E
veto
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D E
veto
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
D
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
D
=
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E E
G G D
E
D
E
D
x
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E
G G D
E
D
E
D
E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E
G G D
E
D
E
D
E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E
G G D D D
E
E E
Freitag, 8. Mai 2009
src-man M M M M M
src-gen
src-gen-pr
veto
E
G G D D D
E
Freitag, 8. Mai 2009
summary
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
Freitag, 8. Mai 2009
ekke (ekkehard gentz)softwarearchitect(c) 2009 Eclipse Public License (EPL)(c) 2009 iStockphoto.com (some photos)Freitag, 8. Mai 2009
@ekkescornerekke (ekkehard gentz)softwarearchitect(c) 2009 Eclipse Public License (EPL)(c) 2009 iStockphoto.com (some photos)Freitag, 8. Mai 2009
ekkes-corner.org@ekkescornerekke (ekkehard gentz)
softwarearchitect(c) 2009 Eclipse Public License (EPL)(c) 2009 iStockphoto.com (some photos)Freitag, 8. Mai 2009
this presentation is designed in ZEN style
http://www.presentationzen.com/
you can hear and watch at:http://vimeo.com/ekkescorner (video)
iTunes: search „ekkes-corner“ (iPhone)http://ekkes-corner-tv.org (QuickTime)
ekke (ekkehard gentz), softwarearchitect(c) 2009 Eclipse Public License (EPL)
Freitag, 8. Mai 2009