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

Langages de programmation Discussion :

Existe-t-il des normes de programmation générale ?


Sujet :

Langages de programmation

  1. #41
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par koala01 Voir le message
    A vrai dire, les pointeurs, en C++, j'admets qu'il faut y faire super attention, principalement à cause du principe des quatre grands.

    Ainsi, mon prof de C++ nous a sorti une "superbe" classe du genre de
    Code C++ : 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
    class Centrale
    {
        public:
            Centrale()
            {
                 std::cout<<"combien de turobgenerateurs dans la centrale ?";
                 cin >>nbgen;
                 pgen=new *TurboGen[bgen];
            }
            ~Centrale()
            {
                for(int i=0;i<pgen;i++)
                    delete pgen[i];//car les turbo génératrices sont créées de manière
                                  //dynamique
                delete[] pgen;
            }
        /* je passe sur les autres méthodes ;) */
    }
    L'astuce, c'est que, dans les méthodes que j'ai passées, il n'y a rien concernant le constructeur par copie ni l'opérateur d'affectation.

    Evidemment, je n'y ai réagi que, bien à mon aise, installé dans le train pour rentrer

    Mais, la semaine prochaine, je vais quand même lui indiquer que sa centrale, elle a un sérieux avant gout de Tchernobyl... car, si on essaye d'assigner une centrale à un autre, on court à la catastrophe

    Alors, oui, les pointeurs sont dangereux à utiliser, oui, il nécessitent de réfléchir un minimum à ce que l'on fait, et, oui, cela nécessite de penser en permanence à nos "quatre grands".

    Mais, ceci dit, si on reste un peu attentif et que l'on respecte certaines règles, cela devient un vrai plaisir de travailler avec
    Autre exemple amusant :
    Code c++ : 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
    34
     
    class Centrale {
     private:
       int * entier;
     
     public:
      Central() {
        entier = new int;
      }
     
      int getEntier() {
        return *entier;
      }
     
      ~Central() {
        std::cerr<<"Destruction";
        delete entier;
        entier = 0;
      }
     
    }
     
     
    void mafonction(Central c) { //oublie de passage par référence
    }
     
     
    int main(void) {
      Central c;
      mafonction(c);
      c.getEntier();
     
      return 0;
    }
    Je ne répondrai à aucune question technique en privé

  2. #42
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Points : 833
    Points
    833
    Par défaut
    Citation Envoyé par HanLee Voir le message
    - Oui dans C# c'est super pratique l'autocomplétion, mais ça n'a quasiment rien à voir avec le langage. Elle est vraiment bluffante je l'accorde sous VS2005, mais ça vient des moyens accordés par Microsoft.
    L'éditeur de Visual C++ a quand même clairement été laissé de côté, niveau édition de code, factorisation,... Mais tout de même, l'intellisense marche assez bien, l'autocomplétion aussi.
    [HS]
    Malheureusement l'autocomplétion dépend fortement du langage.
    Plus celui-ci est difficile à parser et plus l'intellisence sera complexe à mettre en œuvre. Le c++ est un langage très difficile à parser (gestion des templates, héritage multiples, virtuel, ...) et vouloir recréer l'équivalent de l'intellisence C# ou Java sous VS pour le c++ requiert des moyens beaucoup plus important et plus couteux que pour ces langages.
    La puissance est à ce prix ! (?)
    [/HS]
    Linux > *

  3. #43
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Pour l'intellisense, sur les blogs des développeurs de VS, ils parlent de tout refondre pour plus de vitesse, et plus d'efficacité.

    Pour les 4 grands, c'est forme canonique de Coplien. Et on peut la descendre à 2 sous certaines conditions. cf la FAQ.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #44
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Citation Envoyé par befalimpertinent Voir le message
    [HS]
    Malheureusement l'autocomplétion dépend fortement du langage.
    Plus celui-ci est difficile à parser et plus l'intellisence sera complexe à mettre en œuvre. Le c++ est un langage très difficile à parser (gestion des templates, héritage multiples, virtuel, ...) et vouloir recréer l'équivalent de l'intellisence C# ou Java sous VS pour le c++ requiert des moyens beaucoup plus important et plus couteux que pour ces langages.
    La puissance est à ce prix ! (?)
    [/HS]
    Ben, le parsing n'est pas tant le problème : si c'était le problème, j'exagère mais on aurait des compilateurs C++ qui compilent n'importe quoi.

    C'est plus un problème de conception. C# supporte les génériques (certes, pas aussi puissant que les templates), pas l'héritage multiple mais il supporte bien l'héritage multiple d'interfaces.
    Je dis pas que c'est exactement pareil, mais au moins sur plein de points c'est vraiment pas différent.

    -----

    EDIT : par ailleurs, c'est pas compliqué de n'afficher que l'interface publique, au lieu de tout montrer (même problème sous Eclipse).

    -----

    On peut aussi penser que le fait que le code change dynamiquement qui rend la chose difficile, qu'il y a des erreurs dans le code. Pourtant, quand tu codes avec C# Visual Studio t'indique assez rapidement les erreurs de syntaxe...

    Je crois que la seule vraie difficulté par rapport aux autres langages, c'est son mode de compilation encore ancestral avec les #include et puis les macros, préprocessing.

  5. #45
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut à tous !

    Ma longue expérience (environ 45 ans, Souviron34 est battu!) du calcul numérique appliqué à des processus industriel m'a appris la nécessité d'une méthodologie stricte si l'on veut être efficace. Il me semble essentiel de parcourir dans le bon ordre.

    On veut (doit) étudier par le calcul numérique le comportement d'un "machin" (je ne trouve pas d'autre mot, mais ça peut être un réseau à haute tension, un four de production d'aluminium, le limaçon de notre oreille interne, ou n'importe quoi d'autre). Les étapes à franchir sont les suivantes:
    1. Définir aussi exactement que possible la géométrie du machin.
    2. Définir aussi exactement que possible les caractéristiques pertinentes des matières dont le machin est constitué.
    3. Formuler mathématiquement les lois générales qui régissent les phénomènes à étudier (loi de la gravitation, équations de Maxwell, équation de Navier-Stokes, ou autres).
    4. Choisir un ensemble raisonnable d'hypothèses simplificatrices au sujet de la géométrie (passer de 3 à 2 dimensions, négliger la flèche des conducteurs d'une ligne électrique, etc.).
    5. Choisir un ensemble raisonnable d'hypothèses simplificatrices au sujet des caractéristiques des matières (linéariser la caractéristique magnétique, négliger l'hystérèse, etc.).
    6. Choisir un ensemble raisonnable d'hypothèses simplificatrices sur les lois générales (négliger le courant de déplacement, remplacer l'équation de Navier-Stokes par celle de Stokes, etc.).
    7. En appliquant les hypothèses qui ont été faites, écrire les équations particulières qui régissent les phénomènes étudiés dans le machin considéré.
    8. Choisir les algorithmes qui semblent les plus opportuns pour résoudre le problème formulé au point précédent.
    9. Choisir l'outil informatique, langage ou logiciel de calcul, qui semble le mieux adapté, tenant compte de ce dont on dispose et de ce que l'on connait.
    10. Ecrire et tester ses programmes.
    11. Si les résultats obtenus ne sont pas satisfaisants (temps de calcul excessif, résultats incorrects), modifier les hypothèses faites précédemment et recommencer.

    Suite au défilé des innombrables collègues et étudiants qui se sont succédés dans mon bureau avec des questions du type: "Jean-Marc, t'as pas un programme pour inverser une matrice?", j'ai eu très envie d'y installer un divan de psychanalyste et de leur dire: "Couchez-vous, cher ami, fermez les yeux et dites-moi tout depuis le début".

    Il suffit de consulter les forums de www.developpez.com pour se rendre compte des conséquences du non-respect de la méthodologie exposée plus haut: très fréquemment, les gens, confrontés à un problème de difficulté moyenne, commencent par le brasser de manière à le rendre pratiquement insoluble. C'est pourquoi on ne saurait trop insister pour que ceux qui rencontrent des difficultés exposent leur problème complètement et depuis le début, même s'ils sont intimement convaincus que ce qu'ils ont déjà fait est correct.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  6. #46
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    [...]d'un "machin" (je ne trouve pas d'autre mot, mais ça peut être un réseau à haute tension, un four de production d'aluminium, le limaçon de notre oreille interne, ou n'importe quoi d'autre). [...]
    Que penses-tu de « un système » ?

    De 1 à 7 c'est de l'analyse des besoins.
    Aurais-tu surtout travailler là-dedans ?
    Parce que j'aime ta description de la conception (7) et de l'implémentation (9)...

    En général il faudrait il y aurait à ajouter quelques sous étapes ici et là (je parle de 7 et 9)

  7. #47
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Intéressant. J'aime beaucoup la conclusion fort proche du "mais qu'est-ce que tu cherches à faire?" que j'applique.


    Toutefois, cela me rappelle mes discussions avec un collègue qui intervient justement auprès de "scientifiques".

    La partie 11 mérite d'être raffinée. On peut très bien avoir modèle et algos globalement bien au point, mais des erreurs idiotes de programmation qui plombent tout (typiquement le classique dépassement de buffer qui introduit des comportements non maitrisables).

    Disons qu'il faut accepter de considérer que l'on est toujours à la phase 10 tant que ces problèmes précis de mise en œuvre ne sont pas résolus -- mais malheureusement beaucoup semblent préférer fournir un programme qui compile dans les temps plutôt qu'un programme qui s'exécute en "debug" comme en "release" sans partir sur un core-dump ou assimilé.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #48
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    A Garulfo:

    J'avais bien pensé au terme "système", mais je l'ai rejeté pour deux raisons:
    • Il arrive fréquemment que la démarche aboutisse à résoudre un système d'équations ou à intégrer un système différentiel; or je déteste utiliser le même mot pour des choses totalement différentes dans le même travail.
    • Dans certains cas, le "machin" peut être considéré comme un système, mais dans d'autres, c'est plutôt un composant.


    A Luc Hermitte:
    il faut accepter de considérer que l'on est toujours à la phase 10 tant que ces problèmes précis de mise en œuvre ne sont pas résolus
    C'est évident !

    Dans le fond, je suis tout à fait d'accord avec vous deux. Peut-être serait-il encore plus important d'insister sur ce qu'il ne faut pas faire.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  9. #49
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    A Garulfo:

    J'avais bien pensé au terme "système", mais je l'ai rejeté pour deux raisons:
    • Il arrive fréquemment que la démarche aboutisse à résoudre un système d'équations ou à intégrer un système différentiel; or je déteste utiliser le même mot pour des choses totalement différentes dans le même travail.
    • Dans certains cas, le "machin" peut être considéré comme un système, mais dans d'autres, c'est plutôt un composant.
    « Système logiciel » (puisque c'est ça qui nous intéresse dans ce cas) ou simplement « système » (si on fait l'ingénierie des autres parties en même temps) est le terme de l'IEEE dans les documents normatifs. C'est pourquoi je te le proposais ^_^

    Dans le fond, je suis tout à fait d'accord avec vous deux. Peut-être serait-il encore plus important d'insister sur ce qu'il ne faut pas faire.
    Malheureusement, c'est difficile il y a bien trop de cas à ne pas faire ^_^

    D'un point de vue qualité en plus ce n'est pas l'idéal. On avait un sujet de discussion qui a entamé ce problème lors d'une conf' à ICFEM. On ne peut avoir de la qualité en disant ce qu'il faut et ne faut pas faire de toute façon. C'est un des défauts des normes actuelles du monde logiciel: on mesure uniquement par le processus. C'est insuffisant.

  10. #50
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    D'un point de vue qualité en plus ce n'est pas l'idéal. On avait un sujet de discussion qui a entamé ce problème lors d'une conf' à ICFEM. On ne peut avoir de la qualité en disant ce qu'il faut et ne faut pas faire de toute façon. C'est un des défauts des normes actuelles du monde logiciel: on mesure uniquement par le processus. C'est insuffisant.
    +500 000 !!!!!!!!

    Malheureusement cette opinion n'est pas très partagée, et pourtant les contre-exemples ne manquent pas (ne serait-ce que il y a 2 ans le DG de EADS obligé d'annoncer 2 ans de retard (et quelques centaines de millions d'euros perdus en pénalités), ou encore tout récemment (la semaine dernière je pense) Airbus qui annonce que le A400 militaire devant être livré en Mai ne fera pas son premier vol avant.. au moins Octobre....)

    Et pourtant ils sont tous CMM 5, etc etc...

    C'est ce que je me tue à dire ...

    Mais c'est un peu prêcher dans le désert...

    Quant à ce que dit Jean-Marc, je suis assez d'accord, mais cependant (c'est ma jeunesse ) je trouve que : 1) tu es un peu "biaisé" sur les "systèmes" scientifiques, et 2) ton analyse s'apparente beaucoup à ce qui est sorti des normes standards, car la démarche pour un WaterFall est exactement la même que pour les autres...(ce qui malheureusement maintenant n'a plus l'air d'être vraiment "enseigné" (c'est pas pour toi, Garulfo ), mais qui manque cruellement... Le bon sens d'une méthode où ne on ne se jette pas à bras ouverts dans un projet avant d'avoir REFLECHI et IMAGINE ce qu'il faudrait, EN THEORIE). Cependant, ces normes et démarches négligent "la cyclicité".. (si je peux faire une Ségolénade.. )

    Et donc je suis 100% d'accord avec ton point 11, et je pense que fondamentalement c'est ce qui pêche dans les normes et mesures dont parle Garulfo : nous DEVRIONS être dans un processus itératif de raffinnement de chaque partie : description des besoins, architecture, algos, code, produit...

    Mais les choix (et les dirigeants et les normes) empêchent très souvent (pour ne pas dire tout le temps) un VRAI cycle réel.

    Et toutes ces mesures négligent le fait qu'à la base nous sommes des artisans, et non des ouvriers à la chaîne... Les gens sont, contrairement à ce qui est "mesuré", ir-remplaçables, dans la mesure où le résultat dépend très fortement des personnes (un bon ou un mauvais architecte, un bon ou un mauvais gestionnaire de projet, un bon ou un mauvais algoirthmicien).

    Il suffit de voir ce qui se passe quand une boîte avec un bon produit est rachetée par une autre, et que les gens du projet original quittent....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  11. #51
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Et toutes ces mesures négligent le fait qu'à la base nous sommes des artisans, et non des ouvriers à la chaîne...
    ++

    Je sais pas si nous verrons le jour ou la programmation ne sera plus de l'artisanat. Depuis les années 50-60 que les esprits les plus brillants essaye de rendre la réutilisation la combinaisons de modules la plus facile possible, et jusqu'à présent, les efforts ne sont pas à la hauteur des attentes des dirigeants.

    Pour ma part, j'ai remarqué qu'un problème courant dont je suis victime est la balance entre fiabilité et flexibilité. Dans le monde actuel, les clients ont des besoins et demandes qui changent tout le temps, et ils désirent que les solutions soient parfaitement fiables, car leur business en dépend.

    Je trouve souvent difficile de trouver le juste milieu. Jusqu'à quel point dois-je rendre mon logiciel flexible pour le client? Et si cette flexibilité donne plus de pouvoir au client sur le fonctionnement de son application, comment est-ce que je m'assure qu'il ne pourra pas foutre le bordel? Est-ce que rendre l'application plus fiable aura un impact sur sa flexibilité? Et finalement, combien de temps (donc d'argent) dois-je passer à "flexibiliser" et solidifier son application?

  12. #52
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    Pour ma part, j'ai remarqué qu'un problème courant dont je suis victime est la balance entre fiabilité et flexibilité. Dans le monde actuel, les clients ont des besoins et demandes qui changent tout le temps, et ils désirent que les solutions soient parfaitement fiables, car leur business en dépend.

    Je trouve souvent difficile de trouver le juste milieu. Jusqu'à quel point dois-je rendre mon logiciel flexible pour le client? Et si cette flexibilité donne plus de pouvoir au client sur le fonctionnement de son application, comment est-ce que je m'assure qu'il ne pourra pas foutre le bordel? Est-ce que rendre l'application plus fiable aura un impact sur sa flexibilité? Et finalement, combien de temps (donc d'argent) dois-je passer à "flexibiliser" et solidifier son application?

    Non pour ça je ne suis pas d'accord du tout...

    C'est ce que disais J-Marc, et ce que nous disons sur les 5 derniers posts :

    Une BONNE analyse de départ DEVRAIT avoir envisagé la possibilité de changements , d'ajouts, etc... INCONNUS, et donc DEVRAIT avoir débouché sur une conception, une architecture et un code FACILEMENT flexible, tout en garantissant une FIABILITE.

    C'est juste que ce dont nous discutons est la MESURE de la fiabilité, pas du tout son existence ni celle de la flexibilité.

    C'est justement le fait (par rapport à un autre débat aussi (bidouilleurs <-> pro)) que l'on puisse avoir fait ce travail d'IMAGINATION au départ amenant à la flexibilité ET à la fiabilité simultanée qui est une des clés d'un vrai professionnel.
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  13. #53
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    souviron34: Même les meilleures analyse de système ne peuvent pas prévoir tous les changements qu'il client peut demander. Voici un exemple d'Amazon, tu peux lire l'article au complet à l'adresse suivante: http://steve.yegge.googlepages.com/i...-strong-enough

    And once we did a site for a major sports franchise, and they wanted customers to be able to put their initials (or a custom number, or whatever) on jerseys and such. Our rigid model for orders (and the associated strongly-typed interfaces wrapping that model) had no provision for passing a custom initials field through to the backend, to be sent off as part of the drop-ship request. (Dunno if that technically counts as drop-ship, but you know...) I remember there being weeks of angst about how we were going to solve that problem.

    The customer-initials thing was trivially tiny compared to the schema impact that Wireless (cell phones) had. Months and months of angst there. And Wireless seems to be turning out to be tiny compared to some of our more recent initiatives (from a data-modeling and interface-design perspective, at least.)
    En utilisant un modèle rigide, Amazon ont eu un problème quand une demande qui n'avait pas été prévu est arrivée. Comment est-ce que les ingénieurs auraient pu prévoir le coup? En faisant en sorte que des champs custom peuvent être ajoutés au modèle? Si on ajoute une ou des colonnes à la base de données, qu'est-ce qu'on fait aux autres rangées? Est-ce qu'il va y avoir des validations entre le nouveau champ et des anciens champs? Ou entre les nouveaux champs?

    Dis moi comment un professionel comme toi ferait pour assurer une flexibilité qui permet de facilement accomoder les clients avec leur demandes de toutes sortes tout en assurant une intégrité des données. Aussi, comment fais-tu pour éviter de manger tout le budget de la compagnie?

    En et passant, les mots en majuscules, tu pourrais les mettre en italique à la place, ça fait moi gueulard.

  14. #54
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    . Comment est-ce que les ingénieurs auraient pu prévoir le coup? En faisant en sorte que des champs custom peuvent être ajoutés au modèle? Si on ajoute une ou des colonnes à la base de données, qu'est-ce qu'on fait aux autres rangées? Est-ce qu'il va y avoir des validations entre le nouveau champ et des anciens champs? Ou entre les nouveaux champs?
    En prévoyant (en réfléchissant) qu'il y aurait sans doute d'autres demandes plus tard, et donc en ayant quelque chose comme un "lecteur de ressources", donnant dynamiquement le nombre, le type, l'intitulé, des champs, par exemple....

    En se dotant de types de données "transparents", avec des "méthodes" transparentes et "surchargeables"...

    (aors qu'ils ont dû aller au plus vite et mettre directement dans les modules de gestions des écrans des liens avec la BD)...


    Citation Envoyé par GnuVince Voir le message
    Dis moi comment un professionel comme toi ferait pour assurer une flexibilité qui permet de facilement accomoder les clients avec leur demandes de toutes sortes tout en assurant une intégrité des données. Aussi, comment fais-tu pour éviter de manger tout le budget de la compagnie?
    Tu en "manges" beaucoup moins en ayant un bon schéma de départ, qu'en ayant à tout restructurer et éventuelement réécrire..

    La partie la plus diffiicle là-dedans est le faire admettre au financier de la boite... Mais l'histoire des 50 dernières années est remplie d'exemples comme tu les cites, et c'est exactement ce que nous disions...

    Citation Envoyé par GnuVince Voir le message
    En et passant, les mots en majuscules, tu pourrais les mettre en italique à la place, ça fait moi gueulard.
    je ne geule pas du tout (sinon j'aurais mis toute la phrase), c'est juste que je trouvais qu'en gras c'était trop agressif, et que cela ne passait justement pas le message.

    Peut-être me suis-je trompé...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  15. #55
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    (aors qu'ils ont dû aller au plus vite et mettre directement dans les modules de gestions des écrans des liens avec la BD)...
    Je peux pas parler pour Amazon, je connais pas les décisions qu'ils ont pris par apport à ça, mais si ça avait été moi, quand le site était encore relativement petit, j'aurais pas assumé que je deviendrais le commerce le plus visité au monde. Par conséquent, j'aurais sûrement assumé que jamais un commerçant international voudrait vendre des produits spécialisés via mon service.

    En voulant donc garder les frais de départ plus bas, j'aurais codé ce dont j'avais besoin plutôt que le modèle plus général et extensible.

    Tu en "manges" beaucoup moins en ayant un bon schéma de départ, qu'en ayant à tout restructurer et éventuelement réécrire..

    La partie la plus diffiicle là-dedans est le faire admettre au financier de la boite... Mais l'histoire des 50 dernières années est remplie d'exemples comme tu les cites, et c'est exactement ce que nous disions...
    J'ai jamais travaillé en programmation dans une grosse boîte, mais j'imagine que c'est plus facile de faire justifier ce genre d'investissement de départ dans une grande entreprise que dans une PME. Et ma courte expérience avec ce genre d'entreprises, c'est que le court terme est plus important que le long terme.

    je ne geule pas du tout (sinon j'aurais mis toute la phrase), c'est juste que je trouvais qu'en gras c'était trop agressif, et que cela ne passait justement pas le message.

    Peut-être me suis-je trompé...
    C'est un truc IRC, si c'est en majusucule, ça crie. C'est pourquoi je préfère l'italique pour mettre de l'emphase sur les forums, pour éviter d'avoir l'air de crier.

  16. #56
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    C'est un truc IRC, si c'est en majusucule, ça crie. C'est pourquoi je préfère l'italique pour mettre de l'emphase sur les forums, pour éviter d'avoir l'air de crier.
    je suis pas idiot, ça fait un moment que je le sais

    comme j'ai dit, je trouve que dans le texte, ça faisait moins crier que le gras... puisque ce n'était pas en réponse à quelqu'un, ni sur tous les mots....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  17. #57
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 056
    Points
    32 056
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    En prévoyant (en réfléchissant) qu'il y aurait sans doute d'autres demandes plus tard, et donc en ayant quelque chose comme un "lecteur de ressources", donnant dynamiquement le nombre, le type, l'intitulé, des champs, par exemple....

    En se dotant de types de données "transparents", avec des "méthodes" transparentes et "surchargeables"...(.../...)
    Facile à dire.....

    D'abord, ça n'est pas forcément du "progrès", il y a des gens qui mettent des FILLER en COBOL depuis des décennies. Et d'autres qui n'en mettent toujours pas, depuis des décennies.

    On en arrive aux limites des méthodologies : aussi puissantes soient-elles(et Dieu sait que certaines sont balèzes), elles sont toujours dépendantes des gens qui les appliquent.

    Je vais prendre un exemple extrême : le bâtiment. Un domaine qui existe depuis des millénaires, et qui fait l'objet de normes hyper-précises depuis une époque ou l'informatique n'existait même pas. Et pourtant, il y a toujours des surprises. Entre les vents de 1999 qui ont dépassé tout ce qui était dimensionné(les tois volent et tuent des dizaines de personnes), les Twin Towers qui étaient dimensionnées pour résister à l'impact d'un 737(manque de pot, ils ont utilisé des 767), ou encore le terminal E de Roissy ou le concepteur, pourtant un super, a commis une infime erreur sur la stabilité du sol(5 morts), voilà plein d'exemple ou en suivant la procédure, des humains compétents se sont quand même fait piégés, avec à chaque fois des conséquences qui dépassent largement tout ce que nous informaticiens pouvons commettre comme dégâts.

    En bref : si la méthodologie est nécéssaire, elle n'est en aucun cas suffisante. Le talent(talent brut, expérience, formation.....) aide beaucoup, mais il ne suffit pas toujours non plus.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  18. #58
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 487
    Points : 6 030
    Points
    6 030
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    Facile à dire.....

    D'abord, ça n'est pas forcément du "progrès", il y a des gens qui mettent des FILLER en COBOL depuis des décennies. Et d'autres qui n'en mettent toujours pas, depuis des décennies.

    On en arrive aux limites des méthodologies : aussi puissantes soient-elles(et Dieu sait que certaines sont balèzes), elles sont toujours dépendantes des gens qui les appliquent.

    Je vais prendre un exemple extrême : le bâtiment. Un domaine qui existe depuis des millénaires, et qui fait l'objet de normes hyper-précises depuis une époque ou l'informatique n'existait même pas. Et pourtant, il y a toujours des surprises. Entre les vents de 1999 qui ont dépassé tout ce qui était dimensionné(les tois volent et tuent des dizaines de personnes), les Twin Towers qui étaient dimensionnées pour résister à l'impact d'un 737(manque de pot, ils ont utilisé des 767), ou encore le terminal E de Roissy ou le concepteur, pourtant un super, a commis une infime erreur sur la stabilité du sol(5 morts), voilà plein d'exemple ou en suivant la procédure, des humains compétents se sont quand même fait piégés, avec à chaque fois des conséquences qui dépassent largement tout ce que nous informaticiens pouvons commettre comme dégâts.

    En bref : si la méthodologie est nécéssaire, elle n'est en aucun cas suffisante. Le talent(talent brut, expérience, formation.....) aide beaucoup, mais il ne suffit pas toujours non plus.
    En parlant de cela, je vais citer la plus célèbre des erreurs. Le crash d'une sonde allant sur mars. Pourquoi ? Simplement parce qu'il y a été fabriqué par deux entreprises. L'une travaillais avec le système métrique et l'autre avec le système anglo-saxon. L'un pensait que l'autre utilisais son système de mesure. Pourtant, ils ont fait toute les vérif possibles. Nous ne pouvons traiter la NASA de charlo . Non, mais il pensait pas que cette données, si importante, puisse faire l'objet d'un contrôle tellement que cela paraissait évidement.
    Dans la programmation il peut y avoir les mêmes genre d'erreur. Lorsque le bug arrive nous cherchons, nous cherchons alors que nous avons mis toute les procédures pour que ce genre de chose ne puisse arriver et lorsque nous remarquons la provenance de l'erreur, les bras nous en tombe tellement que c'est nul.
    Les trois erreurs typique qui nous fait tomber les bras que j'ai remarqué c'est sur les date et généralement c'est à la date du 13/12/yyyy car 13 c'est le mois ou le jour ? Avant cette date il y a généralement pas trop de problème.
    Le séparateur décimal et le séparateur de champs. Virgule ou point virgule.

    Le genre d'erreur ou les normes ne sont pas unifié dans un domaine d'activité. Pour information, l'aéronautique depuis un certain nombre d'années à adopté le système métrique.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  19. #59
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par berceker united Voir le message
    Pour information, l'aéronautique depuis un certain nombre d'années à adopté le système métrique.
    Pour information, sauf pour les altitudes et les visibilités et les distances (pieds et milles nautiques)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  20. #60
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 487
    Points : 6 030
    Points
    6 030
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Pour information, sauf pour les altitudes et les visibilités et les distances (pieds et milles nautiques)
    Au temps pour moi, j'ai confondu. c'est l'aérospatial et non pas l'aéronautique.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

Discussions similaires

  1. Existe-t-il des clubs de programmation
    Par KevinduC dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 20/01/2015, 04h47
  2. Réponses: 5
    Dernier message: 19/05/2008, 19h40
  3. Existe-t-il une norme de nomage des packages ?
    Par Pierre8r dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2007, 00h31
  4. Existe-t-il une norme de programmation ?
    Par dsr57 dans le forum EDI/Outils
    Réponses: 6
    Dernier message: 15/03/2007, 11h15
  5. existe t 'il des programme pour transformer les bases
    Par creazone dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/10/2004, 15h11

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