LIST

Video: Is TDD dead? 5: Answering Questions

Is TDD dead? 5: Answering Questions https://www.youtube.com/watch?v=gWD6REVeKW4 === What is an example of an open source project that does TDD well? @David common code open source only extracts commons, libraries only personal experiences of private apps @Martin takes a lot of effort to understand the code bases where these problems occur team of 12 for a year when you’re not working on it @Kent JUnit project @David Are we scientific? virtually impossible to true/false it’s still worth debating...

April 5, 2019

Video: Software Architecture vs. Code - Simon Brown

Software Architecture vs. Code • Simon Brown https://www.youtube.com/watch?v=GAFZcYlO5S0 Book_ Software Architecture for Developers - Simon Brown Paper_ Architectural Blueprints The 4+1 View Model of Software Architecture - Philippe Kruchten Book_ Just Enough Software Architecture - George Fairbanks Paper_ Why Most Unit Testing is Waste - James O Coplien Article_ Test-induced design damage - David Heinemeier Hansson C4 model eg. deployment cares about containers...

April 5, 2019

Video: TDD, Where Did It All Go Wrong - Ian Cooper

TDD, Where Did It All Go Wrong - Ian Cooper https://www.youtube.com/watch?v=EZ05e7EMOLM Book_ Refactoring - Martin Fowler Book_ Refactoring to Patterns - Joshua Kerievsky Book_ Test Driven Development_ By Example - Kent Beck Article_ Is TDD Dead_ - Martin Fowler Ian Cooper - TDD, Where Did It All Go Wrong https://www.youtube.com/watch?v=EZ05e7EMOLM Trigger for writing test != new method != new class = requirement test api System Under Test (SUT) !...

April 5, 2019

Video: The 4 meanings of event-driven architecture - Martin Fowler

The many meanings of event-driven architecture - Martin Fowler https://www.youtube.com/watch?v=STKCRSUsyP0 Article_ What do you mean by “Event-Driven”_ 4 patterns under the name of ‘Event Driven’ Event Notification + reverse coupling + first class + flexibility of adding - no overview in code events vs commands command: response, I want this to happen Event-carried State Transfer + decoupling + availability no more calls no dependency less calls reduce load - send all needed data - copying of data - eventual consistency...

April 5, 2019

Video: Why Scaling Agile Doesn't Work - Jez Humble

Why Scaling Agile Doesn’t Work • Jez Humble https://www.youtube.com/watch?v=2zYxWEZ0gYg Article: The IT Measurement Inversion - Douglas Hubbard Paper: Black Swan Farming using Cost of Delay - Joshua J Arnold and Ozlem Yuce Book: Impact Mapping - Gojko Adzic Video: Better product definition with Lean UX and Design Thinking - Jeff Gothelf Paper: Online experimentation at Microsoft - Kohavi Book: A Practical Approach to Large-Scale Agile Development - Gruver, Young, Fulghum Book: Leading Change - John Kotter [[model-prioritization-cost-of-delay-vs-cost-to-build....

April 5, 2019

Video: Event Sourcing You are doing it wrong - David Schmitz

Event Sourcing You are doing it wrong by David Schmitz ( https://www.youtube.com/watch?v=GzrZworHpIk ) Paper_ The dark side of event souring_ managing data conversion - Michiel Overeen, Marten Spoor, Slinger Jansen [[filing-learning-notes/article-effective-aggregate-design-part-i-modeling-a-single-aggregate-vaughn-vernon.md|]]Article_ Effective Aggregate Design - Vaughn Vernon Book_ Versioning in an Event Sourced System - Greg Young Book_ Exploring CQRS and Event Sourcing - Microsoft resources for eventsourcing resources for eventsourcing The dark side of event souring: managing data conversion - Michiel Overeen, Marten Spoor, Slinger Jansen [[filing-learning-notes/article-effective-aggregate-design-part-i-modeling-a-single-aggregate-vaughn-vernon....

March 22, 2019

classic vs cqrs architecture

classic vs cqrs architecture

March 16, 2019

Code snippets from GregYoung 8 CQRS Class

Code snippets from GregYoung 8 CQRS Class - YouTube public class DeactivateInventoryItemCommand { public readonly Guid InventoryItemId; public readonly string Comment; public DeactivateInventoryItemCommand (Guid id, string comment) { InventoryItemId = id; Comment = comment; } void DeactivateInventoryItem(Guid, string comment) CommandHandler contains no logic, logic is in domain object delegates to domain object public class DeactivateInventoryItemHandler : Handles<DeactivateInventoryItem> { public DeactivateInventoryItemHandler(InventoryItemRepository rep){} void Handle(DeactivateInventoryItem cmd) { var item = repository.GetById(cmd.Id); item.Deactivate(cmd.Comment); } } Application Services cross-cutting concerns (logging, authentication)...

March 16, 2019

Domain Model - Architecture

(I don’t remember the source! If anyone can recognise it, let me know please!) Domain Model - Architecture OO model Aggregate - entities consistent (business rules / invariants) - persistence (one repo per aggregate) - guard access Domain Services Aggregate vs Service Repo <= Domain Service handles persistence for an aggregate Antipattern: Anemic Models

March 16, 2019

EventStore in relational DB

CQRS Documents - by Greg Young Events Column Type Comment AggregateId guid indexed, fk aggregates Data blob Version int unique within aggregate (UserId) guid (Timestamp) (CorrelationId) guid all events point to origin command (SequenceNumber) long auto-incrementingeventstore as queue Aggregates Column Type Comment AggregateId guid indexed, fk aggregates Type varchar fully qualified name Version int denormalized from Events Read event Select * from events where AggregateId =? Order by version Write event...

March 16, 2019