Gavin Hogan presented on using Grails, a rapid web application development framework built on Groovy and Spring. Some key points:
- Grails leverages Groovy and Spring to provide convention over configuration and generate Spring beans and wiring automatically.
- Object-relational mapping is handled through GORM, which is built on Hibernate. Dynamic finders and validation are also included.
- Views use Groovy Server Pages (GSP) which are similar to JSP. Taglibs allow reusable view components to be created.
- Plugins extend functionality and can package entire aspects like security. The plugin ecosystem contains solutions for many common needs.
One of the goals of Grails 3 is to reach out of the servlet container. Grails 3 has a concept of application profiles for choosing a certain set of core plugins to use. In this talk Lari will present how Ratpack fits in Grails 3. He will also talk about how Grails 3 supports micro service architectures.
Building a Web Frontend with Microservices and NGINX PlusNGINX, Inc.
Watch the webinar on demand at: nginx.com/resources/webinars/web-microservice-controlled-stateless-and-connected
While many articles and books have been written about service design, there is a scarcity of information about how to integrate rich, user-experience-based web development onto a microservice-based application. In many respects the web frontend is the most complex part of the application, but it needs to scale and interface with your system just like any other microservice.
The question is, how will your frontend system access your backend microservices? What will you do to make the frontend as stateless and ephemeral as the rest of your microservices? How will you provide your JavaScript application components with access to your microservices?
Watch this webinar to learn how to:
* Build your frontend using Model-View-Controller frameworks
* Implement session state as a cached component in an attached resource
* Use NGINX Plus routing and load balancing to give JavaScript access to microservices
Grails project lead Graeme Rocher delivers a deep dive into GORM, the object mapping technology used by Grails, which provides support for Hibernate (SQL), MongoDB and Neo4j amongst other implementations.
Npm, bower, Angular, jQuery, grunt, gulp, browserify, requirejs, ember, backbone, requirejs, amd .... thousands of micro frameworks, libraries and tools.
The question is how do you avoid getting lost within the jungle of modern JS frameworks, libraries and tools? How to be effective and actually deliver while every day there is a new cool framework or tool coming out and one of the developers in your team would love to try it. In production.
In this talk I will explain the right strategy for dealing with the rapid changes in JS landscape and choosing the right set of tools for doing the job.
Key takeaways:
Get to know which js tools/libraries works well together.
Which tools/libraries are not cool anymore and why?
How to deal with library/tool dependency conflicts?
How to find good quality tools and frameworks?
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...Igalia
By Michael Catanzaro.
Ozone is Chromium's platform abstraction layer, which allows porting Chromium to different environments by writing new Ozone backends. This talk will discuss progress in the Ozone-Wayland project, which allows running Chromium on Wayland.
One of the goals of Grails 3 is to reach out of the servlet container. Grails 3 has a concept of application profiles for choosing a certain set of core plugins to use. In this talk Lari will present how Ratpack fits in Grails 3. He will also talk about how Grails 3 supports micro service architectures.
Building a Web Frontend with Microservices and NGINX PlusNGINX, Inc.
Watch the webinar on demand at: nginx.com/resources/webinars/web-microservice-controlled-stateless-and-connected
While many articles and books have been written about service design, there is a scarcity of information about how to integrate rich, user-experience-based web development onto a microservice-based application. In many respects the web frontend is the most complex part of the application, but it needs to scale and interface with your system just like any other microservice.
The question is, how will your frontend system access your backend microservices? What will you do to make the frontend as stateless and ephemeral as the rest of your microservices? How will you provide your JavaScript application components with access to your microservices?
Watch this webinar to learn how to:
* Build your frontend using Model-View-Controller frameworks
* Implement session state as a cached component in an attached resource
* Use NGINX Plus routing and load balancing to give JavaScript access to microservices
Grails project lead Graeme Rocher delivers a deep dive into GORM, the object mapping technology used by Grails, which provides support for Hibernate (SQL), MongoDB and Neo4j amongst other implementations.
Npm, bower, Angular, jQuery, grunt, gulp, browserify, requirejs, ember, backbone, requirejs, amd .... thousands of micro frameworks, libraries and tools.
The question is how do you avoid getting lost within the jungle of modern JS frameworks, libraries and tools? How to be effective and actually deliver while every day there is a new cool framework or tool coming out and one of the developers in your team would love to try it. In production.
In this talk I will explain the right strategy for dealing with the rapid changes in JS landscape and choosing the right set of tools for doing the job.
Key takeaways:
Get to know which js tools/libraries works well together.
Which tools/libraries are not cool anymore and why?
How to deal with library/tool dependency conflicts?
How to find good quality tools and frameworks?
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...Igalia
By Michael Catanzaro.
Ozone is Chromium's platform abstraction layer, which allows porting Chromium to different environments by writing new Ozone backends. This talk will discuss progress in the Ozone-Wayland project, which allows running Chromium on Wayland.
This presentation was delivered at the DEVOPS LIVE Meetup 2018 on 5/23/2018. In this talk, I dive into how manage Jenkins jobs and pipelines as code using the Groovy-based DSL supported by Jenkins.
Presented at Rails Rookies Bootcamp, East Tennessee State University in association with the ETSU chapter of the Association of Computing Machinery (ACM), April 13, 2013
In this talk, I'll show you how you can build Alfresco ADF applications using the new version 3.0.0. The new ADF versions include a number of new features and some breaking changes with the past that will make your life easier, I'll show you how to take advantage of it and embrace the change.
Threading Made Easy! A Busy Developer’s Guide to Kotlin CoroutinesLauren Yew
Kotlin Coroutines is a powerful threading library for Kotlin, released by JetBrains in 2018. At The New York Times, we recently migrated our core libraries and parts of our News app from RxJava to Kotlin Coroutines. In this talk we’ll share lessons learned and best practices to understand, migrate to, and use Kotlin Coroutines & Flows.
In this presentation, you will learn:
What Coroutines are and how they function
How to use Kotlin Coroutines & Flows (with real world examples and demos)
Where and why you should use Coroutines & Flows in your app
How to avoid the pitfalls of Coroutines
Kotlin Coroutines vs. RxJava
Lessons learned from migrating to Kotlin Coroutines from RxJava in large legacy projects & libraries
By the end of this talk, you will be able to apply Kotlin Coroutines to your own app, run the provided sample code yourself, and convince your team to give Kotlin Coroutines a try!
Micro service architecture - building scalable web solutions - George James -...Red Blue Blur Ideas
Proper architecture is needed in building enterprise web applications to ensure that it is easily scalable and developers productivity is high. In this session we are going to be talking about:
– What is micro-service Architecture
– What problem we are trying to solve
– Benefits of working with micro-service architecture
– Analysis/Architecting a micro-service application
– How to break down a monolith to use the micro-service architecture etc.
About The Speaker:
George James bio:
George James is a Full-stack software developer at RBBI, he has a Bachelors degree in Electrical Engineering from Ahmadu Bello University but works full time as a software developer. He is experienced in PHP, JavaScript (Front), NodeJS, CSS, Kafka, Kubernetes, GRPC etc., and lots of frameworks and Libraries. George James has been writing code for over 5 years and has a strong passion to learn functional programming.
Akka and AngularJS – Reactive Applications in PracticeRoland Kuhn
Imagine how you are setting out to implement that awesome idea for a new application. In the back-end you enjoy the horizontal and vertical scalability offered by the Actor model, and its great support for building resilient systems through distribution and supervision hierarchies. In the front-end you love the declarative way of writing rich and interactive web apps that AngularJS gives you. In this presentation we bring these two together, demonstrating how little effort is needed to obtain a responsive user experience with fully consistent and persistent data storage on the server side.
See also http://summercamp.trivento.nl/
The Eclipse Orion project provides a platform for building browser-based development tooling. In this talk we will show how we re-used parts of Orion to build the Scripted code editor, an editor-centric and browser-based tool for JavaScript and web developers. We'll talk about the design decisions that led to creation of a new serverside architecture using Node.js and the challenges in getting the Orion code editor to work with it. We'll also look at how we build and maintain modules usable in Scripted and in Orion.
I've been working a lot with React lately and thought it would be a good idea to share what I've learned with the group.
During this talk we'll take a look at Facebook's React library while drawing comparisons to frameworks like Angular. We'll see how we can use React and friends to create a fast and efficient single page app. Attendees are expected to have some familiarity with ES6/ES7 since we the codebase we will be looking at leverages features from the spec.
What we'll be taking a look at:
• React
• React Router
• Redux
• Redux Sagas
• Webpack
• Babel
L’evoluzione delle pratiche di sviluppo, delle architetture e delle infrastrutture è un processo che anche Drupal ha abbracciato, trasformandosi da un CMS per community a un framework PHP moderno.
Drupal oggi permette di creare un'esperienza developer-friendly e può essere la base su cui costruire la vostra applicazione cloud-native.
10,000 microservices are generated each month using JHipster!
During this in-depth session by the two JHipster lead developers, we’ll detail:
How to develop and deploy microservices easily
Scalability and failover of microservices
The JHipster Registry for scaling, configuring and monitoring microservices
Common architecture patterns and pitfalls
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...Vadym Kazulkin
When we talk about prices, we often only talk about Lambda costs. In our applications, however, we rarely use only Lambda. Usually we have other building blocks like API Gateway, data sources like SNS, SQS or Kinesis. We also store our data either in S3 or in serverless databases like DynamoDB or recently in Aurora Serverless. All of these AWS services have their own pricing models to look out for. In this talk, we will draw a complete picture of the total cost of ownership in serverless applications and present a decision-making list for determining if and whether to rely on serverless paradigm in your project. In doing so, we look at the cost aspects as well as other aspects such as understanding application lifecycle, software architecture, platform limitations, organizational knowledge and plattform and tooling maturity. We will also discuss current challenges adopting serverless such as lack of high latency ephemeral storage, unsufficient network performance and missing security features.
Micronaut Deep Dive - Devoxx Belgium 2019graemerocher
3 hour deep dive presentation by Micronaut creator, Graeme Rocher, at Devoxx Belgium 2019 showing how to use advanced features such as Aspect Oriented Programming (AOP), compiler plugins and so on. Associated YouTube video can be found at https://www.youtube.com/watch?v=S5yfTfPeue8
This presentation was delivered at the DEVOPS LIVE Meetup 2018 on 5/23/2018. In this talk, I dive into how manage Jenkins jobs and pipelines as code using the Groovy-based DSL supported by Jenkins.
Presented at Rails Rookies Bootcamp, East Tennessee State University in association with the ETSU chapter of the Association of Computing Machinery (ACM), April 13, 2013
In this talk, I'll show you how you can build Alfresco ADF applications using the new version 3.0.0. The new ADF versions include a number of new features and some breaking changes with the past that will make your life easier, I'll show you how to take advantage of it and embrace the change.
Threading Made Easy! A Busy Developer’s Guide to Kotlin CoroutinesLauren Yew
Kotlin Coroutines is a powerful threading library for Kotlin, released by JetBrains in 2018. At The New York Times, we recently migrated our core libraries and parts of our News app from RxJava to Kotlin Coroutines. In this talk we’ll share lessons learned and best practices to understand, migrate to, and use Kotlin Coroutines & Flows.
In this presentation, you will learn:
What Coroutines are and how they function
How to use Kotlin Coroutines & Flows (with real world examples and demos)
Where and why you should use Coroutines & Flows in your app
How to avoid the pitfalls of Coroutines
Kotlin Coroutines vs. RxJava
Lessons learned from migrating to Kotlin Coroutines from RxJava in large legacy projects & libraries
By the end of this talk, you will be able to apply Kotlin Coroutines to your own app, run the provided sample code yourself, and convince your team to give Kotlin Coroutines a try!
Micro service architecture - building scalable web solutions - George James -...Red Blue Blur Ideas
Proper architecture is needed in building enterprise web applications to ensure that it is easily scalable and developers productivity is high. In this session we are going to be talking about:
– What is micro-service Architecture
– What problem we are trying to solve
– Benefits of working with micro-service architecture
– Analysis/Architecting a micro-service application
– How to break down a monolith to use the micro-service architecture etc.
About The Speaker:
George James bio:
George James is a Full-stack software developer at RBBI, he has a Bachelors degree in Electrical Engineering from Ahmadu Bello University but works full time as a software developer. He is experienced in PHP, JavaScript (Front), NodeJS, CSS, Kafka, Kubernetes, GRPC etc., and lots of frameworks and Libraries. George James has been writing code for over 5 years and has a strong passion to learn functional programming.
Akka and AngularJS – Reactive Applications in PracticeRoland Kuhn
Imagine how you are setting out to implement that awesome idea for a new application. In the back-end you enjoy the horizontal and vertical scalability offered by the Actor model, and its great support for building resilient systems through distribution and supervision hierarchies. In the front-end you love the declarative way of writing rich and interactive web apps that AngularJS gives you. In this presentation we bring these two together, demonstrating how little effort is needed to obtain a responsive user experience with fully consistent and persistent data storage on the server side.
See also http://summercamp.trivento.nl/
The Eclipse Orion project provides a platform for building browser-based development tooling. In this talk we will show how we re-used parts of Orion to build the Scripted code editor, an editor-centric and browser-based tool for JavaScript and web developers. We'll talk about the design decisions that led to creation of a new serverside architecture using Node.js and the challenges in getting the Orion code editor to work with it. We'll also look at how we build and maintain modules usable in Scripted and in Orion.
I've been working a lot with React lately and thought it would be a good idea to share what I've learned with the group.
During this talk we'll take a look at Facebook's React library while drawing comparisons to frameworks like Angular. We'll see how we can use React and friends to create a fast and efficient single page app. Attendees are expected to have some familiarity with ES6/ES7 since we the codebase we will be looking at leverages features from the spec.
What we'll be taking a look at:
• React
• React Router
• Redux
• Redux Sagas
• Webpack
• Babel
L’evoluzione delle pratiche di sviluppo, delle architetture e delle infrastrutture è un processo che anche Drupal ha abbracciato, trasformandosi da un CMS per community a un framework PHP moderno.
Drupal oggi permette di creare un'esperienza developer-friendly e può essere la base su cui costruire la vostra applicazione cloud-native.
10,000 microservices are generated each month using JHipster!
During this in-depth session by the two JHipster lead developers, we’ll detail:
How to develop and deploy microservices easily
Scalability and failover of microservices
The JHipster Registry for scaling, configuring and monitoring microservices
Common architecture patterns and pitfalls
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...Vadym Kazulkin
When we talk about prices, we often only talk about Lambda costs. In our applications, however, we rarely use only Lambda. Usually we have other building blocks like API Gateway, data sources like SNS, SQS or Kinesis. We also store our data either in S3 or in serverless databases like DynamoDB or recently in Aurora Serverless. All of these AWS services have their own pricing models to look out for. In this talk, we will draw a complete picture of the total cost of ownership in serverless applications and present a decision-making list for determining if and whether to rely on serverless paradigm in your project. In doing so, we look at the cost aspects as well as other aspects such as understanding application lifecycle, software architecture, platform limitations, organizational knowledge and plattform and tooling maturity. We will also discuss current challenges adopting serverless such as lack of high latency ephemeral storage, unsufficient network performance and missing security features.
Micronaut Deep Dive - Devoxx Belgium 2019graemerocher
3 hour deep dive presentation by Micronaut creator, Graeme Rocher, at Devoxx Belgium 2019 showing how to use advanced features such as Aspect Oriented Programming (AOP), compiler plugins and so on. Associated YouTube video can be found at https://www.youtube.com/watch?v=S5yfTfPeue8
Android development changed significantly in 2017 (Kotlin, Architecture Components and much more). Some of the most tricky and debatable questions now are: how to start a scalable project from scratch? How to decide which technology/library to use?
The HERE WeGo App team has worked for years to define a sophisticated release and development process, with a high level of automation that allowed to quickly followup on user issues and actively develop features. But legacy code and a large framework made it difficult to move even faster.
Lessons learned? We will discuss how to start over with all the learnings on a greenfield project.
Technologies that will be covered: Kotlin, Jenkins, JobDsl, Architecture Components, GraphQL, gRPC and more.
Сергій Моренець
Java evangelist. Творець порталу it-simulator.com. Багаторазовий доповідач на конференції Java User Group. Автор навчального посібника "Розробка Java додатків".
Single Page Applications - Desert Code Camp 2012Adam Mokan
Slides from my presentation on Single-Page Applications at Desert Code Camp 2012.
The event was held on November 17th, 2012 at Chandler-Gilbert Community College.
http://nov2012.desertcodecamp.com/session/565
Groovy & Grails - From Scratch to Production Tal Maayani
Walk-through a true story of developing a Grails web application from the ground up. some tips and how to guides for those of you who want to start developing on Grails or are using Grails and would like to learn from other experience.
Introduction To Groovy And Grails - SpringPeopleSpringPeople
Groovy and Grails Tool Suite supports application targeting to local, virtual and cloud-based servers. It is freely available for development and internal business operations use with no time limits.
The talk at DAUG:
1. Think about your project dependencies graph
2. Assert your project dependencies graph
3. Dagger reflect and remove jetifier to speed up builds
Use Cases of #Grails in Web Applications
- Type of applications most appropriate to be developed in Grails
- Type of applications where Grails may not be the best choice
- Experiences with Grails during several web application development projects
1. Spring, Hibernate and more, while doing less
Gavin Hogan – Software Architect, CommerceHub
2. A little bit about me.
• Software Architect at CommerceHub
• Working with Java and Groovy for 8 years
• Working with Grails for 3 years
3. • Grails in a nutshell
• Some Grails patterns and philosophy
• Spring in Grails
• Object Persistence
• Grails web technologies
• Grails plugin ecosystem
• A closer look at groovy
• Live demo
• Q&A
4. … and a little history
• Grails is a rapid web application development
framework
• Grails is a full stack framework, not simply a web
development framework
• Grails Leverages Groovy and Spring extensively
• Modular and extensible though the plugin
infrastructure
5. … and a little history
• Backed by SpringSource/VMWare
• Grails is mature, project started in 2005, current
version is 2.2
• Inspired by Ruby on Rails. An RoR influence remains,
but it is not a clone.
6. • Grails was inspired by RoR. Ease of development is a
primary objective
• Leverage convention over configuration with
sensible defaults
• Never eliminate flexibility or capability for the price
of simplicity
• All the power of Spring, Sitemesh, Hibernate is
available, but common use case are pre configured
7. • Leverage existing operational capacity and
expertise. 'Plain old java deployment’
• Portable war based deployment
• Apache Tomcat is the default container
• ‘Standing on the shoulders of Giants’, Java
compatibility allows the use of existing industrial
strength components.
8. • Grails really is ‘Spring in a can’
• Most grails applications do not have any Spring xml!
• Grails automates the configuration and 'wiring' of
Spring beans
• Name based ‘convention over configuration’
• UserService.groovy will automatically generate a
bean named ‘userService’
• Object fields are autowired by name
9. • Plugins and applications can interact with Spring
lifecyles.
• Controller layer is a wrapper around Spring MVC.
• Spring extensions and subprojects are easy to
include with plugins.
• Spring Security
• Spring Integration
• Spring Batch
• …
10. • Plugins and applications can interact with Spring
lifecyles.
• Controller layer is a wrapper around Spring MVC.
• Spring extensions and subprojects are easy to
include with plugins.
• Spring Security
• Spring Integration
• Spring Batch
• …
11. • Grails Object Relationship Mapping (GORM) is the
default persistence layer in a Grails application
• The default GORM implementation is a wrapper
around Hibernate.
• Alternative implementations for
MongoDB, Reddis, REST, SimpleDB and Riak exist
• Mapping is sensible by default.
• Class names name to table names
• Field names map to column names
12. • Dynamic finders methods are automatically added
to your objects at run time
• E.g. User.findAllByLastName('Hogan') will return
a list of users objects with that last name
• The finders support composite queries and are very
capable. Criteria builders and named queries support
more challenging requirements
• Mapping DSL, gives easy access to common
configurations for Hibernate persistence
13. • Controllers and controller actions are automatically
mapped to urls based on name
• UserController.list() is mapped to user/list/
• HTTP paramaters are automaticaly bound to
controller arguments
• UserController.show(String id) is mapped to
user/show/<id>
14. • Binding transparently applies to objects used as
arguments in controller actions.
• UserController.update(User u) is mapped to
<appName>/user/update/<id>?firstName=<firstN
ame>&lastName=<lastName>
• Generally speaking you do not think about binding
much when working with Grails
15. Validation
• Grails provides simple validation DSL for Domain
and Command objects.
• Common validation constraints built in
• Unique
• Size
• Email
• Not Blank/Null
• Custom constraints easy to add directly to objects
16. Validation
• Validation failures generate errors, which are
automatically associated with i18n message codes
• Validation is intended for domain and command
objects but can be assigned to POJOs too.
• Grails validation is powerful, but does not provide a
good business rules capability.
17. Views
• The default view technology for grails is 'Groovy
Server Pages' (GSP)
• Very similar to JSP, fewer rough edges.
• Views are automatically associated with actions
based upon name
• UserContoller.list() assumes a list.gsp in /views/user/
• Templating is extremely easy, leverages Sitemesh.
18. Taglibs
• I swore to never use taglibs many years ago, Grails
makes taglibs a joy
• They are simple reusable view components.
• Taglibs a written as regular groovy Closures, they
can interplay with each other and the rest of the
application code
• To create a taglib, simply create a class with ‘TagLib’
at the end of its name, all public closures will
automatically become tags
19. What makes them better that jar files?
• Plugins are core to Grails. Grails itself is built as a
collection of distinct plugins
• In Grails, plugins are the standard unit of reusable
code.
• Plugins usually package behavior, not only
capability.
• E.g. Including the Shiro security plugin actually
secures/locks down your application.
20. What makes them better that jar files?
• Anyone can write a plugin. You can choose to share
a plugin on grails.org
• The range of plugins is now vast
• Though quality is varied
• Suffers from the GitHub effect, “I can share this
so I will!”
22. • Groovy is a dynamic JVM language
• It compiles to java bytecode and runs in the same
jvm as Java code
• Intended to be familiar/comfortable to Java
developers
• Groovy provides additional, powerful programing
features, Closures, Mixins, Meta-Programming
23. Sensible simplifications
• Closures can be thought of as being similar to
functions in JavaScript. You can pass them or call
them.
• Mixins are used to compose complex object
without inheritance. You may think of them as
behavioral interfaces, that actually do stuff.
24. Sensible simplifications
• Meta-programming allows developers to modify
the behavior of a class at compile-time or
runtime. Grails extensively uses meta
programming to add behavior to your application
• Groovy is not strongly typed, ‘def’ is similar to
‘var’ in JavaScript, and can be thought of as
similar to Object in java.
• Some many enhancements to Collections API