Handling Exceptions and Errors. Part 1 – Intro.

In this article we will discuss exception handling best practices. There is a lack of meaningful information about exception handling on the Internet, so let’s go. Have you ever seen that recommendation to avoid exception handling like this: [code language=”csharp”] try { //do something } catch(Exception ex) { } [/code] Well, indeed, I agree that this exception handler looks pretty bad. But is it [...]

By |2016-07-27T17:38:53+03:00September 21st, 2015|.NET, Best Practices, C#, CodeProject, Design|3 Comments

UpdateableSpin Synchronization Primitive

Today we are going to look at a relatively rare case of synchronization. There are no appropriate C# synchronization primitives out of the box. In order to understand the case we’re going to talk about you can imagine the following case: “Your code makes a call to the third-party library’s method and you have to wait that method until the end. That method performs [...]

By |2016-04-26T18:47:45+03:00August 22nd, 2015|.NET, C#, CodeProject, Multithreading|0 Comments

Null-Checking Semantics Obscurity

This topic is going to be simple, yet an interesting one. I’ll try to expose here my feelings about a certain case of null-checking. It’s a well-known fact that introducing null-values considered by its inventor, Tony Hoare, as a billion-dollar mistake. Despite of some “modern” practices like making classes immutable, applying Null-Object pattern or using Code Contracts extensively, we still often want to declare [...]

By |2019-01-11T11:18:25+03:00August 8th, 2015|.NET, Best Practices, C#, CodeProject, Design, Refactoring|0 Comments

Refactoring: Extract a Method, When It’s Meaningful

Big Functions Hell Well, now it’s hard to remember the moment, when I first time realized that it’s actually a good idea to extract functions from the massive chunks of useful code. Either I got this knowledge from the “Complete Code” or “Clean Code” – it’s hard to recall. Actually, it does not matter so much. We all know that we should split the [...]

By |2016-08-17T13:54:50+03:00July 20th, 2015|.NET, Best Practices, C#, CodeProject, Design, Refactoring|0 Comments
Go to Top