LeYaude
305Messages postés
24 août 2007Date d'inscription
17 août 2008 à 17:15
Oui, ça a beau être de l'informatique, il faut commencer avec un papier et un crayon pour éclaircir ses idées.
Quand je parle des "grandes lignes", je veux dire qu'il faut commencer par te dire "j'ai besoin d'un module "membres", d'un module de news, d'un module d'upload de photos, d'un module de visualisation des photos, d'un module de gestion des commentaires..." (je dis ça au pif hein !). "Donc il va me falloir une page pour proposer un upload de photos (avec formulaire, sans pousser plus loin), qui va communiquer des infos à une page qui va redimensionner, miniaturiser, déplacer et enregistrer ma photo dans la BDD (sans trop pour l'instant se demander comment on redimensionne une image, ça viendra plus tard), il va me sur telle et telle page un formulaire pour ajouter des comms, une page pour les modérer (sans non plus rédiger tout de suite les requètes SQL, tu sais que tu en auras besoin et que tu les écriras en temps voulu)..." Et dans tout ça, la question qui devrait revenir continuellement vu le type de site que tu veux faire est : "comment je choisis qui sera autorisé ou pas à accéder à telle page, à voir ceci, à faire cela" (un système de groupes comme sur le sdz ou les systèmes Unix dont ils se sont je pense inspirés semble la meilleure façon de faire ça, il faudra définir précisément ces groupes)
Après, une fois que la structure sera bien définie, tu pourras organiser ta base de données, en réfléchissant bien aux champs dont tu as besoin, ton arborescence sur le FTP (c'est important que ça soit clair, défini par avance et bien réfléchi en fonction des besoins de ton site, et de ses futurs besoins).
Puis tu pourras concevoir les pages de manière schématique mais un peu plus détaillée, en te disant "là je vérifie les autorisations du visiteur, là je regarde quelle page je vais inclure, là je vais me connecter à la BDD, là je vais proposer l'ajout d'une news, là je vais vérifier/enregistrer ma news, maintenant je ferme ma BDD etc.".
Et seulement une fois que tu as fait ça, tu peux commencer à coder précisément les fonctions (à placer dans un fichier à part, certains créent même un fichier par fonction, ça se défend, surtou pour des questions de débuggage) et à te prendre la tête une demi-heure parce que t'as oublié un ";" ou que t'as mis 3 "s" à $message et que ça peut as marcher.
Bien sûr, il faut toujours avoir un peu à l'esprit la manière dont tu coderas pour prévoir durant la conception de te faciliter la vie au moment du codage, et bien sûr, quand tu seras en train de coder, tu te diras que finalement, changer un peu l'organisation te faciliterait grandement la vie, mais si c'est bien conçu du départ ça devrait être minime.
C'est vraiment important de prendre son temps au départ, j'ai fait un site l'été dernier et je n'ai pas pris suffisamment de temps pour faire tout ça, j'ai des pages énormes, je serait bien embêté si je devais rajouter des, et surtout j'ai perdu beaucoup de temps au moment de la création du code parce que je me rendais compte que ce que j'avais fait avant ne convenait pas pour la suite, et notamment au niveau des autorisations ; et même aujourd'hui il me faut un moment pour comprendre mon propre code. Heureusement c'est un tout petit site perso avec très peu de visiteurs donc ce n'est pas très grave.
Autre chose parce que j'y pense : il faut penser aussi que si ton site devient populaire, alors il évoluera, et d'autres développeurs que toi seront peut-être amenés à travailler dessus, et il ne faut pas qu'ils mettent 3 jours à comprendre comment marchent les scripts, d'où l'intérêt d'avoir une structure claire, unifiée (ne pas faire une chose pour ajouter des news et totalement autre chose pour ajouter des photos alors que dans le fond c'est la même chose), des noms de variables explicites (même si c'est un petit peu plus long à écrire) et un code très commenté.
Enfin bon, de toutes façons c'est en faisant des erreurs qu'on apprend, et tu en feras sûrement comme tout le monde, mais le moins possible est le mieux !