J'hésite à me mettre au MVC (Pour PHP).
Donc c'est pourquoi je vous pose ces questions :
Est-il juste utile pour bien organiser son code ou dans un but particulier ?
Et est-il important pour un dev de connaître MVC ou ce n'est pas grave de coder uniquement en spaguettis.
Le MVC c'est la base de tous developpeur qui se respecte. Ca permet de decouper correctement sont code et avoir un maintenabilité du code accrue. TOUS les gros Framework PHP sont en MVC c'est qu'il y as une raison. Le code spaghetti c'est bien pour les apprendre, quand on veut passer a un niveau professionel on est obligé pour avoir un minimum de crédibilité de developper avec des patterns du type MVC
Salut,
Oui je pense qu'apprendre les bases de l'archi MVC (notamment en PHP) est obligatoire. Et ce pour beaucoup de raisons (orga de code, perfs etc), et sourtout parce que la plupart des Frameworks PHP modernes implétentent ce design pattern :)
Je t'invite à regarder la formation POO de @Grafikart (si ce n'est pas déjà fait) qui est très complète, et aussi de faire la série de tutos sur l'implémentation d'un site via MVC, ça t'aidera beaucoup à appréhender les mécanismes :)
Ah, et tu te rendra vite compte que c'est tellement plus agréable à coder de cette façon ! :)
@BetaWeb Tu dis que utiliser l'archi MVC est bien niveau perf. Peux-tu m'en dire d'avantage please :D ?
@mika445 Je pense que pas qu'apprendre le design pattern MVC soit un priorité.
Je t'invite, tout comme mon "ami" betaWeb te l'a conseillé, d'apprendre la POO ou Pragrammation Orientée Objet. Ce sera beaucoup plus utile et simple que d'étudier ce design pattern, car, personellement je ne le trouve plus très utile, mais c'est un autre débat.
Je me permet juste de te faire remarquer qu'il est possible, certes très fastidieux, de faire du MVC avec du code spaghetti.
Je vais juste réagir à ce que Defy à dit, car je ne suis pas vraiment d'accord :
Le MVC c'est la base de tous developpeur qui se respecte [...] Le code spaghetti c'est bien pour les apprendre, quand on veut passer a un niveau professionel on est obligé pour avoir un minimum de crédibilité de developper avec des patterns du type MVC.
Ne confonds pas POO et MVC. C'est deux choses totallement différente. Mais surtout, ce n'est absolument pas vrai que l'on est pas crédible si l'on utilise pas de MVC. Là où je travaille nous n'utilisons pas ce design pattern, est-ce pour cela que nous sommes moins crédibles ? Et bien non, mais si j'en crois tes mots, on ne doit pas se respecter (sans offense).
Et est-il important pour un dev de connaître MVC
NON ! Mais ça reste un plus, car beaucoup de framework actuels se base sur ce design pattern.
ce n'est pas grave de coder uniquement en spaguettis
C'est pas top. Il faut bien te rendre compte que BEAUCOUP d'entreprise utilise encore du procédural et du code qui date d'avant l'orienté objet. Mais ce n'est pas pour ça que c'est une bonne chose.
Donc, ce n'est pas grave, mais ce n'est plus conseillé, car cela rend le code très complexe à faire évoluer. (betaWeb sais de quoi je parle: vive le legacy).
Donc pour résumé toute ma tartine : En priorité, oriente toi vers l'apprentissage de l'OO (Orientée Objet), et ensuite renseigne toi sur les différents design pattern, dont MVC.
PS : Comme dit plus haut, utilisé ou non le MVC dans le dev est un tout autre débat, je demande donc de ne pas réagir par rapport au fait que je ne le trouve pas utile, merci :)
D'après ce que j'ai compris parmis tout vos posts :
Pour un être un bon dev (Même si un bon dev n'existe pas vraiment vu qu'on aura toujours quelque chose à apprendre. Bref..)
On ne doit pas nécessairement utiliser MVC.. C'est un plus dans le cas où on coderait avec des frameworks.
En terme d'utilité, toujours en me basant sur ce que j'ai lu sur internet, et en piochant dans tout ce que vous avez tous dit.
Je trouve que ça peut être pratique dans le cas où on dev sur une très longue durée histoire de reprendre le code plusieurs semaine après sans être perdu.
Aussi pour codé à plusieurs..
Par contre au niveau de la POO en gros (reprenez moi si je me trompe) c'est une nouvelle syntaxe.
Un truc un peu plus évolué (Je pense par exemple aux nouvelles manière de se connecter à la bdd, prepare et execute au lieu de mysql_connect etc..)
En tout cas merci pour vos réponse. J'y vois un peu plus clair.
Donc je pense qu'au final apprendre l'MVC fait partie des "skills" d'un développeur même si ce n'est pas (plus) très utilisé.
Mais je trouve également intéressant d'avoir les avis de chacun ^^.
Salut,
Selon moi :
Est-ce qu'un bon dev doit connaître le pattern MVC ? Oui.
Est-ce qu'un bon dev doit utiliser le pattern MVC ? Non, il n'y est pas forcé.
Comme d'autres l'ont dit, c'est très utilisé (dans le sens 90% des frameworks, voir plus), ce qui explique, selon moi, pourquoi il faut le connaître : il faut pouvoir comprendre le principe et pourquoi la majorité l'utilise.
Maintenant, tu n'es absolument pas forcé de l'utiliser, si tu trouve un moyen/un groupe de moyens plus efficace pour faire respecter tout les accronymes qui ont fait leurs preuves (DRY, KISS, SOLID, etc), utilise le ! Si tu n'essayes pas le MVC pattern et qu'un jour quelqu'un te demande pourquoi, tu ne sauras pas répondre.
Je donnerais à peu près la même réponse pour la POO (connaître : oui, utiliser : pas forcé). Après, il n'y a pas beaucoup d'alternatives valables, et j'aimerai bien entendre les arguments d'une personne qui est retourné au procédural après avoir expérimenté avec la POO.
http://php.net/manual/fr/function.mysql-connect.php
Avertissement
Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :
mysqli_connect()
PDO::__construct()
@tieb, il n'y a pas que la POO vs le procédural. Il y a la programmation fonctionnelle aussi.
Personnellement je l'utilise plus pour améliorer mon code POO mais elle peut être utilisée à part entière.
@prbaron tout à fait d'accord, et il y a aussi la POA (Programmation Orientée Aspect) qui est intéressante :)
D'accord, en faite on m'avais dit que mysqli n'était plus très actuel (Je ne citerais pas le forum).
@mika445 mysqli n'est plus très actuel, mais il fait le taf. Perso j'utilise PDO car je préfère la synthaxe objet et puis il est plus complet et sécure :)
Je crois que c'était surtout pour la sécuriter qu'on m'avait dit ça ^^.. Après PDO ou (je ne sais pas comment appeler cette syntaxe. La syntaxe avec mysqli on va dire) c'est qu'une préférence.. Comme tu dis tant que ça fais le taff, c'est bien pour ne pas se prendre la tête quand on fait des tests.
Un petit truc personnel, avant de parler de MVC, entre les spaghétis et le MVC qui n'est au final pas grand chose, il y as surtout le devellopement orienté object je penses ! après le mvc est simplisime, mais il n'est qu'un des design possible .... car après tu vas avoir le model vue controller en framework et sans .... et tout le monde ne push pas des datas à la vue de façon irrémédiable ... enfin as en voir les projets en multidev que j'ais depuis quelque années ... personnelement je dev plus du controller vue que du mvc mais ca m'arrive de passer par du model. chaqun sont choix ....
En informatique, et plus particulièrement en développement logiciel, un patron de conception (plus souvent appelé design pattern) est un arrangement caractéristique de modules, reconnu comme bonne pratique en réponse à un problème de conception d'un logiciel. Il décrit une solution standard, utilisable dans la conception de différents logiciels.
https://fr.wikipedia.org/wiki/Patron_de_conception
C'est important de comprendre ça.
@Joffrey Tournier A mon boulot, j'utilise (snif) un framework qu'ils ont développé basé sur le principe de "controller <--> vue" bah c'est bien pourri, les contrôleurs font 15000 lignes (et je n'exagère pas) c'est une horreur.
Tout dépend de la taille des projets, un moment il faut savoir refactorisé correctement et compartimenté le code, quit a changer la logique de l'emsemble, sinon c'est vite inbuvable c'est sûr, et également indébugable ! enfin ce n'est que mon avis ...
J'ai une formation de webdesigner et quand j'ai commencé à bosser, moi c était que du html, css, js et php de base, procédural, ... J'ai du très vite apprendre à développer correctement (petite boite donc on doit savoir quasi tout faire tout en ayant des spécialisations) et là j'ai appris Laravel hé bien je ne saurais plus m'en passer, que ce soit laravel, symphony, ... les MVC ça change la vie. Milles fois plus simples pour bosser, plus structuré, ... bref oui si tu veux être développeur il faut apprendre les MVC et la POO qui va de soit avec les MVC (je dis ça car j'en ai vu des qui font que du procédural ... même si ça fonctionne, c'est pas le must). Au passage les MVC se ressemblent tous dans la logique de fonctionnement, chaqu'un on leur spécificités donc focalise toi sur un voir max 2 frameworks tels que symphony et laravel qui sont quasi les premiers sur le marché et ce qui est demandé par les employeurs quasi et n'essayent pas de tous les connaitres :)