O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Stai guardando i dati sbagliati

5.382 visualizações

Publicada em

Better Software 2012 - Questo è il mio talk sull'architettura software. Si parla di DDD, Event Sourcing, Bounded Contexts, SOA, maiali e simili.

Publicada em: Tecnologia
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... (Unlimited)
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Stai guardando i dati sbagliati

  1. 1. Stai guardando idati sbagliati @ziobrando
  2. 2. About meIn the IT field since ZX SpectrumGenerally in large scale projects (I might bebiased)Strategic IT ConsultantTrainer (Avanscoperta & Skills Matter)Technical WriterBlogger: http://ziobrando.blogspot.comTwitter: @ziobrandoMy e-mail: alberto.brandolini@gmail.com
  3. 3. What I doAgile processesDomain-Driven DesignEfficiency & ManagementArchitectureFunny clown 9% 11% 38% 12% 31%
  4. 4. Preludio
  5. 5. Il problema(o quella strana situazione che riteniamo essere il problema)
  6. 6. Architettura
  7. 7. Risultatiincredibili
  8. 8. Finché...
  9. 9. JENGA!
  10. 10. Perché?
  11. 11. L’architettura più comune?
  12. 12. Data-basedApplication Application Applicationhttp://martinfowler.com/bliki/ IntegrationDatabase.html
  13. 13. on at ion ica ti on ti on Applic Ap pl li ca ti pli ca ti on pp Ap li ca Ap A pp ati on pl A pplic ic at A io nDatabase a ti on pplic Databas A eData-based integration
  14. 14. Poi, su questa architettura...qualche problema è emerso.
  15. 15. Eccessivo accoppiamento
  16. 16. Allungamento tempidi sviluppo
  17. 17. Allungamento tempidi sviluppo Affidabilità in calo
  18. 18. Allungamento tempidi sviluppo Affidabilità in caloBug a sorpresa
  19. 19. Allungamento tempidi sviluppo Affidabilità in caloBug a sorpresa Riunioni, riunioni,
  20. 20. Allungamento tempidi sviluppo Affidabilità in caloBug a sorpresa Riunioni, riunioni,Notti
  21. 21. Allungamento tempidi sviluppo Affidabilità in caloBug a sorpresa Riunioni, riunioni,Notti Addio ferie
  22. 22. Potremmo applicare SOA!!!
  23. 23. SOA?Application Application Application Service Layer
  24. 24. ...e questo?Application Application Application Service Layer
  25. 25. Magari più avanti
  26. 26. SOA :-/Application Application Application Service Layer
  27. 27. Insegnareai maiali amangiare con le posate!
  28. 28. Magazzino... ID_Articolo Giacenza 1234 0
  29. 29. Magazzino... ID_Articolo GiacenzaConsegna Fornitore(100) 1234 100 UPDATE Giacenza SET Giacenza=100 WHERE ID_articolo=1234
  30. 30. Magazzino... ID_Articolo GiacenzaSpedizione a cliente(50) 1234 50 UPDATE Giacenza SET Giacenza=50 WHERE ID_articolo=1234
  31. 31. Magazzino... ID_Articolo GiacenzaDanneggiamento(12) 1234 38 UPDATE Giacenza SET Giacenza=38 WHERE ID_articolo=1234
  32. 32. Magazzino... ID_Articolo GiacenzaSmarrimento(2) 1234 36 UPDATE Giacenza SET Giacenza=36 WHERE ID_articolo=1234
  33. 33. Magazzino... ID_Articolo GiacenzaRitrovamento(1) 1234 37 UPDATE Giacenza SET Giacenza=37 WHERE ID_articolo=1234
  34. 34. Magazzino... ID_Articolo GiacenzaReso(5) 1234 ?
  35. 35. Magazzino... ID_Articolo GiacenzaControllo 1234 32Disponibilità(32) UPDATE Giacenza SET Giacenza=32 WHERE ID_articolo=1234
  36. 36. Che fine hanno fatto?• Consegna Fornitore (100)• Spedizione al cliente(50)• Danneggiamento(12)• Smarrimento(2)• Ritrovamento(1)• Reso(5)• Controllo Disponibilità(32)
  37. 37. Requirements
  38. 38. RequirementsND A
  39. 39. RequirementsND AVogliamo sapere in ogni istantequale utente ha compiuto qualeoperazione
  40. 40. RequirementsND AVogliamo sapere in ogni istantequale utente ha compiuto qualeoperazioneTutte le operazioni di accesso emodifica del dato da parte delleapplicazioni devono esseretracciate
  41. 41. Logging
  42. 42. Application Application Application Service Layer
  43. 43. C’è sempre chi scavalca
  44. 44. WeData
  45. 45. I dati sono il cuore del nostro sistemaAbbiamo un problema di dati sporchi
  46. 46. I dati sono il cuore del nostro sistemaAbbiamo un problema di dati sporchi
  47. 47. oops
  48. 48. WeData
  49. 49. What about ?
  50. 50. Come si arriva fin qua?
  51. 51. Con le migliori intenzioni
  52. 52. Da una base semplice
  53. 53. Come si fanno le cose grandi?
  54. 54. Come le piccole, solo ...più grandi!
  55. 55. Si imita...
  56. 56. Ci si documenta...
  57. 57. Sviluppi lentiBug Notti insonni ProcedureComplessità Rework Sprechi Turnover
  58. 58. Possibile che non ci sia un altro modo?
  59. 59. Mossa N°1 - AggregatesLe cose che cambiano insieme stanno
  60. 60. Aggregate boundaries? Ordinemod_spedizione VoceOrdine Articoloimporto Quantità Descrizione prezzo destinatario Clienteindirizzo
  61. 61. Cambiano per motivi diversi Ordine mod_spedizione VoceOrdine Articolo importo Quantità Descrizione prezzo prezzo descrizione Destinatario indirizzo Cliente indirizzo
  62. 62. Gli aggregati sonoparte del modello
  63. 63. ...e smettiamo di dare la colpa all’ORM!
  64. 64. Quali attributi sono necessari per ilcomportamento?
  65. 65. Notifica al resto del sistema mediante Domain Events
  66. 66. Mossa N°2 - Event SourcingLa verità è nel flusso degli eventi
  67. 67. The paper based system
  68. 68. Lo stato del sistema è il risultato della sequenza deglieventi che lo hanno interessato
  69. 69. Cart.CreateEmpty().apply(ItemAdded(...)).apply(ItemAdded(...)).apply(ItemAdded(...)) => Il carrello è attivo
  70. 70. Non c’è perdita di informazione
  71. 71. Mossa N°3 - CQRSCommand/Query Responsibility
  72. 72. No compromessi
  73. 73. Command! Indirizzati ad entità singole il comportamento è importante la Flessibilità è importante © Alberto Brandolini - 2010
  74. 74. Query Grosse quantità di dati? Non c’è comportamento le Prestazioni sono importanti Disponibili numerosi componenti off-the shelf © Alberto Brandolini - 2010
  75. 75. ! Architettura ottimizzata per i comandi? Architettura ottimizzata per le letture
  76. 76. Domain Model Command Aggregate Event Event store Event Event Event UI Event Command Aggregate Event EventPresentatio UI n Event UI Projection DTO Projection UI DTO Read Model
  77. 77. Come non fare ladichiarazione dei redditi
  78. 78. Cara... Ti ricordi dove homesso i documenti sanitari?
  79. 79. Come fare ladichiarazione dei redditi
  80. 80. Tell don’t Ask
  81. 81. o ...tradotto in romagnolo
  82. 82. Me a ni vò savê gnît
  83. 83. ComputerOttimo nelleoperazioni ripetitive.Si ricorda di fare lecoseNotifica con facilità
  84. 84. Mossa N°4 - Bounded ContextsDefiniamo i reali confini delle componenti
  85. 85. Più modelli Product Delivery Publishingdevelopment Sales Marketing Customer Care Payments
  86. 86. Bounded Context• Linguaggio consistente all’interno• Un obiettivo ben preciso•Interlocutori ben definiti•Modelli indipendenti•Possibilità di scelte strategiche indipendenti
  87. 87. Eventi e Contesti Item delivered Item OrderProduct Available ReceivedDesigned Product for Product for Sales Delivery Ready Publishing Cart Created development Sales Item Order Availability Product Tested Visual Content Published Sales Fulfilled Ubdated approved Item Added to Marketing Text Content Cart Customer Care approved Issue Payment Issue Solved Sales price Initiated Payment Opened defined Accepted Payment Type Payments Selected Payment Refused
  88. 88. Accesso esclusivoL’appetito vien mangiando
  89. 89. Me a voj esrpadrò’ in tla mi ca’
  90. 90. Possibili piùrappresentazioni dello stesso concetto
  91. 91. Offerta != Contratto
  92. 92. Offerta != ContrattoBozza != Contratto
  93. 93. Offerta != ContrattoBozza != Contratto Carrello != Ordine
  94. 94. Offerta != ContrattoBozza != Contratto Carrello != Ordine Ordine != Ordine
  95. 95. Offerta != Contratto Bozza != Contratto Carrello != Ordine Ordine != OrdineSorgente != eseguibile
  96. 96. No compromessi
  97. 97. Requisiti in conflitto?
  98. 98. Prestazioni?
  99. 99. No conflitti lockappend only NoSQL eventual consistency data push modeltable per view Event no queries Stores Scalabilità su read
  100. 100. ma...
  101. 101. Non solo velocità
  102. 102. Non dobbiamo fare gli stessi errori più in fretta
  103. 103. Stakeholders
  104. 104. Sicurezza?
  105. 105. Requirements
  106. 106. RequirementsND A
  107. 107. RequirementsND AL’utente X non deve poteraccedere all’informazione A
  108. 108. RequirementsND AL’utente X non deve poteraccedere all’informazione AI campi della tabella K devonoessere filtrati perché gli utenti Ye Z non possano vederli.
  109. 109. RequirementsND AL’utente X non deve poteraccedere all’informazione AI campi della tabella K devonoessere filtrati perché gli utenti Ye Z non possano vederli.L’informazione N deve essere disola lettura per l’utente W
  110. 110. Interessante...
  111. 111. Mettiamo il badge ai maiali!
  112. 112. Testo rity ec u a ls S d en ti cre
  113. 113. Bounded Context? Product Delivery Publishingdevelopment Sales Marketing Customer Care Payments
  114. 114. Cose di cui parloCose a cui devo avere accesso
  115. 115. Il sistema èappend-only
  116. 116. Non possoinserire dati “a manazza”
  117. 117. Non è tutto qui...
  118. 118. Event view Item delivered Item OrderProduct Available ReceivedDesigned for Sales Product Ready for Cart Sales Created Item Order Availability Product Visual Published Fulfilled Ubdated Tested Content approved Item Added to Text Cart Content approved Issue Payment Issue Solved Sales price Initiated Payment Opened defined Accepted Payment Type Selected Payment Refused
  119. 119. ...e sulle relazioni Item delivered Item OrderProduct Available ReceivedDesigned for Sales Product Ready for Cart Sales Created Item Order Availability Product Visual Published Fulfilled Ubdated Tested Content approved Item Added to Text Cart Content approved Issue Payment Issue Solved Sales price Initiated Payment Opened defined Accepted Payment Type Selected Payment Refused
  120. 120. Requisiti al bacio Quando il cliente effettua un ordine deve essere spedita un’e-mail di confermaDato un cliente registrato XQuando X effettua un ordineAllora il sistema dovrebbe spedire un e-mail
  121. 121. Value flow Product Delivery Publishingdevelopment Sales Marketing Customer Care Payments
  122. 122. Sicuri che siachiaro a tutti?
  123. 123. gli esperti ci e noiaiutano a capire aiutiamo loro © Alberto Brandolini 2009
  124. 124. Flussi di lavoro Item delivered Item OrderProduct Available ReceivedDesigned Product for Product for Sales Delivery Ready Publishing Cart Created development Sales Item Order Availability Product Tested Visual Content Published Sales Fulfilled Ubdated approved Item Added to Marketing Text Content Cart Customer Care approved Issue Payment Issue Solved Sales price Initiated Payment Opened defined AcceptedDesign Test Ready Payment Type Payments Selected Payment To do Doing Ready New Working Resolved Refused
  125. 125. See the whole?
  126. 126. Kanban Board = Bottleneck Detector
  127. 127. Ecosistema
  128. 128. Riunioni? Bug?Conflitti? Esperimenti?
  129. 129. Riunioni? Bug?Conflitti? Esperimenti?Valore?
  130. 130. Conclusioni
  131. 131. Ogni mossa porta valore
  132. 132. Devo farle tutte? No, ma...
  133. 133. Implementazioni parziali
  134. 134. Ottimizzazione percorsi di crescita
  135. 135. Strumenti... geteventstore.co
  136. 136. Rimboccarsile maniche!
  137. 137. Ripresa?
  138. 138. Domande?
  139. 139. Grazie!@ziobrandoalberto.brandolini@avanscoperta.it
  140. 140. Implementing Domain-Driven DesignVaughn Vernonhttp://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577 Event Centric Greg Young http://www.amazon.com/Event-Centric-Simplicity-Addison-Wesley-Signature/dp/0321768221 Per saperne di più... www.avanscoperta.it
  141. 141. Domain-Driven DesignEric Evans Enterprise Integration PatternsGregor Hohpe, Bobby WoolfPatterns of EnterpriseApplication ArchitectureMartin Fowler Per saperne di più... www.avanscoperta.it

×