• Development-ﬁrst experience
• Brought hot-reloading to enterprise development
• Seamless transition from "old guard"
• Rapid prototyping of concepts
• Bringing all the platform components together, with
• Driving autowirings through conﬁguration
• GORM -- Easy to employ DDD while maintaining an
• BootStrap.groovy ... Such an undervalued premise
"Smart" Convention over
• Encourages a common (and good!) architecture
for all Grails apps
• Taking MVC to the next level
• "Right place at the right time with the right name"
A Build System for the Web
• Trail blazed the programmatic build system, even
• Completely deterministic build lifecycle
• The basis for all Grails scripts and lifecycle events,
supporting core extensions
Makes the Fun Things Easy
• Grails put Spring, Hibernate, and Groovy into a
• Bringing together desperate tech communities
under a common umbrella (and way of doing
• Built infrastructure around other frameworks,
making them sensible and easy-to-use
"Convention over conﬁguration, taken too
far, doesn't let you wire things together"
- Luke Daley
• Mysterious code generation
• Runtime MetaClass extensions that cause non-
• A "Stringly" typed framework...
• Goldilocks Groovy -- Grails porridge is a bit too hot
Too Far From The Source
• Debugging issues within an incorporated
framework can be really hard
• Stacktraces rarely would reveal the root of the
problem (this has gotten much better)
• Impossible to ascertain the various sources
Bulky & Fat
• Wiring everything together means that everything
must be present
• Produces mega artifacts -- WAR by design, JAR by
option (thanks, Burt)
• Not a good candidate for running in PaaS/cloud
Let's build a plugin framework...
• ... and let's let any unknown number of sources impact
my: app lifecycle; request; development experience;
• Introduces high levels of complexity to every execution
• Binary plugins: and now we're going to let plugins hide
• Really messes up an otherwise sound architecture
"Who the f*%k chose Spring?"
- Rob Fletcher, recent HipChat conversation
A Paradigm Shift in Grails...
• Grails 3 will take on a library approach as a
• No more (or limited) code generation
• Builds will happen through Gradle, using Gradle
plugins ... Limited magic
The Good Parts Will Stay...
• The core concept of convention over conﬁguration
• The sensible incorporation, and wiring together, of
• Agile development experience will remain a
The Best is Yet To Come...
• Grails 3 will make the framework composable --
pick and choose functionality you need
• Introducing "Application Proﬁles" -- a strategy for
grouping goal-oriented features of the framework
• Improved performance -- Performance Legend, Lari
Hotari now a core team member
• Probably see greater adoption of Groovy in the core
• Grails 3 will be built on top of Spring Boot
• Brings the continental Spring ecosystem, and
• Will add common structure and reduce verbosity of
Spring Boot applications, while garnering all the
Migrating from Grails 2.x to 3.x
• There's no migration path here... This is a whole
new way of doing things
• That includes plugins... It's unclear what the plugin
story is for Grails 3 -- likely libraries with lifecycle
• Early adopters of Spring Boot
• Getting a jump start on ﬁguring out the pain points
of Boot integration
• Communicating openly and frequently with the
core team at Pivotal
• Building our own infrastructure around Spring Boot
The next evolution of Asgard will be a
microservice PaaS built on top of Spring Boot
Don't get too wrapped up...
• Designed our PaaS without framework lock-in
• Very much designing for ways that we can evolve
as new technologies (like Grails 3) emerge
• Hoping our experiences with Boot will beneﬁt the
Come work with
us... We need your
Parece que tem um bloqueador de anúncios ativo. Ao listar o SlideShare no seu bloqueador de anúncios, está a apoiar a nossa comunidade de criadores de conteúdo.
Atualizámos a nossa política de privacidade.
Atualizámos a nossa política de privacidade de modo a estarmos em conformidade com os regulamentos de privacidade em constante mutação a nível mundial e para lhe fornecer uma visão sobre as formas limitadas de utilização dos seus dados.
Pode ler os detalhes abaixo. Ao aceitar, está a concordar com a política de privacidade atualizada.