+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Membre confirmé
    Avatar de deletme
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2011
    Messages : 257
    Points : 519
    Points
    519

    Par défaut Quelles sont vos meilleures pratiques ?

    Bonjour à toutes et à tous,

    Nouveau dans le monde de Qt (bien qu'ayant déjà développé des application à l'aide de ce "framework"), je souhaiterais m'améliorer dans la conception dans mes futures applications (pour qu'elles restent maintenables et évolutives).
    Aussi, avez-vous des best practices que vous suivez systématiquement ? Avez-vous ou connaissez-vous des projets dont le code source est accessible permettant d'apprendre un peu plus ?
    J'ai quelques livres à ma disposition mais la plupart se cantonnent à une application par notion abordée et dès que l'on sort des sentiers battus on se demande si on fait bien. J'ai également parcouru quelques exemples fournis par Qt mais j'avoue rester sur ma faim.

    Merci,

    dM
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    - Martin Golding
    Traduction obligatoire : "Toujours écrire du code en gardant en tête que le mec qui en assurera la maintenance est un psychopathe violent qui connait votre adresse"

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 38
    Points : 65
    Points
    65

    Par défaut

    Je n'ai pas utilisé Qt depuis un moment, et je vais donc donner surtout mon avis sur les bonnes pratiques à appliquer en c++ en général qui ont beaucoup amélioré ma productivité.
    - RAII avec les pointeurs intelligents, ne pas utiliser de pointeurs nus qui gèrent la durée de vie d'un objet
    - La programmation défensive, en utilisant de nombreuses stratégies comme la programmation par contrat (disponible dans gsl: https://github.com/Microsoft/GSL )
    - Éviter les globales et les singletons autant que possible, dans un petit projet on ne se rend pas compte du mal que c'est mais dans un gros projet ça cause rapidement de gros problèmes
    - Toujours initialiser ses variables
    - Utiliser le sanitizer de gcc (ou valgrind, mais c'est plus lourd) pour détecter de nombreuses erreurs comme les fuites de mémoire, les variables non initialisées utilisées, etc...
    - Comprendre reinterpret_cast (et sa différence profonde avec static/dynamic_cast) avant de l'utiliser (mes débuts en C++ n'ont pas été glorieux a cause d'une utilisation stupide et intensive de reinterpret_cast).
    - Avoir la notion "d'undefined behaviours", et être conscient qu'un programme qui compile et semble fonctionner, n'est pas forcement un programme fonctionnel.
    - Vérifier le standard C++ quand on a un doute (encore une fois, ce n'est pas parce que ça "compile" et que ça semble marcher que c'est standard/légal/bon).

    Côté Qt, j'ai perdu beaucoup (trop) de temps a ne pas utiliser le designer, et à instancier mes widgets manuellement en code.
    Un conseil, apprendre a maîtriser Qt designer, c'est vraiment très efficace, puissant, et quand on le maîtrise il y a un réel gain de productivité.

  3. #3
    Membre régulier
    Homme Profil pro
    C/C++ - python - web
    Inscrit en
    juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : C/C++ - python - web

    Informations forums :
    Inscription : juillet 2012
    Messages : 26
    Points : 78
    Points
    78

    Par défaut … PyQt

    hors sujet … quoi que!

    Pour ma part, bien que partant de projets en C/C++, je réalise mes refactorings, pour la partie IHM en Qt, en python avec PyQt… et débutant également avec ce framework, j'ai apprécié les exemple suivant:
    https://github.com/pyqt/examples

    ce qui me permet d'utiliser aussi PyQtGraph

    Je réalise le binding avec mon controleur C/C++ en utilisant Swig

    Résultat: pas besoin de recompiler mon IHM après chaque modif… un code python utf-8 avec mes accents qui vont bien sans prise de tête… le C/C++ là où il est le plus efficace et python/Qt là où ils sont le plus efficaces… enfin au moins pour moi!

  4. #4
    Membre habitué

    Homme Profil pro
    Débutant OpenOffice et Poo
    Inscrit en
    février 2015
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Débutant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : février 2015
    Messages : 140
    Points : 156
    Points
    156

    Par défaut

    Bonjour,

    Il y a des exemples sur www.searchcode.com faisant référence à Qt.

Discussions similaires

  1. Quelles sont vos méthodes de programmation et de débogage ?
    Par Doloop dans le forum Langages de programmation
    Réponses: 43
    Dernier message: 04/07/2017, 21h27
  2. Réponses: 61
    Dernier message: 29/12/2016, 13h58
  3. Quelles sont les meilleures pratiques pour une démonstration en ligne?
    Par bbalet dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 25/02/2015, 15h07
  4. [Avis] Quelles sont les meilleures API et outils Java ?
    Par Mickael Baron dans le forum APIs
    Réponses: 33
    Dernier message: 08/06/2011, 15h39
  5. Réponses: 5
    Dernier message: 25/05/2009, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo