Bonjour,
Qu'est ce que cela veux dire un "code propre "selon-vous ?
![]()
Bonjour,
Qu'est ce que cela veux dire un "code propre "selon-vous ?
![]()
Un code propre, ça veut dire deux choses :
1°) un code propre à voir, c'est vrai, bien indenté, avec une cohérence dans les noms de variables et de fonctions, etc...
2°) mais ça veut aussi un dire un code sans erreurs conceptuelles, sans erreurs grossières, sans désoptimisations (exemple : "$mavar"), sans lourdeurs... etc... en bref, un code dont la sémantique est cohérente... si on utilise des guillemets simples et la concaténation pour les variables, le faire tout le temps, et n'utiliser les guillemets double que quand c'est nécessaire ("\r\n" par exemple)
si on utilise sprintf, l'utiliser tout temps...
etc...
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
ca dépend, si c'est de l'HTML ca peut dire valide W3C.
si c'est du PHP, voir le post de Swoög, auquel j'ajoute :
ca peut aussi dire utiliser les balise code ou bbcode pour que les membres du forum se casse pas les yeux dessus, et pas forcement poster tout le code, mais les parties judicieuses pour analyser le probleme rapidement (avec les numéro de lignes si possible etc.)
le plus souvent moi je dis : balise code et code pas valide ...![]()
Je vais rejoindre les dires de Swoög concernant la cohérence et être fidèle à ça manière de codé du début à la fin.
Quand on prend un projet entier d'une autre personne il y a la phase ou il faut comprendre ça manière de voir les choses. Si au bout 1/2 heure nous nous aperçevont qu'il a son propre protocole d'écriture de code ça devient plus facile pour la suite même si ce qu'il a fait n'est pas forcément bien ficelé mais dans l'essentiel c'est d'arriver à comprendre vite. Pour mon projet perso j'ai établie un protocole unique sur le nommage de mes variable. Ex
$arrObjUtilisateur; => Tableau d'Objet Utilisateur
$objUTilisateur; Obj Utilisateur
$arrXxxx; => Tableau de ....
$i , $j, $k, $l , ... Variable d'incrémentation ou décrémentation.
...
Dans mon projet c'est ainsi tous le temps. Apres ça reste discutable sur les nom ou la maniere mais tant que je reste fidèle. Le but est de rester compréhensible et se dire tous le temps: "Et si autre dev voit mon code est-ce qu'il va comprendre? et si je reviens 6 mois plus tard est-ce que je vais comprendre".
Code propre c'est aussi un code organisé, structuré. Pas des même requêtes qui se trouve dans différent fichiers ou il faut courir après parce que la structure de la base de données a changé. Certe c'est pas tous le jours qu'ont change la structure d'une table mais quand ça arrive t'es degue.
Je permet d'ajouter èa ce post très bien quelque petit détails qui peuvent etre bien, les commentaires (on en mets pas suffisament ou encore pas aux bons endroits)
Je crois qu'un entete dans chaque page sur l'utilité et la finalité du script est intéressant a avoir, comme ca dans la réutilisation de code on peut savoir rapidement de quoi il en est
La description des fonction que l'on créé ainsi que la description des paramètres se vaut un outils important dans la structure et la propreté
Et finalement si une journée on programme et sommes très "dans notre bulle" on peut créere des algorithme qui peuvent etre difficile a comprendre plutard s'il comporte beaucoup de ligne de code...un petit commentaire sur les parties moins évidante est grandement apprécié
Pour ma part, je me garde un fichier de variable session pour identifié à quelle page on les initialisent, les détruient, leur attribuent de nouvelle valeur...C'est plus facile de les retrouver dans une application comportant plusieurs plusieurs page
![]()
genre ca : http://www.developpez.net/forums/sho...28#post1112428
ca donne pas envie de le lire, apres tu notera qu'il y a quand meme de l'indentation etc.
en tant que non gourou de php, j'aurai envie de rajouter qu'un code propre c'est aussi un code suffisamment clair et commenté pour qu'une autre personne puisse plonger dans le code sans se noyer.
Je pense qu'il ne faut surtout pas confondre du code propre et de la validation W3C !Envoyé par Maxoo
Si l'on parle de (X)HTML (par exemple) et W3C; on fait plutôt référence à de la sémantique web (rigueur dans la structuration grammaticale des pages, séparations du contenu et du contenant)...
...Et si on parle du W3C en général, il s'agit plutôt de normes (recommandations ou standards) de conceptions uniformisées.
A mon avis, même si on peut jouer sur les mots, je pense que ce n'est pas une bonne idée d'assimiler W3C et le fait de "coder proprement".
Ce que j'appelerais du code propre (et je suis assez stricte avec moi-même dans le domaine ) :
- Une convention permanante pour tous les noms de classes, attributs, méthodes, fonctions, variables ou constantes...
- Tous ces noms dans une seule langue (pas de pseudo-langage français<->anglais)
- Eviter au maximum les abréviations.
- Commentaires "PHPdoc" aux endroits opportuns.
- Indentation contrôlée...
- Initialisation de toutes les variables
- Pas de code grossièrement superflux (typiquement un bloc "else" juste après un bloc "if" contenant un "return" explicite ! )
- En orienté objet, essayer de respecter les principes de conception objet.
- En procédural, répartir le code en fonctions (bonne chose de faite !)
- Toujours généraliser (factoriser) son code source lorsque c'est possible ! (Sans que ça tourne à l'obsession
).
- Et dans les programmes en général, définir dès le départ une arborescence logique pour placer ses scripts, fonctions, classes, etc.
Evidemment, il est difficile de respecter toutes ces directives, et pour ainsi dire, j'ai rarement vu des scripts ou applications PHP respectant parfaitement ces (mes) conventions, mais enfin, les perfectionnistes comprendront.
Dernière modification par Invité ; 28/06/2006 à 22h17.
Autre chose. Si vous connaissez un peut l'objet et que vous travaillez en équipe ne faite pas d'objet parce qu'il y a pas pire qu'une personne qui utilise l'objet sans aucune logique c'est pire que tous.![]()
Un code propre c'est :
1) un code sans superflu
Exemple pour le html : j'ai l'habitude de travailler avec des graphiste intégrateur qui conçoivent les pages web avec des tableaux imbriqué dans des tableaux eux même dans des tableaux.. Qui répètent dans chaque page les mêmes morceaux de code.
Le code est horrible à dynamiser, imaintenable, totalement inévolutif
=> vive xhtml et css2 !!
2) Bien commenté
Pour ma part (dans mes bon jour je met presque 25% de code dans mes script)
3) Respecter ses convention
Convention de nomage, de répartition du code dans les fichiers etc...
L'utilisation de fichier de configuration est fortement conseillé..
+) Rédiger une note sur la programmation pour ses successeurs
Bref faire tou ce que je ne fait pas ^^
Bon code @ tous
D'un autre coté... Moi j'ai eu droit à des individus qui imbriquaient plusieurs blocs <div> sous prétexte de ne pas pouvoir utiliser les tableaux pour stigmatiser leur interface...Envoyé par SoF_AzraeL
En plus d'utiliser une classe par bloc !
D'un extrème à l'autre![]()
Merci pour vos réponses ça m'a fait vraiment plaisir de recevoir pleines de reponses car ça ne m'arrive pas souvent.
D'autre part, berceker united a ditJ'ai essayé de comprendre cela mais j'ai pas compris. Voulez vous etre un peu clair dans ce point là?Autre chose. Si vous connaissez un peut l'objet et que vous travaillez en équipe ne faite pas d'objet parce qu'il y a pas pire qu'une personne qui utilise l'objet sans aucune logique c'est pire que tous.
J'ai bien compris ce que veut dire un code libre, mais est ce que tout le monde l utilise?![]()
Ben je crois qu'il voulais dire par utiliser l'objet en équipe n'étant pas une bonne idée si ca modélisation des classes n'a pas bien été fait à la base
Travailler en équipe sur un projet codé en objet peut se faire a condition d'avoir bien fait le diagramme de classe avec la notion UML par exemple... ainsi une personne peut travailler sur une classe et une autre, sur une autre classe ainsi de suite sans se piller sur les pieds
Les gens qui code objet sans trop savoir où ils vont, vont avoir tendence a créer des objet superflux sans respecter les patron de conception Orienté-Objet qui sont là, la plupart du temps, pour simplifier et apporter une résolution logique face a une situation...patron parlant ici de Singleton, Bridge,Visiteur, Expert...etc yen a plein![]()
Envoyé par ozzmax
Il n'est pas nécessaire d'avoir recours à UML (et tous ses différents diagrammes) ni même aux design patterns lorsqu'on travaille sur des projets PHP amateurs ou "semi-pro", d'une complexité relative.
Avoir recours à ces méthodes d'analyse / conception devient indispensable lorsqu'on doit résoudre des problèmes complexes, avec un délai et de l'argent en jeu...
Pour exemple, la plus part des projets OpenSource PHP que je connais, hebergés typiquement par SourceForge (ou non), mettent tout leur code source à disposition sur CVS, à partir de là, contribue qui veut (qui pourra), sans organisation autour de diagrammes UML (doc. et discussion faisant foi).
...Surtout que les versions antérieures à PHP 5 ne permettent pas (ou difficilement) l'utilisation des diagrammes de conception UML.
Ce qu'il voulait dire plus haut est très simple, ne pas faire de l'orienté objet pour faire joli, et éviter de faire de l'orienté objet en équipe tant qu'on en a pas acquis les fondamentaux...
Bonne journée !
1 - toujours commenter son code
2 - respecter les conventions W3C
3 - ca c'est mon avis mais : coder en XHTML strict
4 - utiliser la méthode MVC et ne pas programmer "en spaghetti"
5 - bien indenter son code.
je pense que c'est tout....
Concernant la conception objet ozzmax résume un peut mes pensé mais je parle par expérience malheureuse que j'ai vécus ou il y avait un developpeur qui connaissait pas réellement la notion objet mais utilisais plutot les facilités de syntaxe. En gros un objet était un sac à fonction avec des variables (attribut) visible depuis chaque "fonction" point barre! ça n'allait pas plus loin. Je du passer derriere lui. J'ai pété un plomb, arrêter une semaine certifié par le medecin. La classe faisait >3000 lignes.
Donc si vous voulez vous lancer dans l'objet faite le chez vous mais ne le faite pas subire au autre parce que le resultat peut être pire qu'en procédurale.
Je vois que travailler en faisant un code propre est difficile et travailler avec l objet est pire si j ai bien compris ce que vous venez de dire.
J ai etudié l objet et la conception avec l objet mais je l ai jamais utilisé dans un projet meme si j en veux vraiment. Il faut juste les moyens pour en faire un![]()
Merci pour vous tous.
Ouais c'est sûr que le risque de burnout est grand avec 3000 lignes à corriger (surtout quand c'est pas toi qui les a tapé !)...Envoyé par berceker united
Cela dit, je serais bien curieux de savoir à quel genre de développeur tu as eu à faire![]()
C'est une aberration...
Ben un developpeur qui à découvert les avantages d'ordre syntaxique et non pas objet car il n'avait aucune notion moi non plus d'ailleur mais je savais que c'étais pas normal. Dedans il y avait de tout un vrai un marché au puce. Connexion à la base, gros contenu HTML, requete dans tous les sens, des functions bidouille et une centaine d'attributs. Bref quand il est partie en vacances ça m'est tombé dessus le patron mes la pression ben j'ai finis par craquer mais comment expliquer que le code est pas bon alors qu'il fonctionne mais comme personne ne connaissait l'objet c'est pas facile à justifier donc....Envoyé par Guardian_7
Donc pour pas que ça arrive à d'autre ne faite pas d'objet en équipe si vous n'avez pas de notions.
Autre chose : LES COMMENTAIRES COHERANT.
C'est pas tous de placer un commentaire mais faut il qu'elle soit compréhensible et utile.
Des fois je vois ça![]()
Non mais ça veut dire quoi ça !... Ce commentaire ne sert à rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //requête $req = "select ....." //Execution de la requête $rs = mssql_query($req);
Ouais j'avoue que c'est ordinaire comme commentaire héhéhé, ordinaire dans le sens d'inutile.Envoyé par berceker united
Les commentaires dans le code doivent etre là pour nous renseigner sur quelque chose de compliquer pas pour expliquer la ligne qui suit...
Alors comme ton avis, un sur-commentairage ne fait qu'alourdir le code dponc le rendant difficile a comprendre à simple lecture![]()
Partager