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

La taverne du Club : Humour et divers Discussion :

[Tutoriel] L'art de programmer salement

  1. #81
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Je viens réveiller ce topic avec quelques bonnes pratiques conseillées imposées par le développeur avec qui je travaille et qui est mon responsable, un expert auto-proclamé du code propre et performant qui considère que ceux ne travaillant pas comme lui sont des idiots incompétents :

    • Un grand classique mais qui ne reste primordial : ne jamais commenter le contenu d'une fonction, même et surtout si elle fait plus de 500 lignes avec 6 ou 8 niveau de boucles et de conditions imbriqués
    • Ne jamais instancier plusieurs fois un même objet mais passer par un singleton. Si l'on a réellement besoin de plusieurs versions distinctes de la classe (pour instancier plusieurs formulaires par exemple), rajouter dans l'unique objet des tableaux de propriétés pour chaque besoin
    • Ne pas utiliser de framework, de plugins JavaScript ou de version de PHP ayant moins de 5 ans car les versions récentes sont "pleines de bugs"
    • Réécrire environ 90% des fonctionnalités du-dit framework car ses développeurs sont forcément incompétents
    • Ne surtout pas utiliser quoi que ce soit se rapprochant d'un début d'IDE. Un vrai développeur travaille uniquement avec une invite de commande et VIM
    • Ne surtout pas respecter le principe de single responsability. Mieux vaut une classe de 2000 lignes que 2-3 classes légères car les objets c'est "lourd et il faut privilégier la performance"
    • Effectuer toutes les validations de formulaire en JavaScript uniquement, de toute façon tout le monde a JavaScript aujourd'hui
    • Construire ses requêtes SQL en 20 étapes avec 3 sous-requêtes imbriquées sur la même ligne. Pour les noms de tables, utiliser uniquement des abréviations impcompréhensibles.
    • Utiliser PDO mais sans les requêtes préparées. Se soucier des injections SQL, c'est pour les faibles.
    • Ne jamais utiliser de return false au début d'une fonction car avoir plus d'un return c'est "interdit". Tant pis si ça oblige à imbriquer 5 ifs, au moins c'est propre.
    • Passer les variables par référence car c'est plus performant (après vérification non, c'est même l'inverse)
    • Ne jamais déclarer une variable dont on n'est pas sûr à 100% d'avoir besoin. Si une méthode d'une classe n'a pas besoin d'une ou deux variables, interdit de les déclarer dans un constructeur, il faut les redéclarer individuellement dans chaque fonction

  2. #82
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Ne jamais instancier plusieurs fois un même objet mais passer par un singleton.
    Je ne sais pas si le singleton est un problème, mais lorsque tu utilises un singleton tu peux le faire + ou - proprement

    Tu planques ton singleton et tu passes par une fonction/ procédure inline proxy


    Citation Envoyé par Sodium Voir le message
    Mieux vaut une classe de 2000 lignes que 2-3 classes légères
    Cela dépend du contexte .

    Lorsque tu fais une application IHM, des fois c'est plus pratique d'avoir 1 grosse classe contrôleur qui gère tous les évènements, callbacks, la vue (passive view), ...


    Citation Envoyé par Sodium Voir le message
    Pour les noms de tables, utiliser uniquement des abréviations impcompréhensibles.
    Je me suis aperçu qu'avec Access , le moteur considère par défaut certains mots (par exemple "name" "id") comme des alias/ "placeholders".

    Soit tu les échappes dans les requêtes, soit tu désactives cette "fonctionnalité" ... soit tu mets des abréviations


    Citation Envoyé par Sodium Voir le message
    Tant pis si ça oblige à imbriquer 5 ifs, au moins c'est propre.
    En C si tu veux gérer toutes les erreurs avec 1 seul endroit pour nettoyer la mémoire, c'est une façon de faire

    Sinon tu peux utiliser un booléen bool_tmp.
    À la fin de la première étape il faut qu'il soit bien rempli en gérant tous les cas de la première étape (faux ou vrai en cas d'erreurs ou pas).
    Et ensuite à chaque étape tu le testes (si bool_tmp est vrai + éventuellement d'autres tests) pour faire l'étape. Et en cas d'erreur tu passes bool_tmp à faux.

  3. #83
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Ne jamais déclarer une variable dont on n'est pas sûr à 100% d'avoir besoin. Si une méthode d'une classe n'a pas besoin d'une ou deux variables, interdit de les déclarer dans un constructeur, il faut les redéclarer individuellement dans chaque fonction
    J'aurais tendance à être d'accord avec ça, si tu peux remplacer un membre par une variable locale; à priori c'est que tu n'en a pas besoin.
    Si tu commences à déclarer des variables globales pour sauvegarder ta variable locale entre 2 appels de fonctions, c'est que tu en avais besoin au final

  4. #84
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Je ne sais pas si le singleton est un problème, mais lorsque tu utilises un singleton tu peux le faire + ou - proprement

    Tu planques ton singleton et tu passes par une fonction/ procédure inline proxy
    Si le singleton peut se défendre pour une classe utilitaire qui ne fait que répondre à une demande sans avoir de vie propre (et encore mieux vaut qu'elle soit instanciée et accédée via le framework), c'est déjà nettement moins le cas lorsqu'il s'agit d'un formulaire avec ses propres champs, validations etc. Surtout que dans mon cas il s'agissait d'une classe abstraite héritée par d'autres classes.

    Sinon tu peux utiliser un booléen bool_tmp.
    À la fin de la première étape il faut qu'il soit bien rempli en gérant tous les cas de la première étape (faux ou vrai en cas d'erreurs ou pas).
    Et ensuite à chaque étape tu le testes (si bool_tmp est vrai + éventuellement d'autres tests) pour faire l'étape. Et en cas d'erreur tu passes bool_tmp à faux.
    Et donc rajouter des conditions qui alourdissent le code tout en obligeant un autre programmeur à lire l'ensemble de la fonction alors qu'avec un simple return false au début, la lecture est claire. Je ne dis pas qu'il faut faire des fonctions à 40 returns, juste qu'il faut savoir être pragmatique et ne pas ériger certains principes en paroles sainte quitte à rendre son code incompréhensible.

    J'aurais tendance à être d'accord avec ça, si tu peux remplacer un membre par une variable locale; à priori c'est que tu n'en a pas besoin.
    Si tu commences à déclarer des variables globales pour sauvegarder ta variable locale entre 2 appels de fonctions, c'est que tu en avais besoin au final
    Non non, là c'est plutôt que le type instancie le même modèle et effectue les même vérifications de droits d'accès dans chaque action du contrôleur dans un pure soucis de performances.
    Par contre, il charge l'ensemble des fichiers de traductions, configuration etc sur chaque page du site, quelques milliers de variable au total dont seule une fraction est utilisée.

  5. #85
    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 058
    Points
    32 058
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Un grand classique mais qui ne reste primordial : ne jamais commenter le contenu d'une fonction, même et surtout si elle fait plus de 500 lignes avec 6 ou 8 niveau de boucles et de conditions imbriqués
    Sur celui-là, d'accord avec toi : "pas de commentaires", c'est du sexy coding, et ça a des règles, à commencer par des routines courtes et bien nommées.

    Citation Envoyé par Sodium Voir le message
    Ne jamais instancier plusieurs fois un même objet mais passer par un singleton. Si l'on a réellement besoin de plusieurs versions distinctes de la classe (pour instancier plusieurs formulaires par exemple), rajouter dans l'unique objet des tableaux de propriétés pour chaque besoin
    Faut voir le cas précis, mais effectivement, dans la plupart des cas, c'est "pourquoi faire simple quand on peut faire compliqué."

    Citation Envoyé par Sodium Voir le message
    Ne pas utiliser de framework, de plugins JavaScript ou de version de PHP ayant moins de 5 ans car les versions récentes sont "pleines de bugs"
    C'est parfois vrai. Donc, voir au cas-par-cas.

    Citation Envoyé par Sodium Voir le message
    Réécrire environ 90% des fonctionnalités du-dit framework car ses développeurs sont forcément incompétents
    Là, par contre, c'est du masochisme pur et dur : soit on utilised un framework, soit on se fait le sien, mais un entre-deux de ce genre est un appeau à problèmes.

    Citation Envoyé par Sodium Voir le message
    Ne surtout pas utiliser quoi que ce soit se rapprochant d'un début d'IDE. Un vrai développeur travaille uniquement avec une invite de commande et VIM
    VIM est surpuissant, mais bon, il y a aussi des outils rigolos dans les IDE modernes. Qu'il préfère VIM, c'est son problème. Qu'il l'impose est bien plus emmerdant.

    Citation Envoyé par Sodium Voir le message
    Ne surtout pas respecter le principe de single responsability. Mieux vaut une classe de 2000 lignes que 2-3 classes légères car les objets c'est "lourd et il faut privilégier la performance"
    Là encore, la réponse standard de l'ingénieur standard : ça dépend. Ca dépend des contraintes, ça dépend du métier. Quand tu commences à avoir des setters/getters bien épais, qui eux même pointent sur des getters-setters bien épais, qui eux-mêmes... tu peux avoir des problèmes de performance. Il y a aussi des cas métiers, rares mais réels, ou le code est un bête script très long, et l'utilité de le couper en morceaux de 3 (ou même 30) lignes est inexistante.

    Ce qui me gêne, c'est qu'il en fait un standard, alors que clairement, dans la majorité des cas, son dogme est inadapté.

    Citation Envoyé par Sodium Voir le message
    Construire ses requêtes SQL en 20 étapes avec 3 sous-requêtes imbriquées sur la même ligne. Pour les noms de tables, utiliser uniquement des abréviations incompréhensibles.
    Ca, c'est mal. A la maintenance, la difficulté de maintenir un code augmente linéairement avec sa taille. La difficulté de maintenir une requête SQL, elle, augmente exponentiellement avec sa taille, parceque c'est un bloc unique.

    Citation Envoyé par Sodium Voir le message
    Utiliser PDO mais sans les requêtes préparées. Se soucier des injections SQL, c'est pour les faibles.
    euh, c'est sérieux, là???

    Citation Envoyé par Sodium Voir le message
    Ne jamais utiliser de return false au début d'une fonction car avoir plus d'un return c'est "interdit". Tant pis si ça oblige à imbriquer 5 ifs, au moins c'est propre.
    Ca, c'est un débat qui dure depuis l'invention de la routine. Ca brise le flux naturel des données. Mais ça allège le code. Ca augmente la complexité cyclomatique du code. Ca simplifie la lecture. Je n'ai pas d'avis là-dessus.

    Citation Envoyé par Sodium Voir le message
    Passer les variables par référence car c'est plus performant (après vérification non, c'est même l'inverse)
    ça, si c'est vérifié et qu'il le nie, on a pas à faire à un scientifique. En cas de doute, mesurer. Là, on a à faire à un croyant, une espèce nuisible.

    Citation Envoyé par Sodium Voir le message
    Ne jamais déclarer une variable dont on n'est pas sûr à 100% d'avoir besoin. Si une méthode d'une classe n'a pas besoin d'une ou deux variables, interdit de les déclarer dans un constructeur, il faut les redéclarer individuellement dans chaque fonction
    D'autres ont répondu là-dessus. Après, moi, j'ai beaucoup bossé en COBOL(avec la couche objet désactivée), et on a gagné beaucoup de temps(développement et maintenance) en créant des méga-structures standard en faible nombre - quitte à avoir pas mal de vide dedans - plutôt que des micro-structures adaptées à chaque étape du traitement. Comme ce ne sont pas des objets, mais de simples définitions de données, et comme en plus les étapes intermédiaires sont des fichiers temporaires effacés assez rapidement, le coût en termes de performances était négligeable. Dans une structure objet, il faudrait mesurer. Le risque, je l'ai déjà évoqué plus haute, c'est de faire des méga contrôles à chaque fois qu'on accède à la donnée(ce qui n'est pas possible sans objet), et, effectivement, de faire ramer le proc.

    A mesurer.
    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.

  6. #86
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    VIM est surpuissant, mais bon, il y a aussi des outils rigolos dans les IDE modernes. Qu'il préfère VIM, c'est son problème. Qu'il l'impose est bien plus emmerdant.
    Ca veut dire quoi "surpuissant" dans ce cas ? Je connais très peu VIM, j'ai vu quelques collègues l'utiliser, pour le débogage en particulier l'interface était quasiment la même que celle que j'ai sous Eclipse. Celle d'Eclipse était plus jolie (ça on s'en fout), mais il y avait les mêmes "fenêtres" avec le code, la mémoire etc...
    La grosse différence que j'ai vu c'est qu'il n'y avait guère de menu, les collègues utilisaient plein de raccourcis là où j'en utilise quelques uns seulement (pour le reste je cherche dans les menus).
    Donc oui VIM prend beaucoup moins de mémoire (voire pas du tout comparé à Eclipse ), mais je n'ai pas l'impression qu'il y ait des fonctionnalités en plus.

    PS : je ne cherche pas à lancer un troll, je me pose vraiment la question.
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  7. #87
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par el_slapper Voir le message

    VIM est surpuissant, mais bon, il y a aussi des outils rigolos dans les IDE modernes. Qu'il préfère VIM, c'est son problème. Qu'il l'impose est bien plus emmerdant.
    Ca me rappelle un prestataire. Une boite de geeks qui a décidé d'engager une secrétaire pour gérer les clients / facturation. Ils lui ont donc configuré un pc sous linux et une boite mail. Pour lire la boite mail, elle n'avait le droit d'utiliser que vim. Elle n'a pas tenu une semaine

  8. #88
    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 058
    Points
    32 058
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Ca me rappelle un prestataire. Une boite de geeks qui a décidé d'engager une secrétaire pour gérer les clients / facturation. Ils lui ont donc configuré un pc sous linux et une boite mail. Pour lire la boite mail, elle n'avait le droit d'utiliser que vim. Elle n'a pas tenu une semaine
    Tu m'étonnes. C'est surpuissant, mais il faut un sacré investissement personnel - et une certaine tournure d'esprit - pour utiliser toute sa puissance. Je n'en suis pas là, d'ailleurs(mon usage est très limité, je travaille sur des scripts d'une quinzaine de lignes, sous LINUX, et rarement.....)
    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.

  9. #89
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    En fait, tant que le code fait le job demandé, kénen-a-nafoute. Si le ou les mecs qui reprennent le code ne sont pas des tanches, ils réussiront à le ré-exploiter. Sinon, faut changer de métier.

    Tiens, un fait divers :
    http://www.20minutes.fr/insolite/174...parfois-visite

    Le SDF il devait pas être très propre, pourtant il a fait le job. A méditer...

    Zecreator.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  10. #90
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par zecreator Voir le message
    Le SDF il devait pas être très propre, pourtant il a fait le job. A méditer...
    Si c'est la même histoire, mais je ne l'ai pas suivi, le boulanger a employé le SDF suite à son geste.

    Mais le boulanger l'a viré au bout de 4 - 6 mois parce qu'il picolait ou trafficotait il me semble

  11. #91
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Comme on dir : le gibier, c'est meilleur quand la viande a un peu pourrie... Les mecs qui mettent en avant qu'un bon code doit être bien formaté, commenté... sont souvent les premiers à écrire du code à l'arrache bien grossié. En fait, ils fantasment les mecs
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  12. #92
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 624
    Points : 2 477
    Points
    2 477
    Par défaut
    Juste pour la rigolade, j'ai bossé pour une société dont je tairais le nom mais qui distribue du matériel informatique, dont le nom qui tient sur 4 lettres et qui est sponsor de l'ASVEL

    Bref, nous avons eu droit à tout ce qu'il ne faut pas faire, bien sur, mais je me rappelle d'une fonction qui était à peu près comme celle la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function IsItTrueOrFalse (a, b: integer): boolean;
    begin
    if a=4 or b=5 then
    Result:=true
    else if b=6 and a=7 then
    Result:=true
    else if b+a=13 then 
    Result:=false;
    
    
    Result:=true;
    end ;


    Voilà le travail

    Ah et aussi, je me rappelle d'une phrase d'un ancien responsable de développement, mais c'était dans une autre entreprise qui m'a dit, droit dans les yeux :

    Il va falloir t'habituer à faire du code sans bug
    Avec lui, j'ai tenu moins de 3 mois...
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


  13. #93
    Invité
    Invité(e)
    Par défaut
    J'avais eu à débugger une fonction comme ça qui devait détecter un cas rare en suivant une analyse complexe et un cahier des charges bien sexy.

    Après voir passé plusieurs heures à comprendre ce qui avait déjà été fait, de façon particulièrement dégueulasse et sans commentaires pertinents, évidemment, je suis arrivé à la dernière ligne qui donnait RETURN TRUE...

    J'ai tout jeté, maudit le type qui avait fait ça pour trois générations. Bon, je viens de voir qu'il était devenu chef de projet... C'est dans la logique des choses.

  14. #94
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Après voir passé plusieurs heures à comprendre ce qui avait déjà été fait, de façon particulièrement dégueulasse et sans commentaires pertinents, évidemment, je suis arrivé à la dernière ligne qui donnait RETURN TRUE...
    Ca peut être un fonctionnement normal transitoire, quand des composants ne sont pas prêts, on fonctionne temporairement en mode bouchonné avec une réponse figée
    Mais en ce cas, la moindre des choses est de le mentionner avec un GROS COMMENTAIRE BIEN LISIBLE, et en précisant si possible, la date prévue de "débouchonnage"

  15. #95
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Ca peut être un fonctionnement normal transitoire, quand des composants ne sont pas prêts, on fonctionne temporairement en mode bouchonné avec une réponse figée
    Mais en ce cas, la moindre des choses est de le mentionner avec un GROS COMMENTAIRE BIEN LISIBLE, et en précisant si possible, la date prévue de "débouchonnage"
    Lol, et pis quoi encore ? 10 balles et un Mars ? Tu veux pas que l'on te mette directement le planning de dev dans les commentaires lol ! En fait, pour coder proprement aujourd'hui il y a 2 solutions :

    1 - On réinvente rien, on adapte du code déjà super propre.
    2 - On a un planning avec une date de livraison finale dans 4 ans, et là on peut peaufiner son code pour qu'il soit le plus lisible et le plus merveilleux et le plus optimisé et le plus formidable et qui en plus me sort les poubelles

    Si vraiment ces solutions ne fonctionnent pas, reste l'argument ultime : "Ben vous savez, le code est généré en partie par le framework, on peut pas tout réécrire à la main.". Ce truc, je l'ai vu fonctionné bien des fois (la faute à l'outil incontrôlable), et ça passe.

    Franchement, allez, dites-le, qui prend le temps de parcourir tout ses 300 scripts pour faire le la belle indentation, et commenter chaque variable, chaque fonction, chaque bidouille à la con ? Qui fait ça ?

    Zecreator.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  16. #96
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par zecreator Voir le message
    Qui fait ça ?
    Une certitude: celui qui ne le fait pas c'est la personne qui demande de commenter son code

  17. #97
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Citation Envoyé par foetus Voir le message
    Une certitude: celui qui ne le fait pas c'est la personne qui demande de commenter son code
    Haaa oui, la méthode de faire faire par d'autre ce que l'on fait pas, en argumentant que ceux sont de bonnes habitudes. J'ai dejà entendu, j'ai déjà entendu...
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  18. #98
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Je tombe sur des tas de trucs rigolos en parcourant le code de mon cher collègue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $dep = substr($ref, 0, 1) == '5';
    $not = (int)$value['see'] === 2
         || stristr($value['prbrands'], 'ARTICLE DELETED')
         || (stristr($value['prbrands'], 'GENERAL CREDITERS') && $dep)
         || stristr($value['en'], 'ARTICLE MISC')
         || stristr($value['en'], 'ARTICLE DIV')
         || in_array($ref, $fish)
         || (isset($value['en']) && stristr($value['en'], 'form'));
    
        if (!$not) {
        //...
    Ah ben oui, if $not, c'est pourtant limpide...

    La fonction fait à peu près 300 lignes comme ça, sans le moindre commentaire.

  19. #99
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Je tombe sur des tas de trucs rigolos en parcourant le code de mon cher collègue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $dep = substr($ref, 0, 1) == '5';
    $not = (int)$value['see'] === 2
         || stristr($value['prbrands'], 'ARTICLE DELETED')
         || (stristr($value['prbrands'], 'GENERAL CREDITERS') && $dep)
         || stristr($value['en'], 'ARTICLE MISC')
         || stristr($value['en'], 'ARTICLE DIV')
         || in_array($ref, $fish)
         || (isset($value['en']) && stristr($value['en'], 'form'));
    
        if (!$not) {
        //...
    Ah ben oui, if $not, c'est pourtant limpide...

    La fonction fait à peu près 300 lignes comme ça, sans le moindre commentaire.
    C'est moche de balancer ses collègues ! Plus que ce code je pense...
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  20. #100
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Citation Envoyé par zecreator Voir le message
    C'est moche de balancer ses collègues ! Plus que ce code je pense...
    C'est ton code ?
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

Discussions similaires

  1. [Tutoriel] 50 conseils en programmation Flash Actionscript 3
    Par Djug dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 09/03/2012, 10h54
  2. Réponses: 5
    Dernier message: 20/09/2011, 17h15
  3. De l'art de programmer en Perl ou Perl Best Practices
    Par JakoJako dans le forum Livres
    Réponses: 14
    Dernier message: 05/06/2009, 12h15

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