My name is Dmitrii (for most non-Russian speaking people, it is easier to pronounce as ‘Dimitry’). I am a software developer since the 1990s when I first started with Borland tools, such as Paradox and Delphi. In the mid-2000s, I switched to .NET, and my first project for it was developed in version 1.1.
Quickly after version 2.0 was released, the project was updated to the new .NET version, and since then, I have been doing all sorts of applications - WinForms and WPF, Web APIs, Silverlight, WCF services, cloud-hosted apps and services, and on and on... I like to emphasize on code quality and clean code (not the same as the 'clean architecture', mind you!) - this is what I always keep in mind while designing, implementing, or doing code reviews.
And do not take me wrong - I have nothing against clean architecture; it is just a very different level of concern that has its own time and place.
The latest story is about log enrichment; it is my second story dedicated to improving the code quality around logging and observability. Unfortunately, my personal observation is that many projects suffer from treating these concerns as 'second-class citizens', often neglecting best practices and patterns when it comes to adding or implementing logging and observability.
Thus, since one of my recent efforts in a large-scale enterprise system was closely related to cleaning up exactly this problem, I decided to share with a wider audience what can done to lessen the pain and improve the quality.
Actually, I do not write that often, not until recently, at least. Mostly, it is live communication with other people in my company over a topic. However, as I realized, most of these interactions revolve around my favorite subjects of code quality, and this is what I would like to explore further in writing.
Not much routine here, yet. However, it all begins with live code, and then I can see how some particular code piece or approach can be extended to other similar cases, generalized, and made useful for other people and situations. So, I take this code piece, clean it up - anonymize, if you will - and generalize to better suit the purpose of demonstrating a particular concept.
Then I go over the code and explore all important bits and pieces - 'the devil is in the details' - generally it is not enough to copy and paste a piece of code, or call a method, or use a class. A developer needs to know the why's and side effects - there may be a real game-changer that may turn a proposed solution into its opposite if these details are not respected.
I think the most challenging is staying brief and simple. Too many words obscure the meaning and may lead a reader astray. The writer is also in danger of not reaching the initial goal while probably not even realizing it. On a humorous note - the 'single responsibility principle' shines in many aspects of our life; not just in software development.
Having more impact - taking on a role that would allow me to help more and be involved in doing what matters to many people and businesses.
That would be good wine and liquor... In measure, of course. I enjoy exploring wines and strong drinks offered by different countries and cultures in the company of my friends. Good and fitting wine may change a regular meal into something really memorable and enjoyable. Elegance really affects the quality - be it in engineering or in more simple life experiences.
Traveling. I did not visit that many places but I can count stamps of probably fifteen countries in my passport, and I do not mind coming back again and exploring more. The world is very rich, we only need to take what it offers.
I think more on code quality in that or another way. As I mentioned, the main challenge I see is in being brief and simple. Quality often comes with simplicity (not via simplification, though).
But making things simple is often one of the hardest things to do, thus there is a lot to learn and share here.
Actually, I am grateful - Hackernoon gives a convenient way of sharing with other people, and it’s effective and far-reaching. A real treat for both a reader and a writer.
Thank you for the opportunity to share!