Code Smells : Object Oriented Abusers

While a well implemented Objected Oriented code is a hallmark of a good program, a poor implementation of the same could  lead to utter chaos as the project progresses. Object Oriented Abusers are a particular genre of Code Smells which refers to incorrect or incomplete implementation of Object Oriented Concepts. Switch Statements Switch Statements are … Continue reading Code Smells : Object Oriented Abusers

Code Smells : Bloaters (Primitive Obsession, Long Parameter List, Data Clumps)

Primitive Obsession If there is a code smell I often misses, then it has to be Primitive Obsession. Quite honestly, I have been guilty of falling for Primitive Obsession more than once. This particular type of Code Smell refers to the tendency of Developers to use primitive types instead of small objects for stimulating certain … Continue reading Code Smells : Bloaters (Primitive Obsession, Long Parameter List, Data Clumps)

Caliburn.Micro #006 : Event Aggregators & Window Managers

Consider the classic scenario when you need to show the currently logged in User Name in your main Window, once you have successfully logged in. The The login Window is supposed to be a Modal Dialog, and isn't remotely aware of the Label displaying Username in the Main Window. WPF handles Modal Dialogs and messaging … Continue reading Caliburn.Micro #006 : Event Aggregators & Window Managers

Code Smells : Bloaters (Long Methods, Long Class)

Code Bloats or Code Bloaters are probably the most common signs of code smells you can see in any branch of code. In fact, eradicating bloaters act as the first step towards refactoring your code. Bloaters are nothing but classes or methods that have grown excessively over a long time marking it difficult to work … Continue reading Code Smells : Bloaters (Long Methods, Long Class)

Caliburn.Micro

Caliburn.Micro is a extremely lightweight MVVM Framework. This series provides an introduction/refresher to developing WPF applications with Caliburn.Micro 1. Caliburn.Micro: Introduction 2. Caliburn.Micro: Bindable Collections & Events 3. Caliburn.Micro: Events (Short Hand Syntax) 4. Caliburn.Micro:Bootstrapper with SimpleContainer 5. Caliburn.Micro: Bootstrapper with MEF 6. Caliburn.Micro: Event Aggregators & Window Managers 7. Caliburn.Micro: Bootstrapper with Unity 8. Caliburn.Micro: … Continue reading Caliburn.Micro

Fail Fast Principle

There are 3 keys ways a developer usually approaches error handling in code. Ignore Fail Safe Fail Fast We have, at different point of writing code, used all three approaches. There are times when have good reasons to ignore a particular exception scenario, while at other times, we are opt for Fail Safe approach. Fail … Continue reading Fail Fast Principle

StarFish Retrospective

"At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly" - 12th Principle, Agile Manifesto It doesn't need any explanation why Retrospectives are important in any scrum team. Question is, how can we make Retrospective Sessions more effective. I was in conversation with a friend recently … Continue reading StarFish Retrospective

Mutation Testing

Even with TDD, the quality or coverage of the existing Unit Tests are always a concern for the developer. "Have I done enough ?" That's one question that haunts him throughout. Mutation Testing is a structural testing method that attempts to add more value to Unit Tests by aiding in identifying the 'misses' in Unit … Continue reading Mutation Testing