Wholemeal to Imperative ONLY IF Necessary

Since 1950, in computer science and programming a general dichotomy was shaped. This dichotomy was regarding how to approach programming problems, what to sacrifice and what to favor first. One group was in favor of performance, also known as Bottom-Up...

Read More

Terseness VS Elegance

One of the factors used by many programmers in the analysis of a program from quality, design and understandability perspective, is LOC (Lines Of Code) and sometimes that’s taken to another level - specially in the functional programming world...

Read More

Divorce from Framework or Library

Heads up: for the main point of this post, library and framework are used interchangeably even though those two are inherently different things.

In our programs we leverage many different libraries and frameworks. We use them in order to address...

Read More

Pick the Right Tool for the Task at hand

We’ve been told many times in our life that each tool is useful for certain tasks and using a tool for something unrelated or even somewhat related is not a very smart decision. For instance you do NOT use a...

Read More

Wishful Thinking & Test Driven Development

In the past few months I’ve been doing something a little bit different from the approach that I usually take while programming/developing software. If you’ve read the GREAT book SICP, you should be familiar with the term “Wishful Thinking”!...

Read More

Nested Stubbing => Shouts for Refactoring

A lot of programmers write unit tests during the development and also a lot of programmers do Test Driven Development. One thing that we usually forget while programming is Listening to our Tests. If we listen carefully to our tests...

Read More

Clean is not only for code or test

TL; DR Branching -> Cleaning-up commits -> Merging -> Pulling -> Pushing;

Working in a clean and neat environment is not ONLY for the production code and the tests of the software, it also can apply on different aspects of...

Read More

Few more characters better than jumping around

This is a short post for pointing out a quick and handy little thing that I found helpful in some cases while programming.

Some people are religiously against comments and they know the existence of comments in the code as...

Read More

Refactor till Drop!

Sometimes we think that our code is good enough and clean! It’s totally fine to continue developing instead of looking it from one step back and clean it up before we move one! After all it is called Red-Green-Refactor! It’s...

Read More

Details are Evil

Recently one of my friends asked me to help him for refactoring and improving the design of his rails application and its unit and integration tests. It was a really great experience because working on other people’s codes always teaches...

Read More

Fast Rails Tests, Smoother Development

If you’re a rails developer or had an experience of writing a rails application you know that running your tests is a really painful and long process because it loads the rails environment at first. I’m assuming you write unit-tests...

Read More

Minimum Number of Failure Reasons

Few weeks earlier one of my friends told me that he wrote a project for his File Structure course and likes to write unit-tests for it and put under high test coverage then Refactor it and makes its code as...

Read More

Refactoring Legacy Code

What would you do when you have a mess and legacy code and you need to add some functionality to it?

Of course there are different options here. But the one you choose can make adding functionalities and continuing the...

Read More

Communicative Name for Unit Tests

This is just a short post for mentioning a quick but very important issue in unit-testing(micro-testing). Some people don’t pay enough attention to naming their unit-tests!!! Actually some people don’t pay enough attention about quality of their unit-tests(but it’s a...

Read More

Unit Tests should be for Units

Unit Tests should be more focused and specialized:

Writing unit tests is a really interesting and important craft and art which every software developer should understand and practice it very well for being more effective and successful.

In Test Driven...

Read More

DRY in every aspect

This is just a quick thing about DRY.

I think every person in the software development community know what is DRY. But I’m gonna explain its essence in few sentences.

DRY stands for Don’t Repeat Yourself. Dave Thomas and Andy...

Read More

Writing Katas in Different Languages

I assume that anyone who reads this post is familiar with the concept of Kata in programming. But I’ll just introduce it in few lines. Kata is kind of practicing which originally belongs to martial arts. It’s a practice that...

Read More

TDD in C Part II

In the previous part we saw how we can create CppUnitLite library for using in other projects and also how we can make our projects to depend on that library and use. Now it’s time for writing a very simple...

Read More

TDD in C Part I

A few days ago one of my friends told me: “do you think we can do TDD in C?” at first I thought this is kind of stupid cause TDD makes sense for Object Oriented programming and design so for...

Read More

Report System Part III

This is the last part of Report System blog series. I’m going to talk about a testability point that happened to me when I was writing our Report System.

As you know, before we decided to write our own report...

Read More

Report System Part II

In the previous post I told you we decided to write our own report system, so we’ll have an html page for each letter or report fixed contents and some kind of a special pattern for their interchangeable parts.

From...

Read More

Report System Part I

About a year and a half ago one of our customers told us about their new requirement. They wanted some kind of a report system for handling their letters and reports, they have some letters and reports with fixed contents(for...

Read More