Let me be free : A use case for Anti-Corruption Layer (ACL) & Open Host Service (OHS)
Sepehr Namdar and Khaled Souf
(This is a hands-on lab with limited capacity based on Java & TypeScript)
Everyone of us has already worked on a new app connected to a legacy app and encountered challenging ways to preserve the new app autonomy.
The Workshop is a Refactoring Kata that tries to resolve this problem by using some DDD Strategic Pattern and OOP.
We work on a new app (LMBF) which is dependent on an old app (Shared Objects). The LMBF app is Downstream of the old app. The LMBF app depends on the Shared Objects app and we can not modify it. So, The LMBF app is polluted by the Shared Objects app. The aim of this Kata is to get freedom back to the LMBF app.
We start by isolating the logic of the Shared Objects app (ACL Pattern) and at some point we discover that another team is working on another app (Other App) which depends on the Shared Objects app. In a second time, we discover that they share some logic in how they call the Shared Objects app and that’s where we introduce the Open Host Service pattern.
We will also talk about other Strategic Patterns on DDD :
- Separate Way
- Hands-on prerequisites
Please configure your environment, IDE + install repo. Please install this GitHub repository : For Java : https://github.com/SepehrNamdar/DDDEU22_Let-Me-Be-Free For TypeScript : https://github.com/ksouf/dddeu22-let-me-be-free-typescript
- About Sepehr Namdar
Interested in Agile practices, Craft and Architecture and having had the opportunity to work in various development teams, I acquired the knowledge on all phases of software development. I believe that the sucess of a product (i.e. software) does not depend on technologies that we use but a good understanding of business needs and on the methodologies applied during its development.
- About Khaled Souf
Khaled is a passionate Globe-trotter developer from Tunisia. He lived in Paris where he took part in the French and European software crafters community. He currently lives in Montréal in Canada and the co-organizer of Software Crafters Montréal meetup and the SOCRATES Canada unconference. He likes to speak about crafting software, clean code, Domain Driven Deisgn, eXtreme Programming and DevOps practices.