[Livre] Programmation Orienté Objet avec PHP 5

ViPHP
ViPHP | 4674 Messages

14 janv. 2008, 15:45

Bonjour à tous :).

Voici ce qui devrait être un gros sujet, et on a besoin de toute l'expérience de PHPFrance et de ses membres (de tout type).
Suite à la proposition de AB et Zeus (et encore certains autres), Sékiltoyai et moi-même sommes d'accord pour rédiger un ouvrage sur la Programmation Orienté Objet avec PHP 5. Le besoin s'en fait sentir suite aux divers réactions réparties sur le forum d'une part, et d'autre part car le PHP 5 est plutôt mal connu. On lui aime sa facilité d'approche, mais on s'arrête toujours aux objets, ce qui est très dommage.
L'objectif que nous (Sékiltoyai et moi-même) nous sommes fixés est de faire un ouvrage plutôt important (genre livre) sur la POO en PHP 5 couvrant le plus large public. L'idée est de considérer le lecteur comme débutant et de le former jusqu'à un niveau proche de professionnel en objet. On ne sait pas encore si on va détailler les parties design pattern et consort (haute programmation orientée objet). Pourquoi pas remarquez. On en débat avec Sékiltoyai. L'ouvrage pourrait également intéresser les niveaux moyens et post-professionnels. Pourquoi pas faire même faire un livre allant jusqu'à des très professionnels, mais on doute avoir le niveau (il faut être franc avec soi-même). Le premier objectif est déjà considérable, on va tenter d'y arriver.

La proposition avait été faite suite à un échange d'idées sur nos cours de POO avec Sékiltoyai. Pour ma part, mes cours ne m'ont rien appris en POO (à part du Java), mais j'ai beaucoup aimé l'approche de la POO faite par ma prof (mon prof étant nul). Je pense que ça pourrait être une source d'inspiration. Je compte également m'inspirer de la documentation PHP, et mon expérience dans le domaine. Concernant Sékiltoyai, j'imagine que c'est un peu la même chose, mais je le laisserai expliquer s'il en a envie ;-).

Hier soir, nous avons élaboré une ébauche d'architecture pour le livre, attention l'URL est amenée à changer — edit : il a changé, voir les modalités en bas —, je le ferais savoir. J'aurais aimé vos avis, des retours, des choses à ajouter etc. Je pense que ce livre devrait refléter le savoir de tout le monde, et pas seulement notre expérience à nous deux. Même si nous le rédigeons, chaque conseil est le bienvenu et sera apprécié (s'il est constructif bien sûr).

Je parle de livre pour éviter de dire ouvrage important. Mais on ne sait pas encore sur quoi on va partir. Nous pensons qu'il est nécessaire de faire un ouvrage important, tout comme il est aussi important de faire un tutorial succinct. Nous ferons sans doute les deux en parallèle.

Je tiens à préciser que nous faisons ça pendant nos temps libres. Comme la majorité des personnes permanentes sur le forum, ce temps est quasi-inexistant. De plus, Sékiltoyai et moi-même sommes dans nos études, ce qui nous prend encore plus de temps (pourtant, il paraît que c'est une belle période la fac, j'en doute pas mais c'est pas reposant cette histoire). On ne peut pas donc pas estimer la date de fin de l'ouvrage. On s'y met le plus vite possible, et on fera le maximum, mais il faudra nous laisser le temps.

En ce qui me concerne, je fais cet ouvrage pour rendre service à la communauté de PHPFrance. Elle m'a aidé dans le passé, et je compte lui rendre de ce qu'elle m'a donné. Ça fait un moment que je voulais faire quelque chose, maintenant ça y est ;-).

Merci pour votre confiance et vos encouragements (et surtout vos futures retours — qui je l'espère seront nombreux — !).


(edit : n'est plus valable) Changements de liens :
le fichier .xml (DocBook) est disponible. J'ai généré le PDF et l'HTML respectifs. Voici le lien : http://hoa-project.net/Book/, ajoutez : Html, Pdf, ou Xml pour avoir les versions correspondantes.
Il n'y a que le sommaire actuellement (18 janv. 2008, 00:09).

Edit du 4 mars 2008 : Nouvel emplacement pour la table des matières : http://hoa-project.net/Perso/Livre/Toc.pdf.
Modifié en dernier par Hywan le 14 mars 2008, 17:14, modifié 8 fois.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 291 Messages

14 janv. 2008, 16:20

Tout d'abord, permet moi de vous féliciter pour l'initiative, c'est la moindre des choses ! =D>

Ensuite, voilà mes premières réactions, à chaud, juste après la lecture du sommaire LaTeXiZé !

1] Juste avant le chap1 (Utilité de la programmation orientée objet) j'aurai bien vu une préface "Pourquoi l'objet ?", qui est, en 2 mots, la question que se pose tout personne qui ne connait pas encore le monde objet.

2] OUI pour les Design Pattern !!

3] Au niveau de "Relations", j'ajouterai la Composition, qui va de paire avec l'Aggrégation

4] Pour ce genre de livres, vous pensez plutôt à prendre une "situation fil rouge" tout le long de l'ouvrage, ou plutôt parler de plusieurs cas d'études pour illustrer des notions ?

Peut-être la communauté pourrait-elle participer en vous aidant à trouver ces fameuses illustrations si besoin ?

5] Y aura-t-il ouverture sur PHP6 ? (En fonction de la date de parution prévue j'imagine ?)


Bonne chance ^O^ !

ViPHP
ViPHP | 1024 Messages

14 janv. 2008, 16:22

salut,

je vois un point important qui n'est pas présent dans le plan :
les tests unitaires

ils font partie de la démarche globale prog objet - bonnes pratiques et sont fort liés à l'objet par exemple :
une bonne méthode fait un seul travail, et un bon test unitaire vérifie que ce travail est effectué.

je peux aider pour approfondir cette partie.

A+

Pascal

Mammouth du PHP | 1885 Messages

14 janv. 2008, 16:28

Les Design pattern sont utilisés pour régler un problème à l'aide d'une solution déjà existante. Une description "plain" sans mise en situation ne serait pas vraiment utile. On reviendrait au point initiale soit avoir plusieurs outils (la POO) sans savoir comment l'appliquer dans une situation donnée.

Peut-être une approche du type:
1) Explication du problème (avec une mise en situation)
2) Solution apportée avec explications (et exemple de code)
3) Explications supplémentaires (si nécessaire)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ViPHP
ViPHP | 4674 Messages

14 janv. 2008, 16:32

@cf357 : Le titre « Utilité de la programmation orientée objet » est plus général que « Pourquoi l'objet ? », il convient mieux à mon sens. Mais ils expriment la même chose. On expliquerait plus ce qu'est un objet dans la partie « 2.1 : Présentation conceptuelle ».
Ok pour les design patterns, c'est noté. Il va falloir qu'on se remette dedans avec Sékiltoyai (bah oui, on ne les connait pas tous par coeur hein ;-)), mais on tentera de le faire si c'est un souhait de votre part. L'ennuie, c'est que les dp peuvent déjà être l'objet d'un livre à eux seul.
Ce que tu appelles composition est ici appelé encapsulation. C'est la même notion, à savoir mettre un objet en attribut d'objet. Je change le nom en : « Composition et encapsulation ».
Je ne comprends pas ton point 4. Je tente d'y répondre : on va se contenter de faire une formation le plus complet possible. On s'aidera d'exemple et d'exercice je pense.
Une ouverture sur PHP 6 ? Pour l'instant, je déteste le chemin que prend PHP 6, alors je doute que ce soit une bonne idée. Et comme je l'ai précisé, on ne connaît pas la date de fin du projet.

@pascaltje : Ok pour les tests unitaires. Je ne connais pas trop cette phase de développement. J'ajoute nos adresses mails ---dans le titre du livre--- (Edit : contactes nous par MP, ce sera plus simple), tu nous envoie tout ça, et on fera le tris.

@Xenon_54 : La partie design patterns posent en effet problème. On va y réfléchir plus profondément avec Sékiltoyai.
Modifié en dernier par Hywan le 14 janv. 2008, 16:41, modifié 2 fois.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1885 Messages

14 janv. 2008, 16:35

Ajout: Pensez à inclure le nom original du Design Pattern dans la description. Avec les traductions française, on a parfois du mal à les associer aux noms originaux. :P
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ViPHP
ViPHP | 4674 Messages

14 janv. 2008, 16:36

Ça roule ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 5924 Messages

14 janv. 2008, 16:52

Pour l'ouvertue sur PHP6, au contraire, je pense que c'est indispensable. PHP6 sort dans peu de temps, il est nécessaire de présenter l'actualité des choses. Il faut avouer que faire un ouvrage sur le PHP5 juste avant le sortie de PHP6 n'est pas forcément idéal, donc ne pas parler du tout de PHP6 serait très mauvais…

ViPHP
ViPHP | 4674 Messages

14 janv. 2008, 16:57

+1. A la limite, on pourrait changer le titre en : Programmation Orientée Objet avec PHP. Et ne pas préciser de version. Car ce qu'on écrira sera valable pour PHP 5 comme pour PHP 6. À part des petits plus (comme les namespaces etc.) seront à ajouter à la fin de l'ouvrage peut être.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 5924 Messages

14 janv. 2008, 16:58

oui

Eléphant du PHP | 291 Messages

14 janv. 2008, 16:58

Ça fait quand même un gros petit plus ! :P

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 janv. 2008, 16:58

Et bien je vous souhaite bonne chance et bon courage. C'est une idée, et qu'elle qu'en soit l'issue, ce sera toujours formateur. Comprendre c'est une chose, (bien) expliquer en est une autre. :)

Par contre je pense que vous aurez déjà suffisament de travail avec tous les concepts objet, si en plus vous partez dans les Design Patterns (alors qu'il existe dèjà des bouquins complets) je pense que ça va être très dur et que vous n'en verrez jamais la fin.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 janv. 2008, 16:59

Ne pas oublier que ce n'est pas parce que PHP6 va sortir qu'il deviendra la référence. Il va se passer du temps avant que PHP6 soit la version courante.

Mais pour un bouquin présentant l'OO PHP, effectivement, une partie PHP6 me semble essentielle.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

14 janv. 2008, 17:05

Ok pour PHP 6.

En effet, comprendre est une chose, expliquer en est une autre. C'est comme ça qu'on s'assure d'avoir compris.

Concernant les dp, peut être aborder les principaux (comme Singleton, Factory, Plugin et d'autres petits du genre), et donner des références solides vers d'autres ouvrages et ressources. Faire un rapide passage sur MVC plus expliquer ce que c'est, et introduire les frameworks (comme ZF, Hoa — j'aurais essayé ;-) — etc.). Est-ce qu'on traite le sujet partiellement pour une ouverture ? On ne traite pas le sujet du tout ? Àmha, ce serait un manque terrible. On traite le sujet complètement ? Un travail de titan.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 291 Messages

14 janv. 2008, 17:12

Dur choix en effet...

A mon avis, ne pas les aborder serait une erreur pour livre tel que le votre, du moins à en croire ton premier post.

Aborder les principaux en expliquant leur intérêt réel (singleton pour une seule instance de BDD, MVC pour comprendre les FMWK...) serait un + non-négligeable. Ça évitera à l'acheteur de votre livre de devoir se procurer un second livre (qui sont nombreux et pas tous aussi bons les uns que les autres...) et ça permettra également que les personnes avec "bon niveau PHP" qui codent déjà en objet d'en apprendre +...

Tous les aborder, et tous les expliquer, comme tu dis, c'est du travail de titan... Une "URLographie" à la fin, avec une breve description de tous les DP non abordé me semble un bon choix (avis personnel).

Pour récapituler :

Design Patterns
Les Principaux
* Singleton : explication, situation, modelisation, code....
* Factory et 2/3 autres très utilisés: idem
* MVC : idem

Les Autres :
* SingletonA : breve explication, URL/livre associée
* SingletonB : pareil
* SingletonC : pareil
* etc...