Question

Je suis un développeur par passe-temps, ce qui signifie que je le fais à côté et que je ne le fais pas trop souvent. J'ai lu de temps en temps sur les frameworks d'applications Web et j'ai cherché entre CakePHP et CodeIgniter. J'ai finalement décidé de plonger plus loin dans CakePHP car il semblait être plus dans ma ruelle.

Le problème est que plus j'y plonge, plus je ne comprends pas pourquoi j'utilise le framework. Alors, les développeurs expérimentés, discutez avec moi ou aidez-moi à comprendre ce qui suit:

Je comprends que dans le long terme, les frameworks d'application sont là pour aider à déployer du code plus rapidement ou à écrire du code plus rapidement. Cependant, une limitation de ces cadres est-il compréhensible par le fait que vous devez coder selon les normes du cadre? Plus j'essaye d'utiliser CakePHP, c'est presque comme si je devais apprendre le langage / les standards du framework en plus du langage de programmation actuel. Par exemple, je dois apprendre les standards de CakePHP et les moyens d'implémenter un déploiement et une interprétation "plus rapides" mais j'essaye aussi de coder selon les standards PHP (qui sont quelque peu intégrés à CakePHP), mais dans l'ensemble, c'est ce que je vois. Pour moi, c'est un peu de surcharge, mais si vous connaissez CakePHP ou votre framework de choix, ce n'est rien, car vous savez probablement comment coder sur votre framework?

L'autre question ou discussion est, en tant que développeur à part et personne qui aime l'approche MVC, mais ne sait pas vraiment comment l'implémenter avec un framework, serait la meilleure approche pour coder de la même manière que moi ( via un fichier de fonction), créer mes propres fonctions, etc., mais aussi utiliser les techniques MVC? Ce que je veux dire par là, c'est qu'au lieu d'apprendre un cadre d'application, devrais-je séparer les styles de contenu des fonctions, etc. comme MVC fonctionne, mais utiliser mes propres fonctions, ou devrais-je apprendre un cadre d'application.

Remarque: il se peut que je ne parle pas correctement du cadre d'application, mais je n'en suis pas sûr. De plus, c'était censé être une discussion et non une diatribe; Je ne sais pas ce que je ne sais pas, alors je demande en fait des éclaircissements.

Merci!

Était-ce utile?

La solution

Je pense qu'il y a quelque chose à retenir ici: pour être productif sur quelque chose grâce à un outil, vous devez d'abord apprendre à utiliser l'outil. Vous savez marcher et vous pouvez vous rendre du point A au point B en une heure. Si vous voulez vous y rendre plus rapidement, vous devez apprendre à conduire, et ces journées passées à apprendre à conduire auraient pu être utilisées pour marcher. Mais une fois que vous savez conduire, vous êtes nettement plus efficace.

C'est comme ça avec les frameworks - la voiture est le framework.

Avec les frameworks dans leur ensemble, ils sont utilisés pour faciliter et accélérer le processus de développement. Pour appliquer le principe DRY , pour vous donner des outils de base robustes (traitement de texte, gestion des entrées, validation de formulaire , gestion des courriels et des sessions, etc.) afin que vous puissiez y travailler tout de suite, pour vous empêcher de réinventer la roue. Je n'avais pas l'habitude d'utiliser un framework, mais une fois que j'ai compris, c'est quelque chose que je ne peux pas lâcher, d'après mon expérience.

Je ne pense pas que ce soit une limitation (puisqu'ils sont extensibles), je pense que c'est plutôt un "standard personnel" - une façon dont ces applications étaient censées être écrites, comme vous l'auriez fait lorsque vous créez votre propres bibliothèques. Une fois que vous connaissez et aimez votre framework, cette surcharge disparaît comme par magie.

À propos du MVC, je n'utiliserais pas le mot "devrait", mais c'est définitivement un bon choix, quoi que vous fassiez - si vous utilisez un framework, super, et si vous ne le faites pas, mais vous séparez les affaires logique du contenu, super! Tout est question de vous sentir à l'aise. La même chose se produit avec Grid Frameworks, les réinitialisations CSS, l'utilisation de bibliothèques, etc. - c'est une question de choix. Quel est le mien? Utilisez ces outils car ils sont là pour que vous puissiez les utiliser et créer des applications et des sites Web robustes. Ils ont été testés maintes et maintes fois, ils fonctionnent et ils vous aident à ne pas vous répéter ou à ne pas réinventer la roue (ce qui a été fait mille fois). MVC est également idéal pour l'évolutivité et la maintenance.

Ma recommandation est d'apprendre le cadre. Il y a une raison pour laquelle vous avez choisi Cake plutôt que Codeigniter (je ne sais pas pourquoi, cependant - Utilisateur de Codeigniter ici!), Alors tenez-vous-en, et travaillez avec pendant un moment. Ils sont tous puissants, mais le plein potentiel n'est pas totalement visible dès le début.

Aussi, une dernière chose: puisque toutes les applications ont des utilisations ponctuelles, vous créerez toujours vos bibliothèques, quoi qu'il arrive, et ces frameworks facilitent grandement leur création, leur utilisation et leur maintien. Ainsi, vous pouvez avoir un mélange de tous, avec toute la puissance backend d'un framework.

Continuez à essayer - vous ne le regretterez pas!

Mes deux cents, cependant.

Autres conseils

Les principes de MVC sont généralement appliqués en utilisant la programmation orientée objet, mais il est tout à fait possible pour vous d'utiliser les concepts en utilisant la programmation procédurale. C'est ainsi que fonctionne la majeure partie de Drupal.

J'ai utilisé quelques frameworks différents et aussi écrit le mien. Je préfère utiliser le mien pour le contrôle complet de la conception et de la mise en œuvre. Je l'ai également écrit de manière à pouvoir utiliser le code de base dans de nombreux projets. J'en ai également besoin pour un projet en cours pour des problèmes de propriété des droits d'auteur.

Un groupe de développeurs où je travaille utilise CodeIgniter et jure de l'acheter, je ne l'ai utilisé que pour tromper et je n'ai jamais créé de sites avec. Mais je le préfère à CakePHP. En apprenant à utiliser CakePHP, j'ai beaucoup étudié le code de base pour comprendre comment faire certaines choses et j'ai décidé que je ne voulais pas de tous ces frais généraux, même pour les requêtes les plus simples.

Le faire soi-même est une excellente expérience d'apprentissage. Beaucoup de gens pensent que cela devrait rester une expérience d'apprentissage et ne pas être utilisé pour le monde réel, mais je ne suis pas d'accord. Les cadres généraux sont parfaits pour le prototypage rapide, mais je préfère personnellement plus de contrôle sur le système. Il existe d'autres frameworks MVC, peut-être aussi les regarder.

Je ne suis pas toujours d'accord avec les discussions que font certains concepteurs de frameworks, mais vous devriez au moins savoir pourquoi ils l'ont fait de cette façon car cela vous apprendra des choses.

Il n'y a rien de «mal» à le faire en utilisant des fonctions, mais en tant que quelqu'un qui vient (l'année dernière) de passer la programmation procédurale PHP à PHP OOP; La POO est la voie à suivre. Je suppose que je devrais mentionner que je ne suis pas nouveau en POO, juste en PHP. Mais ce n’était toujours pas difficile à apprendre.

La quantité de code que je réutilise ainsi que la simplicité de création de nouvelles pages valaient le temps nécessaire pour mettre les nouveaux éléments à la hauteur de mes anciennes méthodes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top