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 :

Organisation du code

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut Organisation du code
    Bonjour,

    alors voilà pour commencer je commence le C++ et je me lance directement sur Qt5 (j'ai cependant bien touché au binding PyQt5) et ma question serait sur où je dois coder à proprement parler


    Code main.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include "mainwindow.h"
    #include <QApplication>
    #include <QObject>
    #include <QtWidgets>
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        app.setStyle("Fusion");
        MainWindow w;
     
        QLineEdit *lineEdit_message = w.findChild<QLineEdit*>("lineEdit_message");
        QLabel *label_size_cks = w.findChild<QLabel*>("label_size_cks");
     
        QObject::connect(lineEdit_message, &QLineEdit::textChanged, label_size_cks, &QLabel::setText);
     
        w.show();
        return app.exec();
    }

    Code mainwindows.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QObject>
     
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    }
     
    MainWindow::~MainWindow()
    {
        delete ui;
    }

    est-ce que je devrais mettre mes connections (et tout mon code) dans le mainwindows.cpp ? ou du moins ailleurs que dans le main.cpp

  2. #2
    Membre éprouvé Avatar de oneDev
    Homme Profil pro
    dilettant
    Inscrit en
    Mars 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : dilettant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 220
    Par défaut
    Dans MainWindow.cpp.
    Juste après ui->setupUi(this);.

  3. #3
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Citation Envoyé par flapili Voir le message
    Bonjour,

    alors voilà pour commencer je commence le C++ et je me lance directement sur Qt5 (j'ai cependant bien touché au binding PyQt5) et ma question serait sur où je dois coder à proprement parler

    est-ce que je devrais mettre mes connections (et tout mon code) dans le mainwindows.cpp ? ou du moins ailleurs que dans le main.cpp
    Il faut absolument débuter correctement!

    Même si on utilise Qt, il faut commencer par un design correct de son application.
    Dans des langages comme C++ ou Java, on commencera par définir les fonctions dans des classes séparées.
    Certaines fonctionnalités pourraient être très complexes voire même sans utiliser de classes ou méthodes intégrées dans Qt.
    Il faudra pouvoir les exécuter séparément pour pouvoir les vérifier, donc des classes de test avec leurs propres entrées main().
    La réutilisabilité de fonctions, donc de classe, est un facteur essentiel.

    Une bonne application doit être quelque chose d’extrêmement clair et limité dans ce que tu appelles mainwindows.cpp.
    Donc comme réponse brève: presque rien dans le main.cpp qui aura comme tâche d'instancier un nombre limité de classe qui ensuite ....
    Bon apprentissage!

  4. #4
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2015
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 36
    Par défaut
    Je m'incruste dans la discussion, désolé, mais je ne comprend pas
    , donc des classes de test avec leurs propres entrées main()
    Il y a plusieurs main dans le même projet ? Il faut faire plusieurs projet à part ?
    Au mieux, as-tu des exemple de cela ?

  5. #5
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Citation Envoyé par Sayanel01 Voir le message
    Je m'incruste dans la discussion, désolé, mais je ne comprend pas

    Il y a plusieurs main dans le même projet ? Il faut faire plusieurs projet à part ?
    Au mieux, as-tu des exemple de cela ?
    On ne parle absolument pas ici d'environnement de développement.
    Un projet c'est quoi ? Une application, un projet dans l'espace de travail d'Eclipse (que j'imaginerais bien ici)?

    J'ai travaillé avec une vingtaine d'ingénieurs dont les applications étaient pour des systèmes embarqués et où Qt avait une toute petite place. La plupart travaillait en C et C++, mais il y avait aussi du Java. Donc Eclipse allait pour tout le monde avec le même outils et les mêmes plugins comme SVN !

    Je fais court rapide ici !

    Un projet C++ (ou Java), c'est un ensemble de classes qui devraient être développées et testées séparément. Chacune de ces classes, ou une classe séparée, devrait contenir une entrée main() pour la tester au travers d'une instanciation. Ensuite ces classes pourraient être regroupées dans une ou plusieurs classes de test utilisant alors plusieurs objets de nos classes déjà vérifiées. Si ces classes ou fonctionnalités pouvaient être utilisées dans d'autres projets, il faudrait alors les inclure dans des librairies (des .jar en Java) ... dans ce cas, nous aurions d'autres projets dans le cas d'Eclipse.

    Toute à la fin, nous aurons évidemment un main() pour notre application. Mais un "projet" pourrait aussi contenir plusieurs applications, chacune lancée avec un main(). Un cas de figure: une application Qt pour mettre en place la configuration de notre application principale Qt ou pas.

    En cas de problèmes sur une fonction particulière qui donne des difficultés, nous pourrions reprendre une ou plusieurs de ces classes de test pour « jouer » avec le problème, corriger la chose, par exemple en mode debug sous Eclipse.

    J'espère avoir aider. Ici on parle de méthodologie. J'ai été responsable de méthodologie pendant une année entière (C et C++), en plus de mes autres activités, et j'aide volontiers.

  6. #6
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2015
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 36
    Par défaut
    Merci pour cette réponse, effectivement très instructive.
    Ou pourrais-je trouver plus d'info sur ce genre de méthodologie, de manière globale (quelque soit le langage ?)
    Merci

  7. #7
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Citation Envoyé par Sayanel01 Voir le message
    Merci pour cette réponse, effectivement très instructive.
    Ou pourrais-je trouver plus d'info sur ce genre de méthodologie, de manière globale (quelque soit le langage ?)
    Merci
    ÉNORME sujet.
    Il faudrait chercher, mais de tels documents devraient exister dans toute entreprise de moyenne et grande importance.

    Pour moi-même, c'est dans ma tête!
    J'en avais écrit pour Java qui étaient basée sur des documents pour le langage C++.
    Ces derniers peuvent varier, si par exemple une partie du code reste en C, est écrit avec Qt, avec des interfaces SQL ou pour le Web.
    Pour des drivers par exemple, il faudra sans doute avoir une méthodologie différente et spécifié d'autres règles.
    Il y a les variables globables, ...., etc, etc.

    Dès q'on touche à l'organisation du code, des fichiers, il faudra penser au formattage du code, et au nom des variables. Etc, etc.
    Si on pense à javadoc, il y aura d'autres outils pour les autres langages, comme doxygen pour C++.

    L'organisation du code a aussi une relation avec l'organisation des tests.
    Quelque soit le langage? Je n'y crois pas trop, sauf la base, comme la doc.
    Si un langage n'est pas OO, il faudra définir des règles encore plus stricts!

    Pour une petite application perso ... utiliser ces règles au mieux.

Discussions similaires

  1. Persistance et organisation du code
    Par K-Kaï dans le forum Hibernate
    Réponses: 16
    Dernier message: 06/06/2007, 17h01
  2. Organisation du code source
    Par _kal_ dans le forum C
    Réponses: 18
    Dernier message: 04/08/2006, 14h15
  3. organisation du code.
    Par poporiding dans le forum C++
    Réponses: 36
    Dernier message: 13/07/2006, 10h15
  4. organisation du code.
    Par poporiding dans le forum C++
    Réponses: 3
    Dernier message: 28/06/2006, 17h10
  5. Réponses: 4
    Dernier message: 19/09/2005, 17h56

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