Leanpub Header

Skip to main content
Avanscoperta

Cronache di Domain-Driven Design

Storie di successo, esperienze sul campo, progetti reali

Cronache di Domain-Driven Design: un libro corale in italiano fatto di storie indipendenti tra loro, che sono il risultato dell’applicazione di Domain-Driven Design su progetti reali

Minimum price

$30.16

$30.16

You pay

$30.16
$

...Or Buy With Credits!

You can get credits monthly with a Reader Membership
PDF
EPUB
WEB
351
Readers
299
Pages
56,071Words
About

About

About the Book

Un libro corale in italiano fatto di storie indipendenti tra loro, che sono il risultato dell’applicazione di Domain-Driven Design su progetti reali.

Cronache di Domain-Driven Design è il nostro contributo per colmare il gap narrativo nella community italiana. Abbiamo limitato la parte didattica per poterci concentrare sulle storie: esperienze sul campo di colleghi e colleghe che hanno applicato DDD e sono felici di averlo fatto.

Domain-Driven Design funziona, le storie di successo ci sono: è solo molto complicato scriverle. Con questo libro proviamo a raccontarne alcune.

Autori e capitoli

Alberto Brandolini - Overview e Building Blocks

Gianluca Padovani - DDD e Microservizi

Marco Consolaro - DDD: collaborazione creativa e onestà intellettuale

Francesco Strazzullo - Domain-Driven Frontend

Emanuele DelBono - DDD e Actor Model

Alberto Acerbis - Industrial Internet of Things e Domain-Driven Design

Uberto Barbini e Julie Camosseto - DDD per Non-Tecnici

Alessandro Colla - Il primo eCommerce in CQRS+ES: errori e successi

Matteo Baglini - DDD incontra Functional Programming

Share this book

Author

About the Authors

Alberto Brandolini

I am helping teams and companies to develop brilliant solutions to complex problems. Sometimes this involves writing software. Sometimes this involves working with people. I like both ways, especially when it leads me into unexplored territories.

I've been coding since 1982, experimenting since ...forever? This led me into Agile, Domain-Driven Design, Lean, Complexity, Management 3.0 and everything needed in order to solve the problem.

I am a father, a husband, an entrepreneur, a consultant, a developer, a teacher, a public speaker, a cook, a drummer... now it's time to be a writer.

A glimpse of what I am into can be found on my blog, and I've been speaking in quite a few places lately. My presentation track is available here.

I run avanscopertaone of the coolest places on earth to teachlearn and experiment

Leanpub Podcast

Episode 156

An Interview with Alberto Brandolini

Francesco Strazzullo

I'm a Fullstack developer @ Flowing. I started working professionally in the J2EE ecosystem and, later in my career, I decided to specialize in front-end development. Apart from being a developer, I love to share my thoughts and experiences in blog posts and talks. I participated in conferences around Europe talking about JavaScript, Testing and Agile Methodologies.

I'm one of the founders of the Frameworkless Movement, a group of developers interested in developing applications without frameworks.

I transformed my passion for sharing in a second job, I started to give lessons and workshop. In 2017 I became one of the Avanscoperta's trainers with my workshop "Frameworkless Front-End Development". Two years later, I distilled that workshop in a book with the same title.

I spent these last years between developing software and being a consultant helping development teams in making mindful technical decisions.

I really love comics and videogames, so I spent most of my free time reading or playing games on Playstation. I also love cooking, so during the weekends I relax preparing new dishes for my wife.

Matteo Baglini

Co-founder, Software craftsman @ doubleloop.io and Technical Trainer @ Avanscoperta.

Matteo is a developer, speaker and technical coach with a strong focus on simplicity, clean code, design and software architecture.

He aims to create codebases that better adapt to the ever evolving business world.

However, riding a motorcycle is his first passion.

Gianluca Padovani

Founder & CTO at Coders51

I have over twenty years of experience in designing and developing software in different environments (embedded, industrial, manufacturing and entertainment). I have developed many types of software, both working alone and as part of a team. I have been working as a Team Leader/Coach in an XP team. I am very fluent in languages such as C++/C#/Java, Ruby, Javascript and Typescript. In the last five years, I have fallen in love with functional language, especially Erlang and Elixir.

Alessandro Colla

Partner and head of development @ evoluzione, trainer and speaker.

Nel corso di ormai quasi trent'anni passati nel settore IT, ho sviluppato verticalizzazioni per gestionali, creato da zero per i più disparati ambiti e aiutato team nella formazione. Da quando ho iniziato a interessarmi alle pratiche Agile ed al Domain-Driven Design sono costantemente alla "ricerca della verità".

Mi piacciono le lingue straniere, la montagna, sono appassionato di arti marziali e istruttore di Krav Maga.

Marco Consolaro

Describing himself as a software craftsman, systems thinker, Agile technical coach, entrepreneur, philosopher, restless traveler - all blended with Venetian humor - Marco learned coding in Basic on a Commodore when he was nine years old. He graduated from Venice University in 2001 with a degree in Computer Science.

Since then, Marco has worked in Italy and the UK, always looking to learn something new. When his journey led him to the Agile principles, he quickly realized the effectiveness of such an approach for both technical and organizational areas. He now strongly believes that an iterative approach based on trust, transparency, self-organization and quick feedback loops is the key to success for any team in any discipline.

His dream is to see these principles based on Systems Thinking understood and implemented at every level in businesses and public administrations.

Emanuele DelBono

Emanuele è un architetto e sviluppatore con esperienza ventennale nella realizzazione di applicazioni e servizi web.

Da sempre interessato a imparare nuovi paradigmi, nuove metodologie e nuovi linguaggi, negli ultimi anni si sta dedicando all’analisi, alla progettazione e alla realizzazione di applicazioni enterprise utilizzando Elixir come linguaggio di programmazione.

Convinto ricercatore del Clean Code, è anche docente nei corsi di design del codice e del Test-Driven Development.

Emanuele is an architect and developer with twenty years of experience in building web applications and services.

He has always been interested in learning new paradigms, methodologies, and languages. In recent years, he has been focused on analyzing, designing, and building enterprise applications using Elixir.

He is a strong advocate of Clean Code principles and also teaches code design and Test-Driven Development courses.

Uberto Barbini

Uberto is a polyglot programmer with more than 20 years of experience designing and building successful software products in many industries.

He discovered that he loves programming when he created a videogame on the ZxSpectrum and he is still very passionate about how to write the best code to deliver value to the business, not only once but at a regular pace.

He is particularly interested in Functional Programming and Distributed Computing since they are both critical to modern software challenges.

When not coding, Uberto loves public speaking, writing and teaching programming. He's currently writing a book about a pragmatic approach to FP in Kotlin (https://pragprog.com/titles/uboop/from-objects-to-functions/).

You can read his blog here: https://medium.com/@ramtop

Alberto Acerbis

I am basically an eternal student, because the subject matter is endless. I've always defined myself as a backend developer, but I don't disdain poking around on the other side of the code either. I like to think that 'writing' software is mainly about solving business problems and providing value to the customer, and in this I find DDD patterns a great help. I work as a software engineer at Intré, a company that espouses this ideology; as a good introvert, I find it difficult to come out of the closet, but I like to get out of my comfort zone to share with others the things I have learnt, so that I can find the right stimuli each time to continue improving. I like to frequent the community world, contributing, when I can, with active proposals. I am co-founder of the DDD Open and Polenta and Deploy communities, and an active member of other communities such as Blazor Developer Italiani.

Julie Camosseto

Contents

Table of Contents

Building Blocks

Perché Domain-Driven Design

  1. Quale problema risolviamo
  2. Ambito di applicazione
  3. The journey, not the destination
  4. La regola del fight club
  5. Il traino dei Microservizi
  6. DDD come un bersaglio in movimento
  7. Perché questo libro?

Comprendere il dominio

  1. Ubiquitous Language
  2. Cosa non è
  3. Bounded Contexts
  4. Modelli senza compromessi
  5. L’importanza di proteggere i confini
  6. Complessità accidentale
  7. Creative Collaboration
  8. Model Exploration Whirlpool
  9. Un’opzione non è abbastanza
  10. Cosa non è
  11. Breakthrough
  12. Deliberate Discovery
  13. EventStorming
  14. Big Picture EventStorming
  15. Process Modelling

Strategia

  1. Il rapporto con il business
  2. Strategic Distillation
  3. Cosa non è
  4. Sviluppare nel core domain
  5. Trovare il Core Domain con Big Picture EventStorming
  6. Context Mapping
  7. Brownfield Context Mapping - Scegliere le battaglie
  8. Greenfield Context Mapping - Disegnare i confini
  9. Team Topologies

Architetture

  1. Blue Book Architecture
  2. Architettura a strati
  3. Tactical patterns
  4. L’effetto combinato
  5. Implementare i Bounded Context
  6. Architettura Esagonale
  7. Red Book
  8. Comandi ed eventi
  9. Services e layers
  10. Command-Query Responsibility Segregation (CQRS)
  11. Segregazione forte
  12. Event Sourcing
  13. Implementare aggregati in Event Sourcing
  14. Event Store
  15. CQRS/ES
  16. Event-Driven Architecture
  17. Domain Events vs Integration Events
  18. Microservizi
  19. La sovrapposizione con i Bounded Context
  20. Mantenere la visione d’insieme
  21. Functional Programming
  22. Actor Model
  23. Software Design EventStorming
  24. Precisi nel dominio, aperti nell’implementazione
  25. Behaviour-Driven Development
  26. Va bene tutto?
  27. Storie

DDD e Microservizi

  1. Introduzione
  2. DDD loves MS
  3. La classe che tutti vogliono
  4. Microservizi a livello di Bounded Context
  5. La PCI-DSS, questa sconosciuta
  6. E infine venne il M O N O L I T E…
  7. Brutte Storie
  8. Mi sembra che vada tutto troppo bene
  9. Cosa vuoi che succeda se rinominiamo un campo?
  10. Quindi che devo fare?
  11. Conclusioni

Domain-Driven Design: collaborazione creativa e onestà intellettuale

  1. Introduzione
  2. Collaborazione
  3. Creatività
  4. Onestà intellettuale
  5. Una visione sistemica
  6. Come metterlo in pratica?

Domain-Driven Front-end

  1. Un problema di linguaggio
  2. La prima divisione: introduciamo i Services
  3. Enter the Aggregates
  4. Una questione di Eventi
  5. Com’è andata a finire?

DDD e Actor Model

  1. Introduzione
  2. Un po’ di storia
  3. Arrivano i requisiti
  4. Il carrello
  5. L’implementazione
  6. Retrospettiva

Industrial Internet of Things e Domain-Driven Design

  1. IIoT e Domain-Driven Design
  2. Gestiamo il parcheggio
  3. Arrivano gli imprevisti
  4. Conclusioni

DDD per Non-Tecnici

  1. Introduzione
  2. Una chiacchierata tra uno sviluppatore e una Programme Manager
  3. Conclusioni

Il primo eCommerce in CQRS+ES: errori e successi

  1. Il cambio di mentalità nel codice e nella UX
  2. Eventi, stati e TDD
  3. Le soddisfazioni nel capire cosa succede in tempo zero
  4. Il Versioning
  5. Dagli automatismi di un “IoC container” al bootstrapper lungo un chilometro
  6. Conclusioni
  7. Bonus

DDD incontra Functional Programming

  1. Introduzione
  2. Di cosa parliamo quando parliamo di Functional Programming
  3. Cosa ci insegnano i Value Objects
  4. Il bello di non cambiare mai
  5. Quello che non sai di non sapere
  6. Functional Programming Language
  7. Refactor DDD to FP
  8. Introduzione al dominio
  9. Aggregate Root nella forma classica
  10. Primo Refactoring: completa immutabilità
  11. Secondo Refactoring: tipi di dati algebrici
  12. Prodotto
  13. Somma
  14. Pattern Matching
  15. Sfruttiamo gli ADT
  16. Terzo Refactoring: rimuoviamo le eccezioni
  17. Introduzione alle Monadi
  18. Fase di creazione
  19. Fase di combinazione
  20. Mettiamoci un po’ di zucchero
  21. Fase di consumo
  22. Rimuoviamo le eccezioni
  23. Application Layer
  24. Infrastructure layer
  25. FP adora Event Sourcing (e viceversa)
  26. Conclusioni

Gli autori dei capitoli contenuti in questo libro

  1. Alberto Acerbis
  2. Matteo Baglini
  3. Uberto Barbini
  4. Alberto Brandolini
  5. Julie Camosseto
  6. Alessandro Colla
  7. Marco Consolaro
  8. Emanuele DelBono
  9. Gianluca Padovani
  10. Francesco Strazzullo

Bibliografia

About the Publisher

About the Publisher

This book is published on Leanpub by Avanscoperta

Avanscoperta is the go-to learning space for software developers and any professional involved in the digital ecosystem.

As a publisher, we want to help some of our most innovative trainers and collaborators to formalize their wisdom in books.

We are a growing community of professionals and we share a great passion for learning: we like exchanging experiences and ideas, and exploring uncharted territories within the software world in its broadest possible meaning.

Our goal is to spread knowledge independently from the format (courses, publications, talks...) so getting into books seemed obvious.

We strongly believe that high quality always pays off. We carefully select the most relevant topics and the best trainers and thought leaders worldwide. We prefer practical teaching approaches, even in the remote scenario, with an eye for the most engaging teaching techniques. Start from the problems, not from the solutions: that’s the guiding principle we always stick to when building our educational offer.

We want to turn the software world into a better place, and we do all we can to make it happen, one step at a time, learning something new every day. That’s why our motto is We Are Learners!

Follow us on Twitter - Linkedin - Youtube - Meetup

www.avanscoperta.it

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub