new ways around generation gap pattern

Post on 17-Nov-2014

2.251 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

top related