2009-11-27 14 views
3

Désolé pour la question plutôt subjective, mais j'espérais obtenir une opinion de quelqu'un de plus expérimenté que moi à ce sujet. Je suis assez loin dans une application PHP pilotée par ajax et, même si j'ai une assez bonne séparation entre le balisage et le comportement du côté client, mon PHP devient un peu désordonné. Je me débrouille assez bien pour le découper en morceaux et le structurer de telle sorte que je n'ai pas trop de répétitions, mais je commence vraiment à voir comment cela peut devenir un fardeau avec assez de code. J'ai donc lu sur OOP et MVC et maintenant j'essaie de décider s'il vaut la peine de refactoring pour CodeIgniter ou Kohana. Intuitivement, j'ai l'impression que cela ferait plus de travail que ça en vaut la peine, mais je sais que je pourrais chanter un air différent dans un petit moment. Selon votre expérience, est-il considéré comme absolument hackish d'écrire une application sérieuse sur le plan procédural aujourd'hui ou existe-t-il certains types d'applications qui se prêtent mieux à la programmation procédurale/structurelle?Est-il jamais justifié d'écrire une application PHP assez grande, centrée sur la base de données, de façon procédurale et sans MVC?

Répondre

7

MVC et OOP sont juste des "moyens", entre autres. Oui, ils sont géniaux, facilitent la bonne struturation du code, et sont beaucoup utilisés, mais ils ne sont pas la seule façon de développer une application. Par exemple, Drupal n'utilise aucun type de code orienté objet: tout est procédural ... Et c'est une grande application, qui a beaucoup de succès, qui est utilisée par de nombreuses personnes, même sur les grands sites, et pour que beaucoup de gens ont développé beaucoup de modules ... même si ça n'utilise presque pas de classe/objet! Personnellement, j'irais avec MVC et/ou OOP pour presque n'importe quel type de nouvelle application; juste parce que je connais ceux-ci et ils sont utiles - mais ils ne sont pas nécessaires quand il s'agit de développer une application géniale: ils aident, mais vous pouvez toujours avoir du code si vous ne vous comportez pas ^^

+0

+1 pour le point de vue ouvert! – RageZ

+0

Merci. Je pense que c'est ce que j'avais besoin d'entendre avant de tout foirer dans une tentative mal orientée pour l'améliorer. Le prochain projet que je commence, je vais certainement donner une chance à OOP, mais je pense que j'ai fait tellement de choses avec une approche différente qu'il serait contre-productif de tout casser et de recommencer à ce point. – Greg

+0

@RageZ: merci ;; @Greg: si vous avez une énorme base de code existante, ne pas le pirater pour * essayer * de faire les choses mieux est probablement mieux - du moins en parlant de court terme (et cela ne vous empêche pas d'utiliser la POO dans certains cas nouvelles parties de votre application, si nécessaire) –

1

Je ne me souviens pas de la dernière fois que j'ai vu une application importante et sérieuse qui était entièrement dans un paradigme de programmation, même POO. (C'est-à-dire, si "orienté objet" était une seule chose uniforme.)

Je ne m'inquiéterais pas du tout si un programme n'utilisait pas la POO, mais je serais un peu inquiet s'il n'utilisait qu'un seul paradigme. (Je serais probablement plus méfiant s'il n'utilisait pas du tout la programmation fonctionnelle.) Aucune grande tâche n'est entièrement homogène, donc si vous essayez d'utiliser un paradigme pour un programme entier, c'est probablement un bon ajustement dans certains domaines et un mauvais ajustement chez les autres.

+0

Je ne suis pas un très bon programmeur, pour être honnête, mais je voudrais penser que je suis un apprenti rapide et J'essaie d'assimiler toute approche intelligente que je rencontre. Jusqu'à présent, c'était une sorte de "programmation improvisée". :) Ce qui, je suppose, est une bonne façon de dire que je ne sais pas ce que je fais - mais ça commence à se focaliser au fur et à mesure que j'essaie par erreur, ce qui marche le mieux quand et où j'ai besoin être cohérent et organiser. J'apprends. Ça a été beaucoup d'aide. – Greg