Moi j'aurais tendance à créer une classe pour la manipulation des tableaux : http://www.grafikart.fr/tutoriels/php/poo-collection-php-523
Ce qui du coup te permettrait d'alléger ton code au niveau du constructeur
Salut les grafikos,
Pardonner moi si cette question à déjà été posé c'est mon pemier post ici. J'ai bien cherche et pas trouvé de réponse. Et finalement c'est plus votre avis qui m'interesse.
J'ai pas d'exemple professionnel pour codé ni de prétention a le devenir, juste moultes tutoriaux ecumé durant ces 11 dernières années, et une passion grandissante pour le webdev.
Actuellement je dévelloppe une application pour mon entreprise.
Et je me retrouve à codé un objet (model) qui aujourd'hui fait 1187 lignes.
C'est ici ma première question : 1187 lignes pour un objet ? Sa vous arrive ou ai-je peut être abusé quelque part ?
Du coup je commence serieusement a me posé des questions sur la clareter du code ayant gouter depuis peut à l'organisation M.V.C.
Je sait pas trop si vous aller comprendre la ou je veut en venir.
Autre question qui fait suite à la première : Je me retrouve avec une method qui parcours un tableau dans un fetchAll puis qui trie les elements dont j'ai besoin par un foreach et les stocks dans des tableaux différents. Et ce repeter 3 fois dans un for (A mes yeux sa commence a faire crade comme code mais j'ai pas trouvé plus optimisé a mon niveau)
Ce qui me fait une method de 110 lignes avec moulte if 1for 2foreach (si le premier n'a pas fonctionner c'est le suivant qui fait sont affaire)
ce qui fait 3 foreach pour le model et 3 pour le view (rien que pour afficher la page)
Aujourd'hui je me dit qu'il serait peut etre plus lisible de faire d'autres method pour diviser ce code et l'aérer, mais dans ce cas ça serait moin optimisé (augmenterai le nombre de for et foreach)
Comment vous organisez vous fasse a ce genre de dilemme ? L'optimisation est plus important fasse a la lisibilité ?
Est-ce que je me prend le chou pour rien ?
Parce que le code parle mieu que ce grand texte, je vous met la method en question
Si vous avez tenu jusqu'ici Chapeau... Et merci pour votre interet.
4 réponses
Arhem... 1187 lignes pour une class, ce n'est pas complètement abusé, mais le constructeur m'a l'air un peu gros ^^
Il est vrai que le constructeur etait pas mal.
Une petite cure lui à fait un bon coup de vide surtout en utilisant la class pour manipuler les tableaux (Merci le Raton Laveur ;) qui ma obliger a revoir le code.
Refactering est le bon mot pour désigner ce que tu dois faire. Met toi à ma place qui dit ton code, toutes les conditionnelles que je dois comprendre. Ton constructeur pourrait être assurément mieux. Prenons quelques minutes pour traiter une conditionnel...
Bon, première chose quand je vois ce que. Je lis les commentaires pour comprendre ce que ça fait. Le problème c'est que je te fait confiance sur ce que tu me dis ce que la conditionnelle vérifie exactement, le code ne parle pas.
Je viens de modularisé une seule conditionnel, nous permettant de retirer le commentaire, pour une méthode sans ambiguité.
Continuons...
Voilà, on a refactoriser toutes nos conditionnelles. On pourrait faire quelques d'autre afin de simplifier ce que nous avons refactorisé. En faitm l'idée c'est de donner un nom à ce que ça fait.
Vous comprendrez que le français nous offre aucune ambiguité à ce niveau. Après, si vous êtes bon en anglais, vous êtes libre de faire la même chose en anglais. N'hésitez pas à créer des variables significatives, ce que j'ai omis de faire plus haut. (le franglais c'est pas top... :D)
Bonne chance,
Ramz.