Annonces
Question aléatoire
Livre d'or

Par VB_Godfather

Bonsoir,

j'ai installer parfaitement le CMS PHPBoost et je le trouve vraiment intéressant et puissant.
mais j'ai une demande a vous faire, et c'es [Suite...]

Livre d'or

Mini sondage
Etes-vous satisfait du support PHPBoost ?










Résultats

 
   Le 26/09/10 à 15h51 Citer      

Booster Missile

Groupe: Membre

Sexe:
Inscrit le: 26/09/10
Messages: 1308
En parcourant les sources des scripts d'installation, je découvre les façons de coder proposé pour la future version. Comme je suis curieux je m'interroge sur certains choix :

1/ je me rends compte qu'un choix paraît avoir été fait entre utiliser des méthodes statiques par rapport à la construction d'objet (singleton).
Ainsi Environnement et AppContext sont essentiellement des espaces de nommages de fonction statiques. Comme des helpers dans d'autres applications.

La règle est-elle établie ? si oui, pourrait on en avoir les grandes lignes ?

2/ Ce serait bien d'étendre les conventions de nommage et par exemple de mettre la lettre I au début de chaque script de définition d'interface. C'est ensuite plus clair lorsqu'on liste les scripts dans les répertoires.

3/ Comment est pensée l'arborescence des objets ? De mon expérience ailleurs, il y a un ou deux objets primaires dont descendent tous les autres. Avez vous explorer cette possibilité ? Elle est intéressante à mettre en place au début car elle participe ensuite à l'évolutivité des classes. Mais cela charge peut-être trop le système.

4/ Prévoit-on de laisser aux utilisateurs la possibilité de surcharger des classes du noyau ? Cela impacte le codage du noyau mais apporte une flexibilité extraordinaire ensuite pour les utilisateurs.

Je suis dans la démarche de faire partager mon retour d'expérience dans l'utilisation d'autres applications en PHP5 et faire des propositions pour PBT, en regard de ce que j'ai rencontré ailleurs et qui mérite attention.

Et plus concrètement, Je vous sollicite pour revenir dans une équipe dév.



Edité par Visiteur Le 26/09/10 à 16h18
____________________
Le pessimisme est d'humeur. L'optimisme est de volonté (Philosophe Alain).

pm    
   Le 26/09/10 à 16h57 Citer      

Administrateur

Equipe historique

Sexe:
Inscrit le: 04/08/05
Messages: 11001
Lieu: Aix en Provence
1. Au début du passage en objet, on a pas franchement tranché et le développement s'est fait petit à petit selon les gouts de chacun.
Depuis on a décidé : sauf cas particulier, on doit toujours faire des singletons, même si pour l'instant ça ne se voit pas encore franchement (on n'a pas fini de tout reprendre). La raison est simple : dans les tests unitaires, on ne peut pas changer le comportement si on passe par des méthodes statiques, alors que si il s'agit de singletons on peut utiliser de faux objets (mocks) qui permettent de simplifier grandement l'écriture des tests. Si tu veux plus de détails, n'hésite pas à demander.

2. Pour ce qui est de la lettre I devant les interface, je suis contre, et je pense que je ne suis pas le seul. Cette règle est appliquée dans certains projets et pas dans d'autres. Je sais par exemple que le code d'Eclipse (en Java) suit cette convention, et c'est un projet significatif (en réalité la tendance globale est assez mitigée). J'ai également bossé dans une boite où c'était la convention, mais personnellement j'y suis opposé, car une interface est un type comme un autre, et il n'y a pas lieu de le préciser. De plus, avec les IDE d'aujourd'hui, il est très facile de savoir si un type est une interface ou non quand on en a besoin. Voilà mon avis.

3. J'avoue que je n'en vois pas l'intérêt. Par contre j'y vois des inconvénients : quand on écrit une classe, il faut penser à lui mettre l'objet racine comme parent (si elle n'a pas d'autre parent), ça complexifie pas mal l'arbre d'héritage, et puis en terme de performances, ça fait perdre un peu de temps, même si je pense que c'est négligeable.
Si tu y vois des raisons intéressantes, je suis prêt à aborder la question, mais pour l'instant je n'en vois pas l'intérêt.

4. Je ne suis pas sûr de comprendre ce que tu veux dire. Tu peux bien sûr hériter de classes du noyau pour pouvoir leur appliquer un comportement particulier lorsque tu les utilises. Par contre, tu ne peux pas faire en sorte que toute l'application utilise systématiquement ta classe plutôt que celle du noyau (c'est peut-être à ça que tu fais allusion). Ca me semble compliqué à gérer et puis ça pose la problématique de conflits (comment on fait si on a 3 modules qui fournissent la même classe ?). Pour contourner ce problème, on peut envisager de passer par l'extension point provider qui peut justement servir à ça, à condition que l'endroit en question fasse appel à un extension point pour obtenir l'objet dont il a besoin.

Quant à ta proposition de reprendre la contribution, je ne suis pas contre, mais ça sera avec notre framework, en envisageant pourquoi pas des discussions comme tu viens de le faire. Si tu es prêt pour cela, je le suis aussi.
____________________
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++:
"There are two ways to write error-free programs; only the third works."

pm ben.popeye@phpboost.com http://www.phpboost.com    
   Le 26/09/10 à 19h21 Citer      

Booster Missile

Groupe: Membre

Sexe:
Inscrit le: 26/09/10
Messages: 1308
Il est bien entendu que ma contribution s'inscrit dans le cadre des décisions prises.

Je ne désespère pas de faire passer quelques propositions mais pas de révolution.

Je vais regarder dans la TODO list pour me raccrocher à l'équipe.

2/ De mon coté j'assimile les interfaces à des classes abstraites. Elles sont mises en application dans d'autres objets. Voila pourquoi je soumettais l'idée d'une convention de nommage.
Je suis pas sous Eclipse et donc ne profite pas de ces fonctionnalités de cet éditeur.

3/ l'idée est essentiellement lors de la décision de positionner une méthode. En ayant une arborescence complète on peut ensuite envisager de placer ou réorganiser des méthodes à tous les niveaux du noyau.

4/ mon commentaire était effectivement dans le cadre d'une classe qui remplacerait ou modifierait le comportement de celle du noyau. Mais cela me parait moins important que le point 3.


J'ai remarqué que mes anciens posts étaient conservés. Est-il possible par une manip d'admin sous bdd d'attribuer le numéro de l'époque ?



Edité par Visiteur Le 26/09/10 à 19h38
____________________
Le pessimisme est d'humeur. L'optimisme est de volonté (Philosophe Alain).

pm    
   Le 26/09/10 à 19h54 Citer      

Administrateur

Equipe historique

Sexe:
Inscrit le: 04/08/05
Messages: 11001
Lieu: Aix en Provence
Pour le point 3, tu as un exemple de méthode concernée par une telle généralisation ? Moi je n'en vois pas et pour l'instant on n'est pas tombés sur des cas où ça nous a manqué.
Il y a pas mal de frameworks qui le font, je pense par exemple à Qt (bibliothèque graphique en C++ chez qui tout est QObject). En Java, ça existe aussi et c'est implicite : tout hérite d'Object même si on ne le précise pas. Mais le modèle objet de PHP n'est pas structuré comme cela et les méthodes de Object en Java ne me semblent pas nécessaires en PHP.
____________________
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++:
"There are two ways to write error-free programs; only the third works."

pm ben.popeye@phpboost.com http://www.phpboost.com    
   Le 26/09/10 à 20h08 Citer      

Administrateur

Equipe historique

Sexe:
Inscrit le: 17/06/05
Messages: 7621
Lieu: Apt / Marseille
J'ai transféré ton numéro de membre sur l'ancien et fusionné tes posts actuels avec ton ancien compte. Bon retour dans l'équipe :)
____________________
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!

pm crowkait@phpboost.com http://www.phpboost.com    
   Le 26/09/10 à 21h44 Citer      

Booster Missile

Groupe: Membre

Sexe:
Inscrit le: 26/09/10
Messages: 1308

@Crowkait
Merci pour la restauration


@ben.popeye

3/ pas d'idée précise maintenant. Cela pourrait venir en trempant dans la nouvelle organisation des classes. C'était en anticipation, au cas ou.



Edité par alain91 Le 26/09/10 à 21h48
____________________
Le pessimisme est d'humeur. L'optimisme est de volonté (Philosophe Alain).

pm    
Visiteur
   Le 26/09/10 à 22h28 Citer      

Boosteur Inactif

Groupe: Visiteur



Couette... heuu Chouette chouette chouette :D

   
   Le 27/09/10 à 07h24 Citer      

Booster Fusée

Groupe: Membre

Sexe:
Inscrit le: 21/05/06
Messages: 5050
Lieu: Clairegoutte (7...
swan:
Couette... heuu Chouette chouette chouette :D

:top

Bon retour dans l'équipe Alain :)
   Le 27/09/10 à 14h10 Citer      

Booster Missile

Groupe: Membre

Sexe:
Inscrit le: 29/09/08
Messages: 1298
Lieu: Grenoble (38)
Enfin une équipe soudée et un avenir prometteur pour PHPBoost. ;)
____________________
Gérez vos comptes bancaires de façon simple et efficace avec BanqueManager 2012


Téléchargement gratuit ici
--------------------------------------------------------------------------------

pm http://www.banquemanager.net    
1 Utilisateur en ligne :: 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne: Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
Annonces