Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Pourquoi ne faut-il pas réinventer la roue ?
Devrait-on systématiquement se tourner vers un CMS, un framework ou des composants réutilisables ?

Le , par Shinja

0PARTAGES

6  2 
Salut, je viens poser un débat autour de la réalisation d'un site web fait-maison en PHP et ceux développé avec CMS. A chaque fois que je parle de créer un site de A à Z, on me dit que ce n'est pas la peine de réinventer la roue et qu'il existe beaucoup de CMS qui permettent de bosser plus rapidement. Alors oui c'est vrai, quand j'utilise un CMS j'obtiens un résultat sans trop forcer, mais quand on cherche quelque chose de spécifique il faut bidouiller et parfois se torturer l'esprit alors que cela serait nettement plus simple d'avoir créer son site à la main.

Un exemple tout bête, pour modifier l'apparence de la page de login de WordPress j'ai dû recourir à du jQuery pour modifier le style css de chaque élément pour apporter mon propre style. Oui, il existe une fonction pour cela mais on ne peut pas tout modifier. Pour des raisons personnelles, j'ai décidé de créer deux sites à la main. Au début j'ai pas mal ramé, car j'ai dû écrire pas mal de fonctions pour me simplifier la vie, mais une fois crées, franchement je trouve que ça marche au poil et ça me facilite plus la vie qu'un CMS.

Alors, je ne sais pas quoi penser vis à vis des CMS surtout quand on cherche à avoir le contrôle sur chaque élément. De plus, il est possible d'optimiser son code pour alléger au maximum le chargement d'une page.

Et vous qu'en pensez-vous ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de temoanatini
Membre averti https://www.developpez.com
Le 18/02/2014 à 13:32
Au début j'ai pas mal ramé, car j'ai dû écrire pas mal de fonctions pour me simplifier la vie, mais une fois crées, franchement je trouve que ça marche au poil et ça me facilite plus la vie qu'un CMS
donc tu ne réinventes pas la roue à chaque fois
5  0 
Avatar de Saverok
Expert éminent https://www.developpez.com
Le 17/02/2014 à 14:55
@Golgotha : +1000
Si tu fais un projet perso : amuse toi.
Développer des fonctionnalités de frameworks peuvent t'aider à progresser et te confrontant à des problématique que normalement, tu ne traites pas car tu utilises le framework justement.
Par contre, cela n'a d'intérêt que pour t'amuser et d'auto former.

Dans le milieu pro, dès qu'un framework reconnu effectue ton besoin : tu l'utilises.
Ce qui compte, c'est les besoins métiers.
Tout le temps que tu perds à coder autre chose que du métier, c'est du temps perdu.
De plus, un spécifique va correspondre à un besoin à l'instant T.
Le besoin évoluant, tu devras à chaque fois faire évoluer ton code.... pas terrible

Un framework couvre en général un besoin plus large que celui pour lequel tu l'utilises à l'instant T.
Le besoin évolue et il y a une grande probabilité qu'une fonctionnalité du framework non exploitée jusqu'à présent dans ton programme, puisse correspondre au moins en partie au nouveau besoin ==> du coup, moins voir pas du tout de dev

Ensuite, tu ne bosses pas forcément tout seul, ou bien tu n'es pas destiné à être le seul à développer sur ce programme pendant l'intégralité de son utilisation...
D'autres passent ou passeront dessus.
Avec un programme full spec, ça peut parfois être ardu de reprendre le code.
Avec un programme qui utilisent les frameworks les plus populaires, on retrouve facilement ses marques.

Pour finir, comme souligner par beaucoup, le soutien d'une communauté, ça ne se refuse pas.
4  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 17/02/2014 à 15:55
Citation Envoyé par Shinja Voir le message
Salut, je viens poser un débat autour de la réalisation d'un site web fait-maison en PHP et ceux développé avec CMS. A chaque fois que je parle de créer un site de A à Z, on me dit que ce n'est pas la peine de réinventer la roue et qu'il existe beaucoup de CMS qui permettent de bosser plus rapidement. Alors oui c'est vrai, quand j'utilise un CMS j'obtiens un résultat sans trop forcer, mais quand on cherche quelque chose de spécifique il faut bidouiller et parfois se torturer l'esprit alors que cela serait nettement plus simple d'avoir créer son site à la main.

Un exemple tout bête, pour modifier l'apparence de la page de login de WordPress j'ai dû recourir à du jQuery pour modifier le style css de chaque élément pour apporter mon propre style. Oui, il existe une fonction pour cela mais on ne peut pas tout modifier. Pour des raisons personnelles, j'ai décidé de créer deux sites à la main. Au début j'ai pas mal ramé, car j'ai dû écrire pas mal de fonctions pour me simplifier la vie, mais une fois crées, franchement je trouve que ça marche au poil et ça me facilite plus la vie qu'un CMS.

Alors, je ne sais pas quoi penser vis à vis des CMS surtout quand on cherche à avoir le contrôle sur chaque élément. De plus, il est possible d'optimiser son code pour alléger au maximum le chargement d'une page.

Et vous qu'en pensez-vous ?
Il te manque des infos : Wordpress n'est pas au départ un CMS mais un moteur de blogs qui à été magouillé pour devenir un "presque CMS". Ca n'à jamais été un outil pour les développeurs, mais un script tout prêt à être utilisé par le grand public.
Si tu veux un vrai un CMS pour développeur, ça existe, par exemple Drupal, tu peu voir ça sur le forum de discussion sur les scripts de CMS.
Donc la question est pas "faut il tout réinventer", la réponse est il faut utiliser effectivement un CMS dans plus de 90% des cas que j'ai pu voir, mais la ou tu te trompes (et bien d'autres webmasters amateurs) c'est que Wordpress n'est pas un CMS, et encore moins un CMS pour développeurs.
4  0 
Avatar de Tsilefy
Membre émérite https://www.developpez.com
Le 13/02/2014 à 22:38
Il n'y a pas débat. Le tout c'est de trouver la réponse la plus appropriée à ta problématique. Est-ce que tes besoins peuvent être résolus plus facilement, plus rapidement et avec une meilleure sécurité par un CMS, un framework, des composants ou un code from scratch? Si c'est le cas, il n'y a pas à réflechir, il faut adopter la solution qui convient. Sinon, il faut écrire soi-même ce dont on a besoin.

Le problème tient plus à la difficulté à définir la problématique (parce que le client ne sait pas ce qu'il veut au départ ou change d'avis par exemple) et à la méconnaissance des solutions disponibles. Après, personnellement, si je me mets à la place du client, je ne vais pas payer des heures un développeur pour qu'il me réécrive une fonctionnalité que je peux avoir en 30 secondes avec Packagist/Composer (ou jQuery, etc..), c'est de l'arnaque.
4  1 
Avatar de Spartacusply
Membre expert https://www.developpez.com
Le 14/02/2014 à 10:10
Salut,

déjà pour ma part bien distinguer CMS et framework me paraît être extrêmement important. Ils ne sont absolument pas comparables. Un CMS est conçu dans un objectif précis (comme son nom l'indique, c'est toujours plus ou moins la gestion de contenu) donc en effet si ton projet ne va pas dans ce sens là, il ne m'apparaît pas nécessaire d'en utiliser un, et en devient en effet plus chiant qu'autre chose car tu vas vouloir l'utiliser pour quelque chose qu'il n'est pas censé faire.
A contrario, un framework te fournit des outils de base (en plus ou moins grande quantité), mais avec quoi tu peux normalement faire et développer n'importe quoi et, c'est extrêmement important, tu n'es pas obligé d'utiliser les outils qu'il te propose ! En partant de ce principe là, je ne vois aucune raison de me passer au moins d'un petit framework (CakePhP, CodeIgniter pour php), même en version minimaliste, ne serait-ce que pour avoir des fonctionnalités archi-standard que l'on retrouve sur 99,99% des sites webs (connexion, mise en place d'un back-end, utilisation d'un layout, connexion à une base de données sql, découper proprement du code...).
Rien que cela me paraît être une raison suffisante pour justifier l'utilisation d'un framework.

Mais ne pas oublier dans tous les cas que bien cibler ce que l'on souhaite faire est essentiel !
3  0 
Avatar de Tsilefy
Membre émérite https://www.developpez.com
Le 14/02/2014 à 23:11
Au vu de ton code et du cas que tu cites, tu n'utilises pas de requêtes préparées et tu te sers de md5 pour hasher un mot de passe: ce n'est pas bon. Est que ton espace-membre est protégé contre les injections XSS, le CRSF etc ? Est-ce que tes données sont correcteent validées et filtrées avant l'entrée en base de données?

Un (bon) CMS le fait automatiquement sans que tu t'en soucies. Un (bon) framework ne t'imposera rien, mais t'encouragera à utiliser les bonnes pratiques.

Effectivement, si c'est juste pour apprendre, il n'y a rien de mal à réinventer la roue. Mais dans ce cas il faut suivre les bonnes méthodes de "fabrication" et se méfier de beaucoup de cours en ligne et autres qui parlent surtout d'un PHP d'il y a 5 ans (avant PHP 5.3 notamment). Mais une fois que tu progresseras, tu découvrira 1) qu'il est plus intéressant d'écrire un code avec une valeur ajoutée plutôt que de réécrire des choses qui ont déjà été faites des milliers de fois et 2) qu'il y a des développeurs très forts qui ont consacré un temps fou à développer des CMS ou des frameworks, et que à toi tout seul il y a très peu de chances de faire mieux qu'eux dans le domaine qu'ils ont choisi, et qu'il est mieux de trouver ton propre domaine. Juste un exemple, regarde la plupart des bonnes bibliothèques PHP sur github, la plupart d'entre eux utilisent des composants externes et se concentrent sur leur principal objectif au lieu de réinventer la roue.
3  0 
Avatar de wamania
Rédacteur https://www.developpez.com
Le 17/02/2014 à 14:31
Si on ne réinventait jamais la roue, on aurait des formules 1 avec des roues de char à bœufs !
3  0 
Avatar de ctxnop
Membre chevronné https://www.developpez.com
Le 17/02/2014 à 15:28
Citation Envoyé par Shinja Voir le message
En effet, j'utilise uniquement le MD5 pour protéger le mot de passe
http://thecodinglove.com/post/622558...n-the-database
2  0 
Avatar de crozet.magenta
Membre averti https://www.developpez.com
Le 17/02/2014 à 16:47
Citation Envoyé par jojosbiz Voir le message
Moi je dis non aux framework et plus encore aux CMS.

Une classe pour faire un boulot spécifique par-ci par-là ok (par exemple, je déteste lire des rfc, donc quand quelqu'un l'a fait à ma place, là je prend ), mais le char d'assaut pour tuer un cafard...non merci.

"From scratch", il n'y a que ça de vrai...et surtout quand on fait du php / javascript (ce que je connais le mieux).

L'histoire de "j'économise 10 lignes de code pour être plus productif, c'est super !!!", c'est de la branlette intellectuelle.

Et puis réinventer la roue permet de savoir comment elle fonctionne, et intellectuellement ça fait plaisir et ça entretient le cerveau...et par les temps qui courent ce n'est pas du luxe !!
ce n'est pas tellement les 10 lignes économisées mais aussi le temps économisé et également la facilité pour travailler à plusieurs.
travailler à plusieurs sur un projet from scratch est extrêmement plus complexe que sur un framework. tu as intérêt de bien poser le normes pour que les codes de chacun soient compatibles entre eux. autre chose, comme chacun code à sa manière, si tu fais du from scratch, tu as peu de chance d'avoir un code homogène et donc si tu dois reprendre le code d'un autre, tu vas t'amuser.

pour un projet perso, je dis pas mais pour un travail en groupe, le framework est indispensable

tu dis que c'est bien de réinventer la roue pour voir comment elle fonctionne. là aussi, tu as tout à fait raison, pour ta culture personnelle, effectivement ça va t'apporter beaucoup mais pour le boulot, que crois tu qu'un client va te dire quand tu vas lui présenter un devis à 4 chiffres en justifiant par le fait que tu dois réinventer la roue ?

De même, je te souhaite bien du courage pour faire un site e-commerce avec gestion des stocks, promos, sauvegarde des paniers, liste d'envies, suivi des livraisons....
2  0 
Avatar de Tsilefy
Membre émérite https://www.developpez.com
Le 17/02/2014 à 22:48
Citation Envoyé par jojosbiz Voir le message
Moi je dis non aux framework et plus encore aux CMS.

Une classe pour faire un boulot spécifique par-ci par-là ok (par exemple, je déteste lire des rfc, donc quand quelqu'un l'a fait à ma place, là je prend ), mais le char d'assaut pour tuer un cafard...non merci.

"From scratch", il n'y a que ça de vrai...et surtout quand on fait du php / javascript (ce que je connais le mieux).

L'histoire de "j'économise 10 lignes de code pour être plus productif, c'est super !!!", c'est de la branlette intellectuelle.

Et puis réinventer la roue permet de savoir comment elle fonctionne, et intellectuellement ça fait plaisir et ça entretient le cerveau...et par les temps qui courent ce n'est pas du luxe !!
Est-ce qu'il t'est déjà arrivé de reprendre un projet écrit en spaghetti from scratch par quelqu'un d'autre? C'est là que tu maudis le précédent développeur de ne pas avoir utilisé de framework. Et cela n'a rien à voir avec la qualité du code qu'il a écrit: même si le travail a été bien fait, rien que pour comprendre qui fait quoi il faut au moins une journée à naviguer dans le code, à aller de page en page. Pour modifier ou rajouter une fonctionnalité, on n'est jamais sûr qu'il n'y aura pas de dommages collatéraux et on ne sait pas si on a modifié tout ce qu'il y a à modifier, car il y a des morceaux qui se répètent ou qui son pratiquement similaires. Du coup, la perte de temps est immense.

Tant que c'est le dév initial qui maintient le projet, ok, mais à partir du moment où d'autres personnes interviennent, il faut un minimum de structure.
2  0