LIST

Video: Is TDD dead? 2: Test-induced design damage

Is TDD dead? [Part II] (test-induced damage) https://www.youtube.com/watch?v=JoTB2mcjU7w and it got there one test at a time one design decision at a time TDD puts evolutionary pressure on a design testability puts pressure on a design question of grain-size continuum of granularity of tests cost of every layer of indirection TDD is addicting No, desire for isolation is causing this result. isolation is the driver you cannot isolate yourself from backend/db/in-memory/webservice how much are we willing to spend, to get how much decoupling cohesion vs coupling willing to suffer high coupling, so I can have high...

April 5, 2019

Video: Is TDD dead? 3: Feedback

Is TDD dead? [Part III] (feedback) https://www.youtube.com/watch?v=YNw4baDz6WA === Kent Feedback instant feedback is not always possible how far can we? how frequently feedback? 100ms – minutes fidelity of feedback green + prod -> % no crash different kinds of software different personalities overhead lifespan years & probabilities === Martin there is more than one thing you want feedback on User needs “is this software doing something useful for the user?” “how do I want to visualise the UI”...

April 5, 2019

Video: Is TDD Dead? 4: Costs of Testing

Is TDD Dead? 4: Costs of Testing https://www.youtube.com/watch?v=dGtasFJnUxI === David other half of trade-offs things are not free pressures and nudgings over-testing “never write a single line of prod code without writing a test” multiples of lines of test code per prod code what is the right ratio? how many 9’s ? === Kent delta-coverage how much does a test test which none others do if you have multiple tests covering one behaviour, you have coupling...

April 5, 2019

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

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