I was assigned the first task of my life. Writing a small library to process data stored in a file. Some of the code was already written by a senior programmer in another programming language. My task was to write the similar code using C#. I was new. I learned object oriented programming and object […]
Blog
Put a Dinosaur in Zoo
If you have ever been to a zoo you will definitely want to see one animal and that is Lion. Why? It’s because a lion is the king of the jungle. It’s at the top of the food chain. I asked questions from my parents like: “can a lion kill an elephant or crocodile or […]
You Win And They Lose, Even Before the Competition Started
You can get “100 out of 100 marks in the subject of Mathematics”. This phrase was marketed to us so many times. That I internalize this term and because of that I always got 90 percent or more marks in maths. Maths is logical. Similar to programming. You follow certain steps and the right answer […]
You hate comments? Kill Them (Period)
A while ago, I was searching about comments. Specifically, strategies to comment better. I found the following example: // // Dear maintainer: // Once you are done trying to ‘optimize’ this routine, // and have realized what a terrible mistake that was, // please increment the following counter as a warning // to the next […]
S.O.L.I.D, GRASP And Other Basic Principles of Object Oriented Design
I will start with a cliché
A software code should depict following qualities:
Maintainability
Extensibility
Modularity
etc
You may find yourself in a difficult situation when you ask a question about whether any particular code depicts above quality features or not.
A technique that helps is by looking at the development timeline of any software. If the software code remains easier to maintain, extend and modular over its lifetime then it means that the code has above quality features.
I have written difficult to read, hard to extend and rotten software code. I only knew this after six months into the development when a change happens. Hence development timeline is important in understanding quality factors.