Pages

22 févr. 2012

Memo Makefile

En Programmation Efficace on doit établir des benchmarks sur des programmes C qu'on aurait fait auparavant. On doit alors passer par des Makefile, je fais ici un petit mémo à moi même au cas ou: définition de variables:
UNEVAR=toto
UNEAUTREVAR=titi
CC=clang
utilisation d'une variable:
$(CC) -o $(UNEVAR) $(UNEAUTREVAR).c
serra vu comme:
clang -o toto titi.c
La structure d'un Makefile (respecter le M majuscule) est la suivante:
cible : dependance1 dependance2
    $(CC) -o output input.c

dependance1 :
    echo "hello "

dependance2 :
    echo "world"
On peut effectuer les commandes d'une cible en silent:
dependance1 :
    @echo "hello"
Ce qui aura comme effet de ne pas écrire echo hello sur l'invite de commande, mais bien hello. *attention*: avec flymake, il faudra inclure la cible suivante dans le Makefile correspondant:
check-syntax :
    gcc -o /dev/null -S ${CHK_SOURCES}
Voilà, pour plus d'infos j'ai trouvé le lien suivant.

21 févr. 2012

Petit comparatif de GCC et Clang

Cette aprèm on a eu Programmation Efficace a.k.a ETFP (Elite Task Force Programmers), on a du comparer la performance en temps et en place d'une implémentation en C de l'algorithme de Floyd Warshall. On devait monter une batterie de tests du temps real, user et sys en fonction de l'option d'optimisation de GCC: -Ox (1...n)
D'ailleurs voici un lien vers un comparatif de gcc et clang.
Je posterais mon benchmark qui consiste en un Makefile et quelques scripts python et bash.

:D

17 févr. 2012

Mémo: GIT sous Eclipse

Note à moi même:
Avec GIT (sous Eclipse EGit), lorsqu'on commit, ça ne comitte que localement, pour appliquer les changements dans le dépôt en ligne, il faut faire un push !

6 févr. 2012

Les DAO

Cet article me sert surtout d'aide mémoire dans le cas où je suis amené à réutiliser les DAO. Data Access Object sont comme leur nom le suppose des objets d'acces aux données. Les DAO sont utilisés lorsqu'on doit rendre persistant des données. C'est en fait une couche entre le code métier de votre application et le pilote vers votre base de données. Par ce concept on essaye d'abstraire tout le code interne à la connexion à la base de données, l'acces, l'ajout, la mise à jour et la suppression de données, et fournir au code métier des primitives qui seront elles utilisées à la place. Ainsi le code métier n'aura qu'à s'occuper à demander des informations, les modifier, etc… sans se soucier de comment se connecter, ou si on a bien fermé la connexion à la fin. Aussi la puissance des DAO se situe dans le fait qu'on peut carrément abstraire le type de connexion, de ce fait le code métier est très peu impacté. Conjointement avec les DAO, on peut utiliser le design pattern de fabrique abstraite qui permet, pour un impact moindre sur le code métier, de choisir son type de connexion avant de récupérer les DAO spécialisés.