Week 18, year 2017

  • Code review: User Controller and error handling - This is the first code review where I showcase some real-world code example and nitpick suggest improvements in it. If you want to learn more about this new format, check out this post. You can also request a review yourself. To do that, use the form on this page. Code review: User Controller and error handling The code in question is a UserController class with this Create method: publicIActionResult Create([FromBody] UserCreateModeluser) [Enterprise Craftsmanship]
Permalink | From 01 May 2017 to 07 May 2017 | Last updated on: Mon, 7 Jun 2021 09:11:14 GMT

Week 17, year 2017

  • DDD Weekly: Issue #34 - Secure by Design [slides] Manning. As a developer, you need to build software in a secure way. But you can’t spend all your time focusing on security. The answer is to use good design principles, tools, and mindsets that make security an implicit result - it’s secure by design. The secret of better UI composition [blog] Mauro Servienti. What we immediately realized is that there seems to be no canonical guide to designing UIs that retrieve and aggregate data from different sources. [DDD Weekly]
  • Emergent Boundaries - Video of my DDD eXchange 2017 talk in London Video of my ExploreDDD 2017 talk in Denver Abstract Modelling is more than knowledge management. It’s complexity management. To reduce cognitive load, you split things up, whether at small scale, in code, or in the large, such as Bounded Contexts. But if you choose large boundaries upfront, you risk getting it wrong, and being stuck to them for a long time. Join Mathias in a discussion of better ways of empirically discovering boundaries instead. [Mathias Verraes]
Permalink | From 24 April 2017 to 30 April 2017 | Last updated on: Mon, 7 Jun 2021 09:11:25 GMT

Week 16, year 2017

  • Call for code review - When I started this blog, I had one idea in mind: create some sort of repository of programming principles and practices so that I myself and other people would have an easier time navigating around them. That’s a nice goal to aim for but I noticed that when it comes to the actual process of writing code, having such a repository is often not enough. [Enterprise Craftsmanship]
Permalink | From 17 April 2017 to 23 April 2017 | Last updated on: Mon, 7 Jun 2021 09:11:14 GMT

Week 15, year 2017

  • Awkward Aggregate Root relationships and how to rethink them - I have an Order that can be split into multiple Shipments. A Customer orders Quantity X of Product Y, represented as a single OrderLine with Quantity = X. In order to optimize shipping costs, Quantity X of Product Y is split into Z number of Shipments…. [Nick Chamberlain on Nick Chamberlain]
  • DDD Weekly: Issue #33 - The Tale of State and Behaviour, Part 1 with Scott Wlaschin [podcast] Three Devs and a Maybe. Part 1 and Part 2. “In this weeks episode we are lucky to be joined by Scott Wlaschin again, to discuss his recent ‘Thirteen ways of looking at a turtle’ talk.’” DDD eXchange 2017, April 27th - April 28th [conference] SkillsMatter. Strategic Domain Driven Design: Project Management Simplified [blog] Robert Reppel. “Just like realising the benefits from choosing a CQRS/ES based architecture requires a business domain- rather than technical mindset in order to properly establish transactional boundaries and to manage coupling and cohesion, DDD needs certain practices to be firmly established and continuously applied in order to be of value. [DDD Weekly]
  • Temporal coupling and Immutability - This topic is partly covered in my Applying Functional Principles in C# Pluralsight course, Module 2. Here, I’d like to elaborate on how temporal coupling and immutability are related to each other. Temporal coupling Temporal coupling is coupling that occurs when there are two or more members of a class that need to be invoked in a particular order. A common example is the following: var calculator = new PriceCalculator(); calculator. [Enterprise Craftsmanship]
Permalink | From 10 April 2017 to 16 April 2017 | Last updated on: Mon, 7 Jun 2021 09:11:14 GMT

Week 13, year 2017

  • DDD Weekly: Issue #32 - The Strategic Practices of Domain-Driven Design [booklet] Nick Tune. “This booklet is used as the supporting material for my advanced Domain-Driven Design workshops. However, it can also be used in isolation, especially if you want a guide for getting started with strategic DDD.” Using CQRS to Make Controllers Lean with Derek Comartin [podcast] Software Engineering Daily, Derek Comarin, Dave Rael. “In this episode, Derek joins Dave Rael for a conversation about CQRS and applying it to make your code your own and to separate it from technical concerns in order to make your software development operation work better and faster. [DDD Weekly]
  • What is an exceptional situation in code? - This is a continuation of the topic of error handling. We’ll discuss what an exceptional situation in code actually is and see some examples of it. [Enterprise Craftsmanship]
  • Messages Over Structure - Video of my keynote at Neos Conference 2017 in Hamburg [Mathias Verraes]
Permalink | From 27 March 2017 to 02 April 2017 | Last updated on: Mon, 7 Jun 2021 09:11:25 GMT

Week 11, year 2017

  • A Reactive Process Manager in C# with Akka.NET - A while back I was looking for an example of a Process Manager written in C# with a decent commentary on what they’re all about. Unfortunately, I couldn’t find what I was looking for. [Nick Chamberlain on Nick Chamberlain]
  • DDD Weekly: Issue #31 - Sale ends tomorrow! Applying Domain Driven Design with CQRS and Event Sourcing [book] Nick Chamberlain. Take a look at a free sample of the book here. Use promo code firstpopcoffee for $10 off. Offer expires Friday @ 5PM EST, so act now! Life Beyond Distributed Transactions [journal] Pat Helland. “We are at a juncture where the patterns for building these applications can be seen, but no one is yet applying these patterns consistently. [DDD Weekly]
  • Error handling: Exception or Result? - In this post, we’ll look at some practical examples of error handling. We will see whether it is better to use exceptions or the Result class to deal with errors. [Enterprise Craftsmanship]
Permalink | From 13 March 2017 to 19 March 2017 | Last updated on: Mon, 7 Jun 2021 09:11:14 GMT

Week 10, year 2017

  • DDD Weekly: Issue #30 - Applying Domain Driven Design with CQRS and Event Sourcing [book] Nick Chamberlain. Use promo code firstpopcoffee for a limited-time $10 discount. Designing robust and predictable APIs with idempotency [blog] Brandur Leach. “Considering the possibility of failure in a distributed system and how to handle it is of paramount importance in building APIs that are both robust and predictable. Retry logic on clients and idempotency on servers are techniques that are useful in achieving this goal and relatively simple to implement in any technology stack. [DDD Weekly]
Permalink | From 06 March 2017 to 12 March 2017 | Last updated on: Mon, 7 Jun 2021 09:10:50 GMT