After six months of writing articles on Medium, I realized that this is a great hobby that I want to keep doing.
Even though I now have over 70 draft new articles, I want to become more reader-oriented when choosing topics for my articles.
Here is the Google Form everyone can use to suggest me a topic of the future article:
If I choose a topic you suggested, I will mention you at the end of the article.
Thank you in advance!
Software developers spend most of their time reading code, not writing it. Due to this fact, the code should read like a book so that it can be easily understood not only by compilers but also by other developers.
I will not share with you the standard and well-known naming conventions here. I’ve put together some common intrusive naming violations that static code analyzers usually don’t report and how to fix them.
Programmers often use weasel words like “Temp”, “Dto”, “Info”, “Item”, “Base”, etc., which do not add any value to the names.
Usually, it is enough to simply remove…
Good developers constantly learn from the various sources available: open-source projects, books, video courses, conferences.
Another important source of knowledge is good blogs, where mature developers, technical leaders, or architects share their experience and are ready to answer your questions.
I have collected the 5 best blogs from my personal list, which I have followed for many years and which I really like because they have a big positive impact on my career.
The author of the blog writes in-depth articles, mainly on domain-driven design, unit testing and CQRS.
Some good articles:
Abstracting the application logic from
DateTime.Now property is a common task for developers to enable unit testing.
DateTime is hard-coded into logic, unit tests will not be reliable.
In the following example, a unit test can only pass if it is executed on a very fast machine:
DateTime.Now instance used in application logic will often have a different number of milliseconds / ticks than
DateTime.Now used in test case assertion.
There are at least 5 ways to solve the
DateTime.Now problem in unit tests and make them run predictably.
One of the most common approaches is to introduce…
Objects can instantiate other objects directly by calling the
new keyword, but this approach is often not the best choice.
Instantiating the object is a separate responsibility that should be carried over from the client code to separate classes/methods called factories.
What do software developers need to deliver quality work fast? In addition to fundamental knowledge in computer science, extensive experience, critical thinking, developers should use libraries available on the market so as not to reinvent the wheel and complete tasks or troubleshoot issues much faster.
The NuGet Gallery provides thousands of libraries, and some of them are real diamonds that can be hard to find.
NodaTime library was created by John Skeet to address the various problems related to date and time, time duration, time zones, calendar systems, and more that the built-in .NET types (DateTime, DateTimeOffset and others) have.
Good unit tests help software developers catch regression issues that might accidentally arise during refactoring, bug fixing, or integrating new features into an existing codebase.
There are many best practices for creating a useful unit test suite, and we’re going to take a look at several important ones.
The execution time for the entire suite should be Fast and take seconds, not minutes. Slow tests will increase the time developers need to refactor the logic, as they often run the entire test suite to ensure that there are no new regression issues. …
The purpose of the strategy design pattern boils down to replacing parts of some generic algorithm at runtime.
Web applications are made up of several interconnected layers: the client side, the web framework, the ORM, and, at the very bottom, the database.
When an application is running slowly, the performance bottleneck can be hidden at one of several levels:
The database, like any other complex application component, has…
Programming is so complex that there are always several ways to accomplish the same thing.
The Builder design pattern is no exception. I’m going to present you with 4 ways to implement the Builder pattern in C# while deliberately avoiding the classic implementation (according to my observations, this is practically not used).
Even though some implementations below may seem complex to use in production, they are a good exercise to train your OO and coding skills.
The builder is a class that provides a set of user-friendly APIs that clients can use to create an object.
The builder should hide…