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

Actualités Discussion :

Faut-il éviter de distraire les débutants avec l'orientée objet ?

  1. #161
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Le lien entre objet et fonction évite d'avoir à lire toute les fonctions mais qui n'ont rien avoir. Quand je veux Sauvegarder l'objet/structure Eleve , c'est une perte de temps de devoir lire SaveProf, SaveClasse, LoadClasse,LoadProf,... c'est quand même plus pratique d'avoir tout mis dans le fichier Eleve.c que d'avoir MaLib.c avec 500 méthodes dedans


    1) Pour une plus grand clarté et lisibilité.
    Perso quand je tombe sur des fonctions de 1000 lignes et que je dois parcourir tout pour essayer de trouver le bug, je préferent nettement quand ces 1000 lignes soit découpés sans compter que je dois essayer de déchivrer les requetes SQL pour savoir ce qu'elle font
    c'est une des raisons pour lesquelles j'aime le langage Pascal. les unités Pascal sont un source qui comprend une partie Interface (grosso modo un .h mais sans code) et une Implementation (le .c). Tout ce qui est dans l'Interface est public, tout ce qui est dans l'implementation est privé.

    Code pascal : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    unit Eleve;
     
    interface // partie publique
     
    procedure Save; // prototype de la fonction publique
     
    var
      Note: Integer; // variable publique
     
    implementation // partie privée
     
    var
      Chose: Integer; // variable privée
     
    procedure SaveProf; // procédure privée
    begin
    ...
    end;
     
    procedure SaveClass; // idem
    begin
    ...
    end;
     
    procedure Save; // implémentation de la procédure publique
    begin
      SaveProf;
      SaveClasse;
    ...
    end;
     
    end.

    en fait c'est très proche d'une classe static comme on peut les faire en Java

    Code Java : 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
     
    public class Eleve {
     
      public static int Note;
     
       public static Save() {
        ...
      }
     
      private static int Chose;
     
      private static SaveProf() {
        ...
      }
     
      private static SaveClasse() {
       ...
      }
    }

    ceci dit en C on se contentera de lire le .h qui s'il est bien écrit ne reprendra que Save ... ou Eleve_Save pour éviter un problème de collision qu'on n'aura pas en Pascal puisque l'unité constitue un espace de nom : Eleve.Save.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  2. #162
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 240
    Points : 636
    Points
    636
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Le lien entre objet et fonction évite d'avoir à lire toute les fonctions mais qui n'ont rien avoir. Quand je veux Sauvegarder l'objet/structure Eleve , c'est une perte de temps de devoir lire SaveProf, SaveClasse, LoadClasse,LoadProf,... c'est quand même plus pratique d'avoir tout mis dans le fichier Eleve.c que d'avoir MaLib.c avec 500 méthodes dedans
    Ce sont la des questions d'organisation de code qui transcendent la question du paradigme: le choix du nom de méthode ou de classe, le classement des méthodes par ordre alphabétique, par fonctionnalités, par type de données manipulées, etc.
    La qualité de la documentation est primordiale et c'est souvent la que tout se joue.

    Citation Envoyé par BenoitM Voir le message
    1) Pour une plus grand clarté et lisibilité.
    Perso quand je tombe sur des fonctions de 1000 lignes et que je dois parcourir tout pour essayer de trouver le bug, je préferent nettement quand ces 1000 lignes soit découpés sans compter que je dois essayer de déchivrer les requetes SQL pour savoir ce qu'elle font
    Disons qu'il n'est pas plus compliqué de chercher un bug dans un fichier de 1000 lignes que dans 10 fichiers de 100 lignes voir 100 fichiers de 10 lignes.
    Je force le trait pour l'exemple mais c'est pour montrer que découper pour découper est contreproductif il faut qu'il y a de la pertinence derrière chaque découpage.

  3. #163
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Citation Envoyé par psykokarl Voir le message
    Ce sont la des questions d'organisation de code qui transcendent la question du paradigme: le choix du nom de méthode ou de classe, le classement des méthodes par ordre alphabétique, par fonctionnalités, par type de données manipulées, etc.
    La qualité de la documentation est primordiale et c'est souvent la que tout se joue.


    Disons qu'il n'est pas plus compliqué de chercher un bug dans un fichier de 1000 lignes que dans 10 fichiers de 100 lignes voir 100 fichiers de 10 lignes.
    Je force le trait pour l'exemple mais c'est pour montrer que découper pour découper est contreproductif il faut qu'il y a de la pertinence derrière chaque découpage.
    Perso je préfere chercher dans 10 fichiers de 100 lignes qui me permet de lancer les 10 fonctions et devoir laquelle pause problème plutot que du faire du step by step de mettre des breakpoint aléatoirement pour essayer de trouver la ligne de code qui explose tout.
    De plus je pense que si tu fais du bon procédurale tu auras plus où moins la même découpe.
    L'avantage de la POO c'est vu que tu dois relier logiquement tes fonctions à un objets tu seras plus contraint à mieux découper tes programmes qu'en procédurale.
    Mais rien n'empeche dans les 2 cas de faire des méthodes de 1000 lignes en mono block...
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  4. #164
    Membre extrêmement actif

    Profil pro
    Grand Timonier des Chats
    Inscrit en
    Décembre 2011
    Messages
    879
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Grand Timonier des Chats

    Informations forums :
    Inscription : Décembre 2011
    Messages : 879
    Points : 3 302
    Points
    3 302
    Par défaut
    Citation Envoyé par psykokarl Voir le message
    Disons qu'il n'est pas plus compliqué de chercher un bug dans un fichier de 1000 lignes que dans 10 fichiers de 100 lignes voir 100 fichiers de 10 lignes.
    Je force le trait pour l'exemple mais c'est pour montrer que découper pour découper est contreproductif il faut qu'il y a de la pertinence derrière chaque découpage.
    Un énorme +1

    J'appelle ça le code mosaïque, parce que je commence à chercher ce que fait vraiment trois lignes de code, et je me retrouve avec des dizaines de fenêtres ouvertes qui font une mosaïque imbuvable à l'écran.....

    C'est le code spaghetti 2.0, découpé en objets mais toujours aussi inmaintenable.

  5. #165
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bonjour,

    En fait, je ne comprends pas trop le sujet: un développeur ne doit-il pas connaitre tous les concept de programmation (OO,imperatif,fonctionnel,...) ?

    La première chose à comprendre pour un futur développeur est l'algorithmique (trouver les différentes taches "unitaire" à effectuer pour résoudre un problème donné) et ceci est le plus difficile à apprendre à quelqu'un (surtout au début).
    Après le langage que l'on utilise derrière n'est qu'un support...
    Cordialement.

  6. #166
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Je ne remettrais surement pas en cause ce qui marche.

    le sujet est que la POO n'est pas toujours la panacée pas plus d'ailleurs que ce que tu considères comme incontournable c'est à dire découper le problème pour résoudre des tâche unitaire.

    Même si la POO et l'algorithmique sont des techniques qui on fait leur preuve il en existe d'autre. et mal heureusement cette popularité poussée à outrance masque des voies qui pourraient s'avérer plus prometteuses.

    La question est donc en fait doit-on revoir la façon dont on enseigne et appréhende l'informatique.

    Les anglais utilise le terme de computer science qui à l'avantage de remonter au source c'est à dire la théorie de la calculabilité dont est directement issue l'algorithmique. mais il existe ben d'autre approche de la calculabilité. certaines sont étonnantes, d'autre séduisante. bref il y a bien d'autre façon de programmer un ordinateur.

    A+JYT

Discussions similaires

  1. Association inverse dans les bases de données orientées objet
    Par kochfet dans le forum Optimisations
    Réponses: 0
    Dernier message: 05/07/2014, 10h30
  2. Tableau html avec évènements. Orienté objet ou non ?
    Par tidus_6_9_2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/09/2010, 11h12
  3. Réponses: 0
    Dernier message: 06/06/2008, 08h41
  4. débutante avec les threads
    Par dc.sara dans le forum Réseau
    Réponses: 2
    Dernier message: 10/12/2007, 11h08
  5. Débutant avec les Threads
    Par Invité dans le forum AWT/Swing
    Réponses: 18
    Dernier message: 13/06/2007, 17h58

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