Le 31/03/2010 13:28, Pascal a écrit :Pas d'héritage multiple avec PHP
Ok, donc ça existe. Le contraire me semblait étrange.
Après, me débrouiller avec ce que j'ai, c'est simple. Mais j'aurais
voulu faire plus conventionnel pour apprendre. PHP5 ne le permettant
pas, on va faire du copier/coller.
Le 31/03/2010 13:28, Pascal a écrit :
Pas d'héritage multiple avec PHP
Ok, donc ça existe. Le contraire me semblait étrange.
Après, me débrouiller avec ce que j'ai, c'est simple. Mais j'aurais
voulu faire plus conventionnel pour apprendre. PHP5 ne le permettant
pas, on va faire du copier/coller.
Le 31/03/2010 13:28, Pascal a écrit :Pas d'héritage multiple avec PHP
Ok, donc ça existe. Le contraire me semblait étrange.
Après, me débrouiller avec ce que j'ai, c'est simple. Mais j'aurais
voulu faire plus conventionnel pour apprendre. PHP5 ne le permettant
pas, on va faire du copier/coller.
Olivier Masson a écrit :Le 31/03/2010 13:28, Bruno Desthuilliers a écrit :Problème de conception assez courant hélas consistant à abuser de
l'héritage au lieu de réfléchir. Après, sans connaître le contexte, pas
moyen de dire quelle serait la bonne solution, mais à vue de nez on
pourrait penser aux patterns "décorateur" et "stratégie".
Bien entendu, j'ignore ce que sont ces patterns.
C'est relativement documenté sur le net.
Le pattern stratégie consiste à déléguer une partie déterminée du
comportement à un autre objet (ou à une fonction de rappel pour ce que
ça vaut), généralement spécifié(e) à l'instanciation. Ca permet de
"plugger" des comportements différents sans devoir toucher à la classe
de base ou créer une nouvelle sous-classe.
Le pattern décorateur consiste à ajouter/adapter les fonctionnalités
d'un objet en le décorant dans un autre objet (compatible du point de
vue de l'API of course), le quel délèguera une partie du travail à
l'objet d'origine.
Olivier Masson a écrit :
Le 31/03/2010 13:28, Bruno Desthuilliers a écrit :
Problème de conception assez courant hélas consistant à abuser de
l'héritage au lieu de réfléchir. Après, sans connaître le contexte, pas
moyen de dire quelle serait la bonne solution, mais à vue de nez on
pourrait penser aux patterns "décorateur" et "stratégie".
Bien entendu, j'ignore ce que sont ces patterns.
C'est relativement documenté sur le net.
Le pattern stratégie consiste à déléguer une partie déterminée du
comportement à un autre objet (ou à une fonction de rappel pour ce que
ça vaut), généralement spécifié(e) à l'instanciation. Ca permet de
"plugger" des comportements différents sans devoir toucher à la classe
de base ou créer une nouvelle sous-classe.
Le pattern décorateur consiste à ajouter/adapter les fonctionnalités
d'un objet en le décorant dans un autre objet (compatible du point de
vue de l'API of course), le quel délèguera une partie du travail à
l'objet d'origine.
Olivier Masson a écrit :Le 31/03/2010 13:28, Bruno Desthuilliers a écrit :Problème de conception assez courant hélas consistant à abuser de
l'héritage au lieu de réfléchir. Après, sans connaître le contexte, pas
moyen de dire quelle serait la bonne solution, mais à vue de nez on
pourrait penser aux patterns "décorateur" et "stratégie".
Bien entendu, j'ignore ce que sont ces patterns.
C'est relativement documenté sur le net.
Le pattern stratégie consiste à déléguer une partie déterminée du
comportement à un autre objet (ou à une fonction de rappel pour ce que
ça vaut), généralement spécifié(e) à l'instanciation. Ca permet de
"plugger" des comportements différents sans devoir toucher à la classe
de base ou créer une nouvelle sous-classe.
Le pattern décorateur consiste à ajouter/adapter les fonctionnalités
d'un objet en le décorant dans un autre objet (compatible du point de
vue de l'API of course), le quel délèguera une partie du travail à
l'objet d'origine.
Le 02/04/2010 01:09, Bruno Desthuilliers a écrit :Olivier Masson a écrit :Le 31/03/2010 13:28, Bruno Desthuilliers a écrit :Problème de conception assez courant hélas consistant à abuser de
l'héritage au lieu de réfléchir. Après, sans connaître le contexte, pas
moyen de dire quelle serait la bonne solution, mais à vue de nez on
pourrait penser aux patterns "décorateur" et "stratégie".
Bien entendu, j'ignore ce que sont ces patterns.
C'est relativement documenté sur le net.
Le pattern stratégie consiste à déléguer une partie déterminée du
comportement à un autre objet (ou à une fonction de rappel pour ce que
ça vaut), généralement spécifié(e) à l'instanciation. Ca permet de
"plugger" des comportements différents sans devoir toucher à la classe
de base ou créer une nouvelle sous-classe.
Le pattern décorateur consiste à ajouter/adapter les fonctionnalités
d'un objet en le décorant dans un autre objet (compatible du point de
vue de l'API of course), le quel délèguera une partie du travail à
l'objet d'origine.
Très intéressant, même si j'ai dû couper la musique pour me concentrer :)
Mais j'ai une question plus générale à te poser : tu sembles (j'ai
appris à prendre du recul et à tout relativiser) avoir de solides
connaissances en développement.
Par contre, le moindre micro-projet parait être une montagne de
complexité avec ton savoir-faire (car il faut, entre autres, tout
concevoir à la (ta ?) perfection et avec une vision sur le long terme).
Certes, peut-être pas pour toi qui a l'habitude,
mais pour le
commun-des-mortels-qui-développent-déjà-un-tout-petitpetit-peu que je
suis, c'est plutôt abscons et très théorique.
Ce qui m'a séduit il y a peu, parce que j'essaie de l'appliquer depuis
fort longtemps, c'est le concept de méthode agile - oui, cela devient
très "tendance" et donc probablement surestimé -.
Or, j'ai *l'impression* que tu en es à l'opposée. Est-ce que je me
trompe ?
Penses-tu que tes méthodes soient adaptées à un projet de
taille minuscule, modeste, moyenne ?
L'argument "tu ne sais pas ce que ton projet sera demain", je le
comprends,
mais il est parfois beaucoup plus productif (et rentable,
efficace...) de faire un projet à sa juste mesure puis, si besoin est,
repartir en partie ou en totalité à zéro, avec une méthode adaptée à la
nouvelle importance du projet.
Ça me fait un peu penser à MVC que j'avais, il y a encore peu de temps,
honte de ne pas utiliser.
Finalement, maintenant que je fais parfois mon propre MVC, je suis tout
à fait convaincu que cette structure n'a rien d'idéale (et il m'arrive
donc de l'utiliser uniquement sur des parties de site).
Qu'en penses-tu ?
Tout ceci est important pour moi car on ne lit que rarement sur le net
des propos nuancés,
Le 02/04/2010 01:09, Bruno Desthuilliers a écrit :
Olivier Masson a écrit :
Le 31/03/2010 13:28, Bruno Desthuilliers a écrit :
Problème de conception assez courant hélas consistant à abuser de
l'héritage au lieu de réfléchir. Après, sans connaître le contexte, pas
moyen de dire quelle serait la bonne solution, mais à vue de nez on
pourrait penser aux patterns "décorateur" et "stratégie".
Bien entendu, j'ignore ce que sont ces patterns.
C'est relativement documenté sur le net.
Le pattern stratégie consiste à déléguer une partie déterminée du
comportement à un autre objet (ou à une fonction de rappel pour ce que
ça vaut), généralement spécifié(e) à l'instanciation. Ca permet de
"plugger" des comportements différents sans devoir toucher à la classe
de base ou créer une nouvelle sous-classe.
Le pattern décorateur consiste à ajouter/adapter les fonctionnalités
d'un objet en le décorant dans un autre objet (compatible du point de
vue de l'API of course), le quel délèguera une partie du travail à
l'objet d'origine.
Très intéressant, même si j'ai dû couper la musique pour me concentrer :)
Mais j'ai une question plus générale à te poser : tu sembles (j'ai
appris à prendre du recul et à tout relativiser) avoir de solides
connaissances en développement.
Par contre, le moindre micro-projet parait être une montagne de
complexité avec ton savoir-faire (car il faut, entre autres, tout
concevoir à la (ta ?) perfection et avec une vision sur le long terme).
Certes, peut-être pas pour toi qui a l'habitude,
mais pour le
commun-des-mortels-qui-développent-déjà-un-tout-petitpetit-peu que je
suis, c'est plutôt abscons et très théorique.
Ce qui m'a séduit il y a peu, parce que j'essaie de l'appliquer depuis
fort longtemps, c'est le concept de méthode agile - oui, cela devient
très "tendance" et donc probablement surestimé -.
Or, j'ai *l'impression* que tu en es à l'opposée. Est-ce que je me
trompe ?
Penses-tu que tes méthodes soient adaptées à un projet de
taille minuscule, modeste, moyenne ?
L'argument "tu ne sais pas ce que ton projet sera demain", je le
comprends,
mais il est parfois beaucoup plus productif (et rentable,
efficace...) de faire un projet à sa juste mesure puis, si besoin est,
repartir en partie ou en totalité à zéro, avec une méthode adaptée à la
nouvelle importance du projet.
Ça me fait un peu penser à MVC que j'avais, il y a encore peu de temps,
honte de ne pas utiliser.
Finalement, maintenant que je fais parfois mon propre MVC, je suis tout
à fait convaincu que cette structure n'a rien d'idéale (et il m'arrive
donc de l'utiliser uniquement sur des parties de site).
Qu'en penses-tu ?
Tout ceci est important pour moi car on ne lit que rarement sur le net
des propos nuancés,
Le 02/04/2010 01:09, Bruno Desthuilliers a écrit :Olivier Masson a écrit :Le 31/03/2010 13:28, Bruno Desthuilliers a écrit :Problème de conception assez courant hélas consistant à abuser de
l'héritage au lieu de réfléchir. Après, sans connaître le contexte, pas
moyen de dire quelle serait la bonne solution, mais à vue de nez on
pourrait penser aux patterns "décorateur" et "stratégie".
Bien entendu, j'ignore ce que sont ces patterns.
C'est relativement documenté sur le net.
Le pattern stratégie consiste à déléguer une partie déterminée du
comportement à un autre objet (ou à une fonction de rappel pour ce que
ça vaut), généralement spécifié(e) à l'instanciation. Ca permet de
"plugger" des comportements différents sans devoir toucher à la classe
de base ou créer une nouvelle sous-classe.
Le pattern décorateur consiste à ajouter/adapter les fonctionnalités
d'un objet en le décorant dans un autre objet (compatible du point de
vue de l'API of course), le quel délèguera une partie du travail à
l'objet d'origine.
Très intéressant, même si j'ai dû couper la musique pour me concentrer :)
Mais j'ai une question plus générale à te poser : tu sembles (j'ai
appris à prendre du recul et à tout relativiser) avoir de solides
connaissances en développement.
Par contre, le moindre micro-projet parait être une montagne de
complexité avec ton savoir-faire (car il faut, entre autres, tout
concevoir à la (ta ?) perfection et avec une vision sur le long terme).
Certes, peut-être pas pour toi qui a l'habitude,
mais pour le
commun-des-mortels-qui-développent-déjà-un-tout-petitpetit-peu que je
suis, c'est plutôt abscons et très théorique.
Ce qui m'a séduit il y a peu, parce que j'essaie de l'appliquer depuis
fort longtemps, c'est le concept de méthode agile - oui, cela devient
très "tendance" et donc probablement surestimé -.
Or, j'ai *l'impression* que tu en es à l'opposée. Est-ce que je me
trompe ?
Penses-tu que tes méthodes soient adaptées à un projet de
taille minuscule, modeste, moyenne ?
L'argument "tu ne sais pas ce que ton projet sera demain", je le
comprends,
mais il est parfois beaucoup plus productif (et rentable,
efficace...) de faire un projet à sa juste mesure puis, si besoin est,
repartir en partie ou en totalité à zéro, avec une méthode adaptée à la
nouvelle importance du projet.
Ça me fait un peu penser à MVC que j'avais, il y a encore peu de temps,
honte de ne pas utiliser.
Finalement, maintenant que je fais parfois mon propre MVC, je suis tout
à fait convaincu que cette structure n'a rien d'idéale (et il m'arrive
donc de l'utiliser uniquement sur des parties de site).
Qu'en penses-tu ?
Tout ceci est important pour moi car on ne lit que rarement sur le net
des propos nuancés,
Possiblement, mais il y a quelques considérations pleines de bon sens là
dedans, spécialement pour des petits projets avec des petites équipes,
des deadlines serrées, et des spécifications "flottantes" - donc une
bonne partie du développement web.
Par contre, et on le soulignera jamais assez, ces méthodologies ne
peuvent fonctionner correctement que pour des équipes composées
majoritairement de personnes expérimentées.
La plupart des projets sur lesquels je bosse sont de taille suffisament
modeste pour qu'un seul dév y soit affecté. Sur les plus gros, on est
deux dév... Quant à mes méthodes, au final, ça se résume à ça:
http://www.cafenware.com/la-rache/index.php?z=2
Maintenant, l'approche consistant à séparer autant que possible les
trois composants que sont #1 la logique applicative, #2 la gestion des
actions de l'utilisateur et #3 la logique de présentation, est
globalement une approche plutôt saine quelque soit le contexte.
Note cependant que rien de tout ça ne requiert de faire de la POO ni de
partir dans des délires d'"architecte astronaute". On peut appliquer
cette approche *très* simplement en bon vieux PHP procédural à la papa.
On n'a pas attendu la POO pour faire du code modulaire, tu sais ?
Au risque de te décevoir, je ne suis pas spécialement connu pour mon
sens de la nuance, loin s'en faut !-)
Possiblement, mais il y a quelques considérations pleines de bon sens là
dedans, spécialement pour des petits projets avec des petites équipes,
des deadlines serrées, et des spécifications "flottantes" - donc une
bonne partie du développement web.
Par contre, et on le soulignera jamais assez, ces méthodologies ne
peuvent fonctionner correctement que pour des équipes composées
majoritairement de personnes expérimentées.
La plupart des projets sur lesquels je bosse sont de taille suffisament
modeste pour qu'un seul dév y soit affecté. Sur les plus gros, on est
deux dév... Quant à mes méthodes, au final, ça se résume à ça:
http://www.cafenware.com/la-rache/index.php?z=2
Maintenant, l'approche consistant à séparer autant que possible les
trois composants que sont #1 la logique applicative, #2 la gestion des
actions de l'utilisateur et #3 la logique de présentation, est
globalement une approche plutôt saine quelque soit le contexte.
Note cependant que rien de tout ça ne requiert de faire de la POO ni de
partir dans des délires d'"architecte astronaute". On peut appliquer
cette approche *très* simplement en bon vieux PHP procédural à la papa.
On n'a pas attendu la POO pour faire du code modulaire, tu sais ?
Au risque de te décevoir, je ne suis pas spécialement connu pour mon
sens de la nuance, loin s'en faut !-)
Possiblement, mais il y a quelques considérations pleines de bon sens là
dedans, spécialement pour des petits projets avec des petites équipes,
des deadlines serrées, et des spécifications "flottantes" - donc une
bonne partie du développement web.
Par contre, et on le soulignera jamais assez, ces méthodologies ne
peuvent fonctionner correctement que pour des équipes composées
majoritairement de personnes expérimentées.
La plupart des projets sur lesquels je bosse sont de taille suffisament
modeste pour qu'un seul dév y soit affecté. Sur les plus gros, on est
deux dév... Quant à mes méthodes, au final, ça se résume à ça:
http://www.cafenware.com/la-rache/index.php?z=2
Maintenant, l'approche consistant à séparer autant que possible les
trois composants que sont #1 la logique applicative, #2 la gestion des
actions de l'utilisateur et #3 la logique de présentation, est
globalement une approche plutôt saine quelque soit le contexte.
Note cependant que rien de tout ça ne requiert de faire de la POO ni de
partir dans des délires d'"architecte astronaute". On peut appliquer
cette approche *très* simplement en bon vieux PHP procédural à la papa.
On n'a pas attendu la POO pour faire du code modulaire, tu sais ?
Au risque de te décevoir, je ne suis pas spécialement connu pour mon
sens de la nuance, loin s'en faut !-)