Posts

  • Arrow code - Why you should not nest

    There is nothing as disruptive to code comprehensibility than excessive nesting. Every nest in the code makes it harder to keep track of the current state. A very simple trick exists to identify problem code, you just have to make sure it does not look like an arrow. When you identify arrows (probably at the second level of nesting), you should refactor it as soon as possible.

  • The diminishing returns of rewriting a system without the original authors

    Choosing to rewrite an existing system is a big decision. It usually requires a project to reach a point where the technical debt is too much to deal with, or the technology is so ancient that the compentencies no longer exists. However, it can also come from an engineering team that have gone the wrong way, or chosen to rely on a technology that has become deprecated. This particular story is about the later case. It aims to illustrate the two most important takeaways: domain independence and tribal knowledge.

  • Benchmarking EFCore 3.1 Cartesian explosion problem

    In Entity Framework Core 3.1 any LinQ expression is translated into a single SQL statement. This will not be a problem for most queries, but it can cause performance problems if developers are not cautious of this when crafting queries. This article will introduce a simplified model of a performance problem that was discovered and solved in a production environment.

subscribe via RSS