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

Humour Informatique Discussion :

méthode prend 95 paramètre

  1. #21
    Membre expert
    Avatar de FailMan
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2010
    Messages
    1 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 602
    Points : 3 917
    Points
    3 917
    Par défaut
    Citation Envoyé par GanYoshi Voir le message
    Et pour la construction d'une requête SQL, c'est vrai que les guillemets et les + c'est chiant pour la visibilité du code.

    Moi je fais : String.format("SELECT ... FROM ... WHERE %1$s = %2$s","toto", "tata");
    mais je sais pas si il y a une méthode plus clair.
    Ah toi aussi tu fais de la grosse concaténation ? Moi qui pensais être le seul zouave à faire un truc pareil ça me rassure.

    C'est clair qu'au bout de 5 6 jointures et 3 clauses de tri (ce qui n'est pas grand chose), c'est illisible.
    Une erreur fréquente que les gens font quand ils tentent de réaliser quelque chose à l'épreuve des imbéciles est de sous-estimer l'ingéniosité de ceux-ci. - Douglas Adams

  2. #22
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Points : 843
    Points
    843
    Par défaut
    Pour ça les requêtes préparées c'est le bonheur :
    Une string contenant la requête avec des ? à la place des paramètres (en java, en tous cas. Je sais pas pour les autres) sans avoir à se soucier des guillements si chaine ou pas.

    Ensuite avec l'objet "préparé" on fait des setString, setLong, setInt en précisant le numéro du paramètre et du coup on a également une validation à la compilation grâce au typage

  3. #23
    Membre chevronné
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par JohnPetrucci Voir le message
    Ah toi aussi tu fais de la grosse concaténation ? Moi qui pensais être le seul zouave à faire un truc pareil ça me rassure.

    C'est clair qu'au bout de 5 6 jointures et 3 clauses de tri (ce qui n'est pas grand chose), c'est illisible.
    Bas moi avec le String.format je trouve que ça va, beaucoup mieux Justement en fait je concatène pas vraiment là.
    Je trouve ça plus lisible avec le String.format qu'avec la concaténation avec des + et de "

    Citation Envoyé par julien.1486 Voir le message
    Pour ça les requêtes préparées c'est le bonheur :
    Une string contenant la requête avec des ? à la place des paramètres (en java, en tous cas. Je sais pas pour les autres) sans avoir à se soucier des guillements si chaine ou pas.

    Ensuite avec l'objet "préparé" on fait des setString, setLong, setInt en précisant le numéro du paramètre et du coup on a également une validation à la compilation grâce au typage
    Ouai mais ça ne s'applique pas partout ça si ? par exemple pour construire une requete hibernate du type "from nomTable where ... = ... AND etc..." ?
    Yoshi

    PS : tous les propos tenus dans le message ci-dessus sont à préfixer avec "A mon humble avis", "Je pense que". Il serait inutilement fastidieux de le rappeler à chaque phrase.

  4. #24
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Points : 843
    Points
    843
    Par défaut
    Citation Envoyé par GanYoshi Voir le message
    Ouai mais ça ne s'applique pas partout ça si ? par exemple pour construire une requete hibernate du type "from nomTable where ... = ... AND etc..." ?
    Ca fait longtemps que j'ai pas utilisé hibernate mais il me semble bien qu'il gère ça, même avec des paramètres nommés plutôt d'indexés

  5. #25
    Membre expert
    Avatar de FailMan
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2010
    Messages
    1 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 602
    Points : 3 917
    Points
    3 917
    Par défaut
    Citation Envoyé par GanYoshi Voir le message
    Bas moi avec le String.format je trouve que ça va, beaucoup mieux Justement en fait je concatène pas vraiment là.
    Je trouve ça plus lisible avec le String.format qu'avec la concaténation avec des + et de "
    Oui, enfin, tu claques tout dans une chaîne et tu te fades des lignes à rallonge
    Une erreur fréquente que les gens font quand ils tentent de réaliser quelque chose à l'épreuve des imbéciles est de sous-estimer l'ingéniosité de ceux-ci. - Douglas Adams

  6. #26
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Citation Envoyé par julien.1486 Voir le message
    Pour ça les requêtes préparées c'est le bonheur :
    Une string contenant la requête avec des ? à la place des paramètres (en java, en tous cas. Je sais pas pour les autres) sans avoir à se soucier des guillements si chaine ou pas.

    Ensuite avec l'objet "préparé" on fait des setString, setLong, setInt en précisant le numéro du paramètre et du coup on a également une validation à la compilation grâce au typage
    Les paramètres des requêtes servent aussi à éviter les injections SQL
    Placer les valeurs dans la chaine de la requête c'est pas terrible ..

  7. #27
    Provisoirement toléré Avatar de sparthane777
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 318
    Points : 431
    Points
    431
    Par défaut
    Citation Envoyé par lionel84 Voir le message
    Bonjour,

    Que pensez vous de ce truc, une méthode qui prend 95 paramètres c'est hallucinant

    Soit t'as fonction a été codé en assembleur ou en C, soit la personne qui a pondu ceci n'a pas l'esprit orienté objet, soit tu te fiche de notre poire

    Déjà un méthode avec 10 paramètres je commence sérieusement à m'inquéter quand à la méthodologie utilisée ... Je peux voir ça de plus près ?
    In CODE we trust
    Loppsi (Brice, Sarkozy);
    fatal error : cannot call to unprivated function !

  8. #28
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Citation Envoyé par sparthane777 Voir le message
    Soit t'as fonction a été codé en assembleur ou en C
    Je programme en C depuis quelques annees, et je peux t'assurer que je n'ai jamais depasser 10 arguments maximum. 95 arguments, quel que soit le langage, c'est une connerie.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  9. #29
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par sparthane777 Voir le message
    Déjà un méthode avec 10 paramètres je commence sérieusement à m'inquéter quand à la méthodologie utilisée ... Je peux voir ça de plus près ?
    Il n'existe pas vraiment de méthodologie qui définie le nombre d'arguments d'une méthode ou d'une fonction, et même 10 paramètres c'est trop.


    C'est du même acabit de n'avoir qu'une seule table en base de données qui contient toutes les colonnes et donc chaque enregistrement représente quelque chose de différent, c'est utilisé dans des très grosses entreprises par des très gros ignorants des SI
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  10. #30
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2010
    Messages : 207
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par hegros Voir le message
    C'est du même acabit de n'avoir qu'une seule table en base de données qui contient toutes les colonnes et donc chaque enregistrement représente quelque chose de différent, c'est utilisé dans des très grosses entreprises par des très gros ignorants des SI
    Mon boss préfère lors dune relation de 1 à 1 que tout soit dans la même table quitte à se retrouver avec des champs qui ne seront remplis que dans certaine occasion.

    Je ne suis pas de son avis

  11. #31
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par mortapa Voir le message
    Mon boss préfère lors dune relation de 1 à 1 que tout soit dans la même table quitte à se retrouver avec des champs qui ne seront remplis que dans certaine occasion.

    Je ne suis pas de son avis
    Et tu as bien raison ! D'un point de vue requête sur les données c'est une catastrophe.

    Pour une relation 1 à 1 c'est bien 2 tables qu'il faut avec une des 2 qui possède la clef unique (clef étrangère) de l'autre. Il peut à la rigueur avoir une troisième tables si la relation est porteuse d'information(s). On peut même avoir plusieurs tables et bases de données si on doit prendre en compte un système de partitionnement de données
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  12. #32
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    95 ...
    Whaou, a ce stade c'est plus une cochonne, c'est une méga pro.
    (j'ai décidé d'être très très con moi ce soir)
    Citation Envoyé par mortapa Voir le message
    Mon boss préfère lors dune relation de 1 à 1 que tout soit dans la même table quitte à se retrouver avec des champs qui ne seront remplis que dans certaine occasion.
    Pour ce point précis, j'aurais envie de dire que c'est un gros c.n, et si il est comme ca pour tout,ben c'est un c.n.
    Mais surtout, ne lui dis pas, tu vas avoir des emmerdes.

    Citation Envoyé par mortapa Voir le message
    Je ne suis pas de son avis
    Ouf, au moins tu es sain d'esprit ... sur ce point au moins
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  13. #33
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 268
    Points
    268
    Par défaut
    haha cest completement ridicule, j'ai retrouver le passage du livre coder proprement pour vous le citer:

    Idéalement, le nombre d’arguments d’une fonction
    devrait être égal à zéro (niladique). Ensuite vien-
    nent les fonctions à un argument (monadique, ou
    unaire), puis à deux arguments (diadique). Les
    fonctions à trois arguments (triadique) doivent être
    évitées autant que possible. Les fonctions qui pren-
    nent plus de trois arguments (polyadique) exige une
    très bonne raison ou ne doivent jamais être
    employées.

  14. #34
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    Citation Envoyé par javan00b Voir le message
    haha cest completement ridicule, j'ai retrouver le passage du livre coder proprement pour vous le citer:
    la logique est pourtant relativement simple:
    si tu as besoin de beaucoup d'arguments, c'est que ta fonction fait trop de choses.
    un sous-découpage s'impose.

    apres lui met le "beaucoup" a deux ... perso j'aurais pousse jusqu'à 4/5

    deux, c'est un peu bas ... comment on fait pour les operateurs ternaires?
    click my www
    ............|___
    ...................\
    .................._|_
    ..................\ /
    ..................."

  15. #35
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Ouais, j'ai plussoyé. En plus, parfois, nos fonctions dépendent de Lib tierce, donc on est plus ou moins obligé de se coltiner les conneries des autres, je pense notamment à certaines APIs de systèmes d'exploitation.

  16. #36
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Je viens de tomber sur celle là pour les Add-in Office avec C#:
    Code : 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
    public virtual void SaveAs (
    	[OptionalAttribute] ref Object FileName,
    	[OptionalAttribute] ref Object FileFormat,
    	[OptionalAttribute] ref Object LockComments,
    	[OptionalAttribute] ref Object Password,
    	[OptionalAttribute] ref Object AddToRecentFiles,
    	[OptionalAttribute] ref Object WritePassword,
    	[OptionalAttribute] ref Object ReadOnlyRecommended,
    	[OptionalAttribute] ref Object EmbedTrueTypeFonts,
    	[OptionalAttribute] ref Object SaveNativePictureFormat,
    	[OptionalAttribute] ref Object SaveFormsData,
    	[OptionalAttribute] ref Object SaveAsAOCELetter,
    	[OptionalAttribute] ref Object Encoding,
    	[OptionalAttribute] ref Object InsertLineBreaks,
    	[OptionalAttribute] ref Object AllowSubstitutions,
    	[OptionalAttribute] ref Object LineEnding,
    	[OptionalAttribute] ref Object AddBiDiMarks
    )
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  17. #37
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    La meme en vba
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    expression.SaveAs(FileName, FormatFichier, VerrouillerCommentaires, MotDePasse, AjouterAuxFichiersRécents, MotDePasseÉcriture, LectureSeuleRecommandée, IncorporerPolicesTrueType, EnregistrerFormatImageOrigine, EnregistrerDonnéesFormulaires, EnregistrerEnTantQueLettreAOCE, Encodage, InsérerSautsLigne, AutoriserRemplacements, FinLigne, AjouterMarquesBiDi)
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

Discussions similaires

  1. Méthode qui prend des paramètres inconnus
    Par Rohan21 dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2013, 10h31
  2. Méthode qui prend un paramètre de type List<MaClasse>
    Par boby62423 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 11/05/2010, 16h12
  3. [Debutant]Méthode, liste de paramètres et un tableau
    Par Carlito_superheros dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 15/05/2008, 14h55
  4. appel d'une méthode avec plusieurs paramètres
    Par soujava dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 11/05/2008, 23h30
  5. [SQL] Lister les méthodes et les paramètres d'entrée d'une classe
    Par arnolem dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 11/08/2006, 19h55

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