Vous trouverez presqu’autant de façons de développer en C que de logiciels écrits en C. Cela est dû au fait que ce langage vous laisse tout faire. A vous de juger comment le faire.
Récemment, je me suis laissé séduire par une approche fort élégante pour faire du C à la mode Objet, et avec un framework de tests unitaires s’il vous plait.
Voici la recette que j’ai fait mienne lorsqu’il s’agit d’entreprendre l’écriture d’un logiciel en C (en partant d’un prototype écrit à la va-vite par exemple) :
- Chaque classe est écrite dans son fichier classe.h
- La structure de données de l’objet est dissimulée dans le .c afin de ne pas permettre d’accèder à ses membres depuis l’extérieur ; on utilise juste un pointeur caché derrière un typedef pour en faire référence à l’exétieur.
- Plusieurs méthodes sont imposées par la convention pour chaque classe : classe_new(), classe_destroy(self) ; et pour chaque attribut : class_set_attribut(self, value), classe_get_attribut(self).
- Enfin, pour gérer la suite de tests unitaire de chaque classe, on se penchera vers l’excellent projet « check » qui vous fournit une macro autoconf et un schéma d’écriture de tests en C (`make check` dans le sourcetree pour lancer la suite de tests).
En adoptant ces principes simples, on fait du C d’une manière élégante, cohérente et pérenne.