IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Quelles sont vos meilleures pratiques ?

  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

  2. #2
    Membre émérite Avatar de onilink_
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    610
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 610
    Points : 2 497
    Points
    2 497
    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 actif
    Homme Profil pro
    PHP - HTML5 - CSS3 - Laravel/Symfony - C/C++ - python
    Inscrit en
    Juillet 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : PHP - HTML5 - CSS3 - Laravel/Symfony - C/C++ - python

    Informations forums :
    Inscription : Juillet 2012
    Messages : 64
    Points : 267
    Points
    267
    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 actif

    Homme Profil pro
    Apprenti Langage C, pratiquant OpenOffice et Poo
    Inscrit en
    Février 2015
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Apprenti Langage C, pratiquant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 229
    Points : 218
    Points
    218
    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: 46
    Dernier message: 01/07/2019, 23h06
  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 API standards et tierces
    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