• DIY Software Design Heuristics - Mathias Verraes


    Every line of code you write represents an underlying design decision you made. Did you make it intuitively? Did you apply a design pattern. How did you prioritise between keeping it cohesive vs decoupled, open or encapsulated, DRY or SRP, …? In this workshop, we’ll build up some tools for more conscious design, using real world programming problems. We’ll distill heuristics, make them reusable, and find some competing heuristics to trade them off with. Programming-language agnostic, only pen and paper needed. • 18:30 Food & drinks, sponsored by Spilberg • 19:30 Start workshop • 21:30 Drinks & networking

  • Domain-Driven Design Kata's

    Cegeka Leuven

    Practice your DDD modelling skills on this evening of DDD Kata's The goal of this meetup is to practice and learn DDD modelling skills from your peers with some DDD Kata's selected by us. You will work in groups on specific modelling problems and try out different techniques to find possible solutions to the problems presented. We'll do multiple rounds and all All sort of modelling techniques can be applied (Event Storming, UML, Model Storming, Whiteboard drawing,....) and facilitators will help you out, so no prior experience is necessary. Schedule: 18:30 - Drinks and food sponsored by Cegeka 19:30 - DDD Kata's 22:00 - End In cooperation with Cegeka

  • Full Stack Europe

    Hilton Antwerp Old Town

    Full Stack Europe is a 2 day software conference organised by DDDBE members Dries Vints & Freek Van der Herten. It features a whole bunch of great international speakers, including some former DDDBE and DDDEU speakers, so clearly they have great taste ;-) They gave us a 20% discount link: https://ti.to/on3/fullstack19/discount/DDDBE More info: https://fullstackeurope.com

  • DIY Event Sourcing Tooling - Full day tryout with Marijn Huizendveld

    WORKSHOP TRYOUT Sponsored by DDD Europe (dddeurope.com) Learn with little effort you can improve your workflow by building your own set of tools made specifically for your context. # The ‘why?’ behind this workshop Scaling applications, refactoring models, testing the solution, debugging problems, proving what happened, or deploying to production; CQRS and event sourcing make it easier. But all these advantages come at a cost: - Compared to traditional applications there is often more ceremonial code involved before you have your first domain model hooked up to your application; - When you move to an event sourced model you lose the default view on the current state of the system; - There is no easy way to correct little mistakes by simply adjusting a value in the datastore - Asynchronous handling of messages increases complexity when it comes to debugging and monitoring; - Although evolving models in CQRS can be easier, it still requires you to understand how the current version of the model works. It can be a challenge to communicate about this in an effective and efficient way, especially in large teams; - While commands and events can help testers and PO's pinpoint what has happened and why, it can be challenging to see the forest for the trees if all you have is list of millions of messages Unfortunately there are not a lot of tools that help us overcome these typical challenges of event sourcing and CQRS. Traditional CRUD based MVC applications benefit from decades of free and paid-for tooling that help you get the job done faster. In the CQRS and event sourcing world that is not the case. While there are frameworks and libraries available, they generally constrain our models and our way of building software. They do so without providing a comprehensive set of tools for addressing the problems mentioned before. The cry for a lack of tooling for CQRS and event sourcing is as old as the approaches are themselves. So where does that leave us? What can we do? # Imagine… - Seeing an overview of all the events of a specific aggregate in your web application by opening up the developer tools of your internet browser; - An enriched view of the events in your event store that allows you to navigate to associated streams; - Having links from your events to the commands that caused them in the view of your event store; - A testing framework that can be understood by domain experts because it works based on domain events and commands; - Downloading an integration test for your testing framework after reproducing a problem in a production environment; - Your test scenarios visualized identical to your event storming workshop; - A conceptual framework that makes it easy to add support operations and forms for correcting mistakes to any list; - Visualizing trends using your existing analytics toolset; This and more, applied in such a way that it becomes an integral part of your day to day workflow # Do it yourself: Build and bring your own tooling Investments in tooling pay off quickly. Especially when you take small steps. Together we will look at different tools that can help us with building, testing, debugging and changing your software. With examples taken from real projects you will experience that specific tools can make you more efficient and how they would fit in your workflow. Following each example we will implement the tool in the language of your choice. If you bring your own event sourced domain models we will do so given the constraints of your specific context. The goal of the workshop is to inspire you to build tools that fit your context and to show you that it can be done with little effort. After attending it you will be enabled to build tools yourself in the future. # Prerequisites - Basic theoretical knowledge of CQRS and event sourcing; - A laptop with a language you’re proficient in; - A testing framework that can run integration tests - Optionally you can bring your own event sourced applications;

  • Tryout: Playing with projections


    On Explore DDD Thomas Coopman and Michel Grootjans will give a new version of their workshop Playing with Projections. In this session, you will be working for an online Quiz Platform. Based on the full event history of the past years, you will have to answer to business questions, like: did our last ad campaign have any real impact, are we targeted by bots,...? To solve these problems, you will need to transform the event stream to a structure, a projection, that can answer these questions. (full description can be found here: http://exploreddd.com/speakers/thomas-coopman.html) For the tryout, we ask you to: - bring your laptop, but be prepared to pair, - pick one of the supported technologies: C#, Java and Javascript Agenda: - 18:30: food, drinks and networking - 19:15: start tryout - 21:15: feedback round - 21:30: end We thank To The Point for sponsoring the food and location!

  • Animation DSL with Effect Handlers, with Ruben Pieters


    In cooperation with Functional Kortrijk. Animation DSL with Effect Handlers Effect Handlers are of growing interest in functional programming research. They are able to abstract over various control flow constructs, such as try/catch, async/await and coroutines. Moreover, they are also useful for structuring application design, which will be explored in this talk. We will develop a domain-specific language (DSL) for animations in a bottom-up approach. First, we take a look at the basic concepts of effect handlers and how it can form the basis for a DSL. Then, we add various extensions to our DSL to increase its expressiveness. This talk is suited for both newcomers to functional programming and more experienced fp-ers who are interested in applications of effect handlers. During the presentation you will get the chance to create some animations using the DSL. You can prepare at home by cloning and building the code on https://github.com/rubenpieters/fun-kortr-anim-dsl About Ruben Pieters Ruben Pieters is a PhD student in programming languages at KU Leuven. On the side he does occasional freelance work and tinkers on his hobby gamedev project. In general, he is interested in applying mathematical concepts to improve software development. He has been interested in effect handlers ever since he got started with functional programming. Applying effect handlers to real-world topics is the core topic of his PhD work. Course This talk is given on the occasion of promoting a functional programming & domain specific languages course organized by the KUL languages group. Check out https://training.dddeurope.com/fp-and-dsls-tom-schrijvers/ for more information. Schedule 18:00 Doors, food and drinks 19:00 Session 21:00 Networking

  • Limited Try out for Exploring Domain Laws


    We'll do a very limited try out of the workshop Exploring Domain Laws. It's a try out so be prepared to give feedback :-) Session: In this session we'll be modeling a domain with event storming and try to discover laws of your model and of the domain. We'll look into the different kind of laws we can discover and try to categorize them. Can we find laws of the domain and do they differ from laws of the solution you modeled? Once we've discovered, categorized and discussed some laws we'll try to find out if it is actually feasible to use these laws with property based testing. This will be demo based where I show some code examples of property based testing in an event sourced application. No laptop needed (https://dddeurope.com/2019/schedule/#/[masked]/j5g95bdm9lbm-room-5/lq68mdpr8aj5-exploring-domain-laws/) Food will be sponsored!

  • Collaborative Modeling in Practice by Marijn Huizendveld

    Cegeka Ghent

    This evening we welcome Marijn Huizendveld for a try-out of his DDD EU hands-on : "Collaborative Modeling in Practice". Collaborative Modeling in Practice by Marijn Huizendveld -------------------------------------------------------------------------------- The basic premise of DDD is that the software we develop has to be based on a conceptual model that we shape together with domain experts. In short: the way experts reason about the problem is how we do it in code too. But how do you achieve that? In this hands-on session you will learn how to visualize the model of existing software. Then we will introduce several changes step by step to refine the model to be more suitable for the problems we want to solve. During these exercises, you will get familiar with methods to look at problems from different angles. Through various tips, you will find ways to facilitate the process of 'Collaborative Modeling'. While doing this we will apply a number of tactical DDD patterns and experience the advantages and disadvantages of doing so. Bio ----- Marijn teaches people of different backgrounds the skill of doing the things that matter in environments that are critical to performance. Often his work involves organizations, software and customers. He brings these worlds together while teaching you and your colleagues how to do so. Judge him on added value, it's the only metric that matters. You may call him a consultant, coach, trainer and entrepreneur, because that's what he is. Schedule ------------ 18:30 Drinks and Food (provided by Cegeka) 19:00 Introductions / Welcome 19:10 Start Handson 22:00 End Venue/Sponsor -------------------- Drinks, food* and location is sponsored by Cegeka. Thank you! * vegetarian options provided, let us know if you have other dietary requirements

  • DDD for everyone: A talk by Guido Dechamps

    Cegeka Ghent

    This evening we welcome you for a talk by Guido Dechamps: "DDD for everyone" and after that we'll still have some time for a small open space. DDD for everyone ----------------------- Over the years, Domain Driven Design has come and gone into fashion. With people holding different views to its merit. Some people think of DDD as being too academic, too difficult or non-practical. Others find it useful only at large projects, for complex software. In this talk, I would like to argue that DDD is not for a niche, chosen few. That DDD is practical. That there is value to be found in DDD for everyone. Because almost all software can benefit from a bit more domain driven DESIGN. Bio ----- Guido Dechamps has been a professional software engineer for almost two decades. He has mainly java ecosystem projects under his belt, although in ages long past he has helped to build the occasional .Net application. Since the blue book he dived head first into DDD because he loves building solutions that fit the problems they were aimed to solve. Likes: Well designed solutions, collaboration, chess, whiskey, long nightly discussions in dark pubs. Dislikes: Titles, dishonesty, cooked chicory Schedule ------------ 18:00 - Doors open, networking, chatting, drinks and food sponsored by Cegeka 19:00 - DDD for everyone 20:00 - Break and questions 20:30 - DDD open space 22:00 - Foreseen end Venue/Sponsor -------------------- Drinks, food and location is sponsored by Cegeka. Thank you!