README.txt original d'avoir appelé les applications DrCute et MrHyde. Ca change de serveur et client (mais ça rapporte pas de point :) MrHyde utilisation de la ligne de commande pour le choix du type de démarage très bien garder en mémoire (fichier .ini ?) le choix par défaut à utiliser serait encore mieux. Idem pour ip et port ok, fait pour le client changement de port à chaque redémarrage : nécessité de redémarrer les tous clients en cas de redémarrage du serveur = redémarage non transparent Localisation de la base de données en dur : pas de possibilité de modifier. Un paramètre pour indiquer l'emplacement serait mieux Regénération de la base : très bien DrCute Mode fenêtré : bien d'avoir indiqué comment passer d'un mode plein écran à fenêtré. Ca aurait été encore mieux de faire un menu paramétrage Bien le fichier de sauvegarde. Il aurait fallut développer le principe et le faire pour d'autres paramètres Identifiant unique : pourquoi ne pas avoir utilisé l'aresse IP Généralité pas d'entête dans les fichiers indiquant le copyright (voir par exemple les fichiers .cpp et .h d'Amnell) manque de documentation, responsabilité des classes et fonctions peu claire Gui Simple et efficace. Peut être trop simple pour une appli pro ? Animation très bien Choix de la liste des patients et medecin sans critères de recherche. Comment faire si plusieurs milliers de patients ? Affichage de la radio simpliste. Manque beaucoup de fonctions MrHyde ajout de "CONFIG += console" permet de quitter "proprement" le serveur (mais généré automatiquement par Qt Creator ?) main.cpp lecture des paramètres de la ligne de commande : simple et efficace mais pas très POO. Une classe dédiée aurait été un plus Beaucoup d'include commenté et inutile Serveur Pré déclaration des classes Qt et utilisation de QT_XXX_NAMESPACE : très bien isLocalMode variable public. Encapsulation ? copié collé du code (avec le "Trolltech" :) Pourquoi la fonction prepare() est dans Serveur ? ServerNode Liste des commandes en dur avec des if en série readString() : reste du code de test. Fonction inutile sendImage() : bien l'utilisation de QBuffer SQL -prepare : an cas d'erreur dans l'insertion de lignes, incrémente quand meme le nombre de lignes très bonne idée d'avoir prévu la génération de la base par le serveur structure en dur dans la classe. Resultat : peu souple et code trop important dans cette classe constructeur : pas de test d'existance avant de faire mkdir lignes trop longues Dr Cute drcute.pro beaucoup de lignes inutiles Connexion lors de la connexion, il faut aller chercher le port indiqué par le serveur pour se connecter, ce qui est peu pratique. Le mieux dans ce cas, est d'utiliser un broadcast (voir l'exempel UDP Broadcast dans les démos Qt) pour envoyer un message à toutes les adresses IP et tous les ports et voir sur quelle adresse IP le serveur répond. Edition de l'adresse et port peu pratique (pas possibilité de selectionner) main.cpp initialisation de la vue dans le main. A déplacer dans une classe dédiée Client héritage de Config ? Pourquoi relation EST-UN ? Responsabilité de Config ? variables membres public. Non respect de encapsulation responsabilité multiple : gestion de la base de données, traitement des messages, connexion réseau code similaire à celui coté serveur (avec les mêmes problèmes) QML découpage du code peu efficace, des fichiers très volumineux utilisation des états et transitions