Speakers
- Craig Walls
- Venkat Subramaniam
- Matt Stine
- Brian Sletten
- Ken Sipe
- Nathaniel Schutta
- Mark Richards
- Matthew McCullough
- Neal Ford
- Jeff Brown
- Tim Berglund
- Peter Bell
- Oleg Zhurakousky
- Billy Williams
- Johnny Wey
- Chris Wensel
- Jim Webber
- Vaughn Vernon
- John Steven
- Bruce Snyder
- John Smart
- Stuart Sierra
- Roshan Sequeira
- Brian Sam-Bodden
- Terry Ryan
- Johanna Rothman
- Ian Robinson
- Paul Rayner
- Nilanjan Raychaudhuri
- Matt Raible
- Eric Pugh
- Peter Niederwieser
- Andrew Lombardi
- Howard Lewis Ship
- Tiffany Lentz
- Scott Leberknight
- Kenneth Kousen
- Dave Klein
- Paul King
- Frank Kim
- Heath Kesler
- Christopher Judd
- David Hussman
- Jez Humble
- Daniel Hinojosa
- Erik Hatcher
- James Harmon
- Arun Gupta
- Jerry Gulla
- Jeff Genender
- Szczepan Faber
- Ben Ellingson
- Johan Edstrom
- Hamlet D`Arcy
- Hans Dockter
- Esther Derby
- Jeremy Deane
- Luke Daley
- Adrian Cole
- Cliff Click
- David Bock
- Ola Bini
- Alex Antonov
- Andres Almiray
- Dan Allen
Vaughn Vernon
Principal Architect, Consultant - ShiftMethod
Vaughn Vernon is a veteran software developer with more than 25 years of experience in system, application, and toolkit architecture, design, and development. Vaughn brings a unique mix of business and technology talent to every project. Vaughn's experience spans architecture, domain-driven design, and construction of COTS and custom component-based frameworks and business applications across a wide variety of industries. Vaughn founded a software product and consulting organization in the 1980s that served over 5,000 customers. He has consulted with General Dynamics in the aerospace industry, for Fresenius Medical Care and Gambro Healthcare in the acute renal care field. He has consulted with national clients such as AT&T and Compaq (HP), as well as internationally with Emirates Airlines in the UAE and ProActivity in Israel. Vaughn lead software development efforts for an insurance-services startup that became part of WebMD.
Presentations
The Domain-Driven Design Metamodel
Is there a metamodel behind domain-driven design? Is it possible to blend a complex external DSL and the concepts of domain-driven design patterns to produce a tool to rapidly implement advanced domain models that strictly adhere to Eric Evans' DDD pattern language? Absolutely, and Vaughn demonstrates how this has been achieved and why the repeatable method is important to you.
Follow along with this presentation to find out how you can design a complex external DSL to realize advanced application code generation that produces error free results. Using the patterns of domain-driven design as his requirements, Vaughn shows you how a DDD-based language model and metamodel are developed. Then when the DDD-based language source code is parsed and translated, see the resulting flawless code and configuration of a Bounded Context's core domain model appear. Use similar techniques to accomplish far-reaching goals of problem domain abstraction and zero-defect component generation. Unless you have in-depth knowledge of domain-driven design and complex external DSLs, it would be helpful to attend Vaughn's previous two presentations.
Developing a Complex External DSL
The use of a domain-specific language, or DSL, is becoming a realistic and even necessary solution for software developers on all sorts of projects. You've heard about DSLs, and you may know that DSLs are divided into a few different styles, internal and external. But what is an internal DSL and external DSL? When would you decide to use one or the other? And, primarily, how would you go about developing a complex external DSL? This presentation answers these questions, with a focus on developing a complex external DSL.
Learn about the important distinction between internal DSLs and external DSLs and why you would use one or the other, or both. Following this basic foundation, details on the development of a complex external DSL are presented. Covered are subjects such as, how complex might a language become and how complexity is managed; conceptualizing and designing a language syntax; understanding, designing, and developing the metamodel; defining a multi-model parser; understanding, designing, and developing the output artifact generator.
Implementing Domain-Driven Designs
Eric Evans' masterful book, Domain-Driven Design, is deep in theory and pattern language, but light on implementation guidance. With so much to offer, DDD should be put to use by many more teams seeking to tackle complexity in the heart of their software systems. However, without clear examples of how behavior-rich domain model implementations are achieved, many who could benefit greatly, instead shy away. Here's your chance to grasp DDD as Vaughn shares his experience through three practical example domain models implemented in Java.
Gain the insight you need to practice domain-driven design on your projects. Uses of patterns for strategic design include Bounded Context with its Ubiquitous Language, Context Map, Anticorruption Layer, Open Host System, and Published Language. The tactical patterns used for core model implementation include Modules, Value Objects, Entities, Aggregates, Services, Events, Factories, and Repositories backed by persistence mapping techniques. Integration between multiple Bounded Contexts is also demonstrated. Learn methods for managing aggregate boundaries, complexity, and correctness from the inside using Tell-Don't-Ask, Law of Demeter, Command-Query Separation, command-based editing models, validating domain objects, and business rules execution.