Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Perfectionner ses methodes

7 réponses
Avatar
LOGIK
Bonjour
je m'interroge depuis quelque temps sur l'optimisation de ma
programmation. J'ai en effet pris l'habitude de progammer des sites
avec X pages en php + quelques gouttes de javascript, ce qui fait un
paquet de pages + ou - commode à manager, sans parler de la corvée des
modifs.

La découverte de la POO a facilité la maintenance, mais je n'y suis
que débutant et c'est un peu lourd

Je cherche des références sur les bonnes méthodes de programmation: de
longues pages peu nombeuses ou de beaucoup de page simples ? 10 ou 50
ou 200 pour un site moyen ? Tout en POO ou une combinaison des deux ?

Quelqu'un peut-il m'aider de ses lumières et/ou me conseiller une
lecture saine (je suis un "self made man " dans ce domaine)

Merci d'avance

7 réponses

Avatar
Bruno Desthuilliers
LOGIK wrote:
Bonjour
je m'interroge depuis quelque temps sur l'optimisation de ma
programmation. J'ai en effet pris l'habitude de progammer des sites
avec X pages en php + quelques gouttes de javascript, ce qui fait un
paquet de pages + ou - commode à manager, sans parler de la corvée des
modifs.

La découverte de la POO a facilité la maintenance, mais je n'y suis
que débutant et c'est un peu lourd

Je cherche des références sur les bonnes méthodes de programmation: de
longues pages peu nombeuses ou de beaucoup de page simples ? 10 ou 50
ou 200 pour un site moyen ? Tout en POO ou une combinaison des deux ?

Quelqu'un peut-il m'aider de ses lumières et/ou me conseiller une
lecture saine (je suis un "self made man " dans ce domaine)

Merci d'avance


Il n'y a pas de Vérité Révélée dans ce domaine, c'est une affaire de
circonstances et de convenance personnelle.

Par contre, il y a quelques principes qui permettent généralement de
simplifier le boulot...

Le premier est de séparer autant que possible la logique de la
présentation. Attention, ca ne veut pas dire 'séparer le HTML du PHP'.
L'idée est plutôt de factoriser le code récurrent dans des
'bibliothèques' de fonction, en le rendant aussi générique que possible,
et de ne garder dans les 'pages' PHP que l'appel à ces fonctions et
l'affichage. Les dites fonctions ne devraient pas afficher quoique ce
soit par elle-même (sauf cas particulier...), mais retourner des
résultats que le code des pages se chargera d'afficher.

Le deuxième est de, lors de la factorisation du code commun, regrouper
les fonctions (et/ou classes) de façon logique, et non pas selon les
besoins particulier d'un projet ou au petit bonheur la chance. Ca
facilite la maintenance (on sait facilement où est quoi...) et la
réutilisation. Il devrait y avoir le moins de dépendances possibles
entre les 'bibliothèques'.

La logique 'modèle/vue/controleur' permet généralement d'avoir une
organisation assez propre.
- Le 'modèle' est le code chargé de gérer les données. Ce code ne
procède à aucun affichage, et doit être aussi indépendant que possible
du 'contexte' (variables globales etc...).
- La 'vue', c'est le code chargé de l'affichage. Ce code reçoit des
données sans guère se soucier de leur provenance, son boulot est de
formatter et d'afficher les données.
- le 'controleur' fait la liaison entre les deux : il reçoit et analyse
les requêtes (post, get, session, variables globales etc), appelle les
fonctions 'qui vont bien' du modèle en fonction des requêtes, et envoie
le résultat à la vue pour affichage.

Il y a bien des façons d'appliquer ce paradigme, et la frontière entre
les trois parties est parfois assez floue, mais le principe général est
fiable et éprouvé - et assez bien documenté (google is your friend...)

Mes deux centimes...
Bruno

Avatar
Jean-Marc Molina
(Je reposte, la réponse d'avant hier ne semble pas être passée)

LOGIK a écrit/wrote :
La découverte de la POO a facilité la maintenance, mais je n'y suis
que débutant et c'est un peu lourd

Je cherche des références sur les bonnes méthodes de programmation: de
longues pages peu nombeuses ou de beaucoup de page simples ? 10 ou 50
ou 200 pour un site moyen ? Tout en POO ou une combinaison des deux ?


On apprend la POO par la théorie et surtout par la pratique et l'expérience.
Tout dépend de ton âge, ton niveau d'études et de ton background de
développeur mais tu peux te tourner vers Booch (Auteur DU modèle de
conception orienté objet, voir aussi UML pour la modélisation), Bertrand
Meyer (Concepteur du langage Eiffel, auteur du livre-bible Conception et
programmation objet - Imbuvable pour un débutant), Liberty (C++ chez Sams),
Lemay (Java chez Sams), Initiation à l'algorithmique objet (Cardon,
Dabancourt chez Eyrolles), les derniers livres sur PHP 5 (Aucun à te
conseiller mais celui de Leon Atkinson semble être la référence),
t'intéresser à d'autres langages orientés objet, c'est par C++ et Java que
j'ai commencé par exemple. Dans ces mondes les références ne manquent pas,
PHP, lui, commence tout juste à s'y mettre. Mais en cherchant sur Google tu
devrais bien trouver quelques didacticiels et autres articles, pas forcément
sur PHP, je parle plutôt de théorie :
Beginning Object Oriented Programming in PHP (by Timothy Boronczyk)
(http://codewalkers.com/tutorials/54/1.html)
Rubrique « Application Architecture > Object Oriented » de PHP Builder.

PHP se met vraiment à la POO avec PHP 5 :
Introduction to PHP5 (by Luis Argerich) sur PHP Builder.
PHP5: nouveautés et enjeux (par Éric Daspet, Cyril Pierre de Geyer) sur
ZDNet
(http://www.zdnet.fr/builder/programmation/technologies_web/0,39021000,39143
726,00.htm).
Les constructeurs et destructeurs de PHP 5 (par Stéphane Vanpoperynghe) sur
ZDNet
(http://www.zdnet.fr/builder/programmation/technologies_web/0,39021000,39139
786,00.htm).
Introduction à PHP 5 (de Fabrice Lezoray) sur Scripts PHP
(http://classes.scriptsphp.net/article.introduction-a-PHP-5).
Visibilité des membres de classes en PHP 5 (de Stéphane VANPOPERYNGHE) sur
Tout Programmer (http://www.toutprogrammer.com/article_11.html).

L'indispensable Changes in PHP 5/Zend Engine 2.0
(http://www.php.net/zend-engine-2.php). Traduit en 500 langues, dont en
français par Damien Séguy de Nexen.

Juste une remarque concernant l'article de Cyril Pierre de Geyer, il a sorti
un bouquin, donc si tu apprécies son article, jete toi sur son livre PHP 5
avancé (de Cyril et Éric Daspet).

Donc je répète, l'objet ne s'apprend pas aussi rapidement que la
programmation procédurale/fonctionnelle, il faut du temps, beaucoup de temps
pour en comprendre et en assimiler les mécanismes, c'est d'ailleurs pour ça
que beaucoup ne s'y mettent pas de peur de changer leurs bonnes vieilles
habitudes. Beaucoup de théorie et énormément de pratique.

Voilà bonne lecture
JM

Avatar
Bruno Desthuilliers
Jean-Marc Molina wrote:
(Je reposte, la réponse d'avant hier ne semble pas être passée)

LOGIK a écrit/wrote :

La découverte de la POO a facilité la maintenance, mais je n'y suis
que débutant et c'est un peu lourd

Je cherche des références sur les bonnes méthodes de programmation: de
longues pages peu nombeuses ou de beaucoup de page simples ? 10 ou 50
ou 200 pour un site moyen ? Tout en POO ou une combinaison des deux ?



On apprend la POO par la théorie et surtout par la pratique et l'expérience.
Tout dépend de ton âge, ton niveau d'études et de ton background de
développeur mais tu peux te tourner vers Booch (Auteur DU modèle de
conception orienté objet, voir aussi UML pour la modélisation), Bertrand
Meyer (Concepteur du langage Eiffel, auteur du livre-bible Conception et
programmation objet - Imbuvable pour un débutant),


Jusque là, bonne références...

Liberty (C++ chez Sams),
Lemay (Java chez Sams),


Ces deux là, par contre, sont deux parfaits exemples de gaspillage de
papier. Pour l'usage qu'on peut en faire, mieux vaut se fournir chez
lotus ou moltonel...


Avatar
Jean-Marc Molina
Bruno Desthuilliers a écrit/wrote :
Liberty (C++ chez Sams),
Lemay (Java chez Sams),


Ces deux là, par contre, sont deux parfaits exemples de gaspillage de
papier. Pour l'usage qu'on peut en faire, mieux vaut se fournir chez
lotus ou moltonel...


J'ai découvert la POO avec ces 2 auteurs et je ne le regrette pas. Ils sont
tous les 2 très réputés dans le milieu du génie logiciel, surtout Liberty
qui publie quand même chez SDMag, rien que ça. Ils acceptent pas n'importe
qui.

Pas besoin après de commencer avec les meilleurs, les grandes références.
Pour preuve ceux que tu compares à du PQ m'ont permis d'accéder plus
facilement aux théories de Booch, Meyer, GOF... J'imagine difficilement
comment on peut assimiler tout ça sans passer par la case gros débutant qui
lit Pour les nuls et les grandes bibles de chez Campus ou MicroApp.

Après il faut aussi fréquenter les communautés, lire des articles, poser des
questions sur les bons groupes...

Sinon Bruno je crois avoir lu l'un de mes messages où tu parlais POO
justement, si mes souvenirs sont bons tu t'y connais pas mal ! Donc quelles
sont tes références ?

--
Jean-Marc.

Clé anti pourriel : PASUNPOURRIEL (Ne pas retirer de votre réponse si
vous me l'adressez directement) / Anti spam key : NOTASPAM (Do not
remove from your reply if you directly send it to me)


Avatar
Bruno Desthuilliers
Jean-Marc Molina wrote:
Bruno Desthuilliers a écrit/wrote :

Liberty (C++ chez Sams),
Lemay (Java chez Sams),


Ces deux là, par contre, sont deux parfaits exemples de gaspillage de
papier. Pour l'usage qu'on peut en faire, mieux vaut se fournir chez
lotus ou moltonel...



J'ai découvert la POO avec ces 2 auteurs et je ne le regrette pas.


J'ai découvert Java avec l'un, C++ avec l'autre, et j'ai dès le début
été affligé par la nullité des exemples donnés, qui n'aident en rien à
comprendre la *démarche* objet.

Ils sont
tous les 2 très réputés dans le milieu du génie logiciel,
Nous ne devons pas avoir les mêmes références, pour ma part je n'ai

jamais remarqué leurs noms ailleurs !-)

surtout Liberty
qui publie quand même chez SDMag, rien que ça. Ils acceptent pas n'importe
qui.

Pas besoin après de commencer avec les meilleurs, les grandes références.
Pour preuve ceux que tu compares à du PQ m'ont permis d'accéder plus
facilement aux théories de Booch, Meyer, GOF... J'imagine difficilement
comment on peut assimiler tout ça sans passer par la case gros débutant qui
lit Pour les nuls et les grandes bibles de chez Campus ou MicroApp.


Je ne sais pas... J'ai appris à programmer avec des langages plus ou
moins orientés objet (Hypertalk, RealBasic, Java... J'ai bien dit 'plus
ou moins' !-), j'ai donc appris les notions de classe/instance,
encapsulation, héritage etc en même temps que le reste (variables,
fonctions, branchements etc).

Après il faut aussi fréquenter les communautés, lire des articles, poser des
questions sur les bons groupes...


C'est probablement ce qui reste le plus instructif - avec la pratique,
bien sûr !-)

Sinon Bruno je crois avoir lu l'un de mes messages où tu parlais POO
justement, si mes souvenirs sont bons tu t'y connais pas mal !


<révérence>votre humble serviteur, messire</révérence>

Donc quelles
sont tes références ?


Heu... essentiellement un certain nombre d'écrits largement disponibles
sur le net, et puis bien sûr la pratique et la réflexion sur cette
pratique. De ce point de vue, certains langages (Javascript, Python,
Smalltalk, Ruby, Io...) incitent peut-être plus que d'autres à réfléchir
vraiment en termes d'objets et de messages - plus qu'en termes de
structure de données et de procédures manipulant ces données.

Quelques notions de programmation fonctionnelle, aussi paradoxalement
que ça puisse paraître, m'ont amené à mieux comprendre ce qui me semble
être un aspect essentiel de l'approche objet : passer le plus possible
du paradigme impératif à un style plus déclaratif ("Tell, don't ask") -
ce qui n'est guère encouragé par la manière dont sont présentés les
concepts objets dans des ouvrages comme ceux que je critiquais...

Au niveau édition papier, à part le GOF, je n'ai pas lu grand chose (je
me ferais bien le Meyer à l'occasion...)...

Bref, comme tu le vois, moi y'en a pauvre petit autodidacte...

Bruno



Avatar
Jean-Marc Molina
Bruno Desthuilliers a écrit/wrote :
Quelques notions de programmation fonctionnelle, aussi paradoxalement
que ça puisse paraître, m'ont amené à mieux comprendre ce qui me
semble être un aspect essentiel de l'approche objet : passer le plus
possible du paradigme impératif à un style plus déclaratif ("Tell,
don't ask") - ce qui n'est guère encouragé par la manière dont sont
présentés les concepts objets dans des ouvrages comme ceux que je
critiquais...


Je comprends tout à fait ce paradoxe car c'est vraiment lui qui m'a permis
de bien comprendre l'objet. Je suis passé par la case C avant C++ en fait et
j'ai eu ma période, je fais du C++ en C... Enfin du C en C++ ? Un peu des 2
:).

Bon laisse mes ouvrages tranquilles ils ne t'ont rien fait :). Il y a des
chapitres justement dédiés à la conception objet pour mieux comprendre le
concept, ca n'est pas étalé sur tout le bouquin mais c'est là. Après on peut
pas les comparer à du Meyer ou du Booch mais ils m'ont bien été utiles...
Alors pourquoi pas à d'autres ?

Au niveau édition papier, à part le GOF, je n'ai pas lu grand chose
(je me ferais bien le Meyer à l'occasion...)...


Design Patterns est pas mal c'est vrai mais peut-être un peu imbuvable car
trop théorique, il existe une version plus pratique de je ne sais plus quel
auteur : « Design Patterns par la pratique » je crois. Pour Meyer je le
conseille à tout le monde mais plutôt comme une référence que comme un livre
à lire du début à la fin, après toutes ces années je n'ai pas encore tout
lu, j'en suis même pas à 50% à mon avis ! Je lis les chapitres en fonction
des besoins. Un peu comme on ouvre le dictionnaire pour connaître la
définition de tel ou tel mot.

Bref, comme tu le vois, moi y'en a pauvre petit autodidacte...


Moi de même, je suis aussi pauvre que toi alors :). Mais tous ensemble on
atteint peut-être un certain seuil de rentabilité orienté objet :p.

--
Jean-Marc.

Clé anti pourriel : PASUNPOURRIEL (Ne pas retirer de votre réponse si
vous me l'adressez directement) / Anti spam key : NOTASPAM (Do not
remove from your reply if you directly send it to me)

Avatar
bruno modulix
Bruno Desthuilliers a écrit/wrote :

(snip)

ce qui n'est guère encouragé par la manière dont sont
présentés les concepts objets dans des ouvrages comme ceux que je
critiquais...


(snip)

Bon laisse mes ouvrages tranquilles ils ne t'ont rien fait :).
Arrête de les recommander, et j'arrêterai de les critiquer, promis !-)

(snip)


Au niveau édition papier, à part le GOF, je n'ai pas lu grand chose
(je me ferais bien le Meyer à l'occasion...)...



Design Patterns est pas mal c'est vrai mais peut-être un peu imbuvable car
trop théorique,


Ah ? tiens, je n'ai pas vraiment eu cette impression.

(snip)

Bref, comme tu le vois, moi y'en a pauvre petit autodidacte...



Moi de même, je suis aussi pauvre que toi alors :). Mais tous ensemble on
atteint peut-être un certain seuil de rentabilité orienté objet :p.


J'ose espérer qu'en ce qui me concerne, c'est déjà peu ou prou
rentable... Je ne voudrais pas couler ma boite !-)

Bruno