You Must Not Admit a Single Null!
There are some principles in software development that offer benefits anywhere they are used, even in just some parts of the code. For others, they must be applied everywhere to be useful. The rule against never passing null must be applied everywhere for one major reason.
Result vs Exception
When working with business or network integrated software, errors are inevitable. It’s been compellingly argued that exceptions should not be used for control flow. It’s also critical to communicate the cause of the error and known solutions. One of the possible solutions this leads to is using a Result data structure. Let’s look at how this differs from the conventional use of exceptions.
Who Makes the Decision?
One of the biggest keys to a well-managed project is proper assignment of responsibility. Having good people on a project is not enough. The project must be correctly organized and managed so that people can succeed. At any moment, each team member should be able to give a clear and unambiguous answer when asked “Who is responsible for X?” or “Who decides what should happen in X scenario?”. If they can’t, the project will be late, over budget, and incongruous.
LiteMediator - In-Process Messaging Library
The best libraries are discovered, rather than engineered. After using in-process messaging in .NET projects for several years, I have decided to release a library sharing it with all of you. Using messaging has been extremely helpful to me in both game development and modern web development. Both greatly benefit from lightly-coupled message-driven architectures, which makes Mediator pattern a perfect solution.