The GOF patterns resolve some OOP drawbacks: The Abstract Factory case study

The majority of developers have already heard about the design patterns, GOF(Gang Of Four) patterns are the most popularized, and each developer has his way to learn them , we can enumerate:

  • Reading a book.
  • From web sites.
  • From a collegue.
  • Doing a training.

Regardless of the method chose, we can learn by heart the patterns and spent hours to memorize their UML diagrams, but sometimes when we need to use them in a real project, it becomes more problematic. Continue reading

Leave a comment

People who influenced the programming world series : Uncle Bob.

Robert C. Martin, known as  Uncle Bob has been a software professional since 1970 and an international software consultant since 1990. In the last 40 years, he has worked in various capacities on literally hundreds of software projects. In 2001, he initiated the meeting of the group that created Agile Software Development from Extreme Programming techniques and served as the first chairman of the Agile Alliance.  He is also a leading member of the Worldwide Software Craftsmanship Movement – Clean Code.

Uncle Bob  Contributions:

I- OOP Metrics:

In 1994 Robert “Uncle Bob” Martin proposed a group of object-oriented metrics that are popular until now. Those metrics, unlike other object-oriented ones don’t represent the full set of attributes to assess individual object-oriented design, they only focus on the relationship between packages in the project. Continue reading

Leave a comment

Pragmatic approach to learn a new programming language.

Each programmer has its way to learn a new programming language, and the difficulty to master it depends on many factors, we can enumerate:

  • The language itself.
  • The programmer experience.
  • The language community.
  • The existing language resources ( websites, books,…).

Here are some pragmatic steps to learn a new programming language: Continue reading

Leave a comment

SQLite: The art of keep it simple.

16 years after its first checkin, SQLite is the most widely deployed database engine in the world. such open source project is a good candidate to learn how to make your code easy to understand and to maintain.

Let’s discover some facts about the SQLite code base, for that let’s begin with the following code snippet: Continue reading

Leave a comment

45 years since its creation. The C language still very popular.

C is one of the most popular language around all the world, it was initially developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. Many thousands of projects was developed using C since then. It’s used for all kinds of needs, we can enumerate OS, embedded applications, gaming development, image processing, word processing and database engines. Continue reading

Posted in Uncategorized | Leave a comment

1 year after launching the C++ best practices repository, the basic rules are the most popular.

Last year we launched the C++ Best Practices repository.  It’s an aggregator of some known C++ rules guides:

  • Google Style Guide.
  • jsf air vehicle c++ coding standards.
  • Effective Modern C++ from Scott Meyers.
  • POCO coding standards.

Continue reading

Leave a comment

Do the developers have less interest in design patterns or they are more pragmatic?

The majority of developers have already heard about the design patterns, GOF(Gang Of Four) patterns are the most popularized, and each developer has his way to learn them , we can enumerate:

  • Reading a book.
  • From web sites.
  • From a collegue.
  • Doing a training.

Regardless of the method chose, we can learn by heart the patterns and spent hours to memorize their UML diagrams, but when we need to use them in a real project, it becomes more problematic. And related to google trends the design patterns are not more popular as before.  Continue reading

Leave a comment

A picture is worth a thousand words: Visualize your C/C++ Projects case study.

A picture is worth a thousand words” is an English idiom. It refers to the notion that a complex idea can be conveyed with just a single still image or that an image of a subject conveys its meaning or essence more effectively than a description does.

This idiom could also be applied in software programming. Indeed you can easilly understand a mini project when exploring its source code. However a big project become complex and not easy to understand.  In such cases it’s better to visualize the source code using graphs and diagrams to assist the developers understanding the source code. Continue reading

Leave a comment

Make the most of the C/C++ static analysis tools

Static code analysis is the process of detecting flaws in software’s source code.  The static analysis tools are useful to detect common coding mistakes; here are some benefits from using them:

  • Make the code source more readable and maintainable.
  • Prevent unexpected behavior in execution.
  • Optimize the execution.
  • Make the code more secure.

Many C/C++ static analysis tools exist right there, each one focus on a specific area and has its advantages, we can enumerate:

  • CppCheck 
  • Clang Analyzer
  • Visual C++ Analyzer
  • VERA++
  • Goanna
  • Viva64
  • PCLint

Continue reading

1 Comment

Do not underestimate the importance of the code refactoring

The refactoring is defined as the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure.

We can enumerate three cases concerning the code refactoring:

  •  Iterative refactoring: your application can’t be developed perfectly at the first iteration, even if the team has the best of the architects, designers and developers. The easy way to do refactoring without investing a lot of money and without wasting time is to integrate it in the development process and do it after each iteration.

Continue reading

Leave a comment