Archive for category Refactor

Tech Interview – Non-recursive Tree Traversal

In the previous part we extended the database structure and now it supports sub-directories. The algorithm that walks through the directory structure is based on recursive calls. Many times recursion results a nice program structure, but it also has its drawbacks. What if we want to process the data – like files from a directory […]

Leave a comment

Expression Tree Based Activators

In the previous part, in the convention based factory, we used the Activator class CreateInstance() method to create a parser dynamically using a type information. This solution works well in our example, but there is a faster way to create class instances than using Activator.

Leave a comment

Tech Interview – Refactoring V – Convention Based Factory

In the previous part we fixed the code which reads the Person instances from the datafiles. A part of this code was a Factory class based on a switch statement. This solution is ok, but when we add a new parser, we need to remember to add a new case block to the switch statement. […]

Leave a comment

Tech Interview – Refactoring IV – SOLID Refactor

In this part we are going to refactor the parsers and the factory method more, utilizing design patterns and the SOLID principles.

Leave a comment

Tech Interview – Refactoring III – Simple Refactor

In the previous part we looked over the MainWindow class and found some improvement points. Those were common mistakes with simple fix. We skipped a big switch block, because it needed more work, and today we are going to refactor that part. We will not refactor it to its final form, though, first, we just make it better. In a second blog post, we will improve the code more.

Leave a comment

Tech Interview – Refactoring II – Code Smells

In this part we are going to take a look at the source code and try to answer the question that usually sounds like “what problems can you see at first look” or “what do you dislike when you look at this code” or “how would you change the code to make it better”.

Leave a comment