Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus handicapant
de ne pas suivre de véritable "gestion de projet". En effet, j'en arrive à
des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment bien
débuter dans un projet PHP". Comment faites-vous lorsque vous avez un
cahier des charges assez imposant pour choisir par quoi débuter.
Utilisez-vous des diagramme UML et la programmation objet. Commencez-vous
par établir les prémices de la base de données (s'il y a lieu). Faut-il
tout modulariser? Gérez-vous tout de suite les aspects tels que
l'authentification ou faites-vous cela vers la fin?
Peut-être que certains voudront bien me faire part de leur expérience dans
ce domaine ou me diriger vers des liens.
Jérémy.
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus handicapant
de ne pas suivre de véritable "gestion de projet". En effet, j'en arrive à
des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment bien
débuter dans un projet PHP". Comment faites-vous lorsque vous avez un
cahier des charges assez imposant pour choisir par quoi débuter.
Utilisez-vous des diagramme UML et la programmation objet. Commencez-vous
par établir les prémices de la base de données (s'il y a lieu). Faut-il
tout modulariser? Gérez-vous tout de suite les aspects tels que
l'authentification ou faites-vous cela vers la fin?
Peut-être que certains voudront bien me faire part de leur expérience dans
ce domaine ou me diriger vers des liens.
Jérémy.
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus handicapant
de ne pas suivre de véritable "gestion de projet". En effet, j'en arrive à
des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment bien
débuter dans un projet PHP". Comment faites-vous lorsque vous avez un
cahier des charges assez imposant pour choisir par quoi débuter.
Utilisez-vous des diagramme UML et la programmation objet. Commencez-vous
par établir les prémices de la base de données (s'il y a lieu). Faut-il
tout modulariser? Gérez-vous tout de suite les aspects tels que
l'authentification ou faites-vous cela vers la fin?
Peut-être que certains voudront bien me faire part de leur expérience dans
ce domaine ou me diriger vers des liens.
Jérémy.
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y a
lieu). Faut-il tout modulariser? Gérez-vous tout de suite les aspects
tels que l'authentification ou faites-vous cela vers la fin?
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y a
lieu). Faut-il tout modulariser? Gérez-vous tout de suite les aspects
tels que l'authentification ou faites-vous cela vers la fin?
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y a
lieu). Faut-il tout modulariser? Gérez-vous tout de suite les aspects
tels que l'authentification ou faites-vous cela vers la fin?
Bonjour,
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus
handicapant de ne pas suivre de véritable "gestion de projet". En effet,
j'en arrive à des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment
bien débuter dans un projet PHP".
Comment faites-vous lorsque vous avez
un cahier des charges assez imposant pour choisir par quoi débuter.
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y a
lieu).
Faut-il tout modulariser?
Gérez-vous tout de suite les aspects
tels que l'authentification ou faites-vous cela vers la fin?
Bonjour,
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus
handicapant de ne pas suivre de véritable "gestion de projet". En effet,
j'en arrive à des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment
bien débuter dans un projet PHP".
Comment faites-vous lorsque vous avez
un cahier des charges assez imposant pour choisir par quoi débuter.
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y a
lieu).
Faut-il tout modulariser?
Gérez-vous tout de suite les aspects
tels que l'authentification ou faites-vous cela vers la fin?
Bonjour,
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus
handicapant de ne pas suivre de véritable "gestion de projet". En effet,
j'en arrive à des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment
bien débuter dans un projet PHP".
Comment faites-vous lorsque vous avez
un cahier des charges assez imposant pour choisir par quoi débuter.
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y a
lieu).
Faut-il tout modulariser?
Gérez-vous tout de suite les aspects
tels que l'authentification ou faites-vous cela vers la fin?
Un autre outil intéressant est un 'bug-tracker', si possible lié au
contrôleur de version. Le duo Subversion/Trac est pas mal.
Toute dernière chose, plus spécifique à PHP : bien séparer la logique
applicative de la logique de présentation. PHP est en soi un bon langage
de template, mais il est préférable d'avoir d'un côté des 'templates'
(des pages HTML avec quelques appels PHP pour substituer dynamiquement
les données à afficher - avec des conditionnelles et des boucles si
nécessaire, mais aucune modification de l'état du système) et de l'autre
la logique (du code PHP sans aucune balise HTML nulle part).
HTH
Un autre outil intéressant est un 'bug-tracker', si possible lié au
contrôleur de version. Le duo Subversion/Trac est pas mal.
Toute dernière chose, plus spécifique à PHP : bien séparer la logique
applicative de la logique de présentation. PHP est en soi un bon langage
de template, mais il est préférable d'avoir d'un côté des 'templates'
(des pages HTML avec quelques appels PHP pour substituer dynamiquement
les données à afficher - avec des conditionnelles et des boucles si
nécessaire, mais aucune modification de l'état du système) et de l'autre
la logique (du code PHP sans aucune balise HTML nulle part).
HTH
Un autre outil intéressant est un 'bug-tracker', si possible lié au
contrôleur de version. Le duo Subversion/Trac est pas mal.
Toute dernière chose, plus spécifique à PHP : bien séparer la logique
applicative de la logique de présentation. PHP est en soi un bon langage
de template, mais il est préférable d'avoir d'un côté des 'templates'
(des pages HTML avec quelques appels PHP pour substituer dynamiquement
les données à afficher - avec des conditionnelles et des boucles si
nécessaire, mais aucune modification de l'état du système) et de l'autre
la logique (du code PHP sans aucune balise HTML nulle part).
HTH
[...]
Toute dernière chose, plus spécifique à PHP : bien séparer la logique
applicative de la logique de présentation. PHP est en soi un bon
langage de template, mais il est préférable d'avoir d'un côté des
'templates' (des pages HTML avec quelques appels PHP pour substituer
dynamiquement les données à afficher - avec des conditionnelles et des
boucles si nécessaire, mais aucune modification de l'état du système)
et de l'autre la logique (du code PHP sans aucune balise HTML nulle
part).
Merci pour ton partage d'expérience et celui de Etienne et Marc.
Je vais m'intéresser aux différentes pistes que vous proposez. J'utilise
déjà certaines "méthodes" proposées. En particulier, la séparation du
code de la présentation grace à un système de template de base(pas
encore plongé dans smarty).
En ce qui concerne les frameworks, il est vrai que c'est assez peu
parlant pour moi. Disons que j'essai de réutiliser du code mais je fais
peu appel à des bibliothèque déjà développées par manque de connaissance
de celle-ci. Peut-être devrais-je m'intéresser à PEAR.
Quand à la documentation du code, il est vrai qu'il va falloir que je
fasse des efforts là-dessus...
[...]
Toute dernière chose, plus spécifique à PHP : bien séparer la logique
applicative de la logique de présentation. PHP est en soi un bon
langage de template, mais il est préférable d'avoir d'un côté des
'templates' (des pages HTML avec quelques appels PHP pour substituer
dynamiquement les données à afficher - avec des conditionnelles et des
boucles si nécessaire, mais aucune modification de l'état du système)
et de l'autre la logique (du code PHP sans aucune balise HTML nulle
part).
Merci pour ton partage d'expérience et celui de Etienne et Marc.
Je vais m'intéresser aux différentes pistes que vous proposez. J'utilise
déjà certaines "méthodes" proposées. En particulier, la séparation du
code de la présentation grace à un système de template de base(pas
encore plongé dans smarty).
En ce qui concerne les frameworks, il est vrai que c'est assez peu
parlant pour moi. Disons que j'essai de réutiliser du code mais je fais
peu appel à des bibliothèque déjà développées par manque de connaissance
de celle-ci. Peut-être devrais-je m'intéresser à PEAR.
Quand à la documentation du code, il est vrai qu'il va falloir que je
fasse des efforts là-dessus...
[...]
Toute dernière chose, plus spécifique à PHP : bien séparer la logique
applicative de la logique de présentation. PHP est en soi un bon
langage de template, mais il est préférable d'avoir d'un côté des
'templates' (des pages HTML avec quelques appels PHP pour substituer
dynamiquement les données à afficher - avec des conditionnelles et des
boucles si nécessaire, mais aucune modification de l'état du système)
et de l'autre la logique (du code PHP sans aucune balise HTML nulle
part).
Merci pour ton partage d'expérience et celui de Etienne et Marc.
Je vais m'intéresser aux différentes pistes que vous proposez. J'utilise
déjà certaines "méthodes" proposées. En particulier, la séparation du
code de la présentation grace à un système de template de base(pas
encore plongé dans smarty).
En ce qui concerne les frameworks, il est vrai que c'est assez peu
parlant pour moi. Disons que j'essai de réutiliser du code mais je fais
peu appel à des bibliothèque déjà développées par manque de connaissance
de celle-ci. Peut-être devrais-je m'intéresser à PEAR.
Quand à la documentation du code, il est vrai qu'il va falloir que je
fasse des efforts là-dessus...
Pour me forcer a mettre des commentaires, mes pages PHP s'analysent
(s'analysaient) elle meme avant d'etre parsées par le PHP, du coup, si je
n'ai pas mis assez de commentaires, ca me declanche une erreur...
Pour me forcer a mettre des commentaires, mes pages PHP s'analysent
(s'analysaient) elle meme avant d'etre parsées par le PHP, du coup, si je
n'ai pas mis assez de commentaires, ca me declanche une erreur...
Pour me forcer a mettre des commentaires, mes pages PHP s'analysent
(s'analysaient) elle meme avant d'etre parsées par le PHP, du coup, si je
n'ai pas mis assez de commentaires, ca me declanche une erreur...
Etienne SOBOLE a dit le 08/03/2005 à 09:39:Pour me forcer a mettre des commentaires, mes pages PHP s'analysent
(s'analysaient) elle meme avant d'etre parsées par le PHP, du coup, si
je n'ai pas mis assez de commentaires, ca me declanche une erreur...
Ça c'est une bonne idée.
Ha ??? Moi j'aimerais pas...
Après bon c'est surtout utile dans la création d'outils.
Quand tu dois réaliser une application, la documentation n'est pas
toujours nécessaire.
Etienne SOBOLE a dit le 08/03/2005 à 09:39:
Pour me forcer a mettre des commentaires, mes pages PHP s'analysent
(s'analysaient) elle meme avant d'etre parsées par le PHP, du coup, si
je n'ai pas mis assez de commentaires, ca me declanche une erreur...
Ça c'est une bonne idée.
Ha ??? Moi j'aimerais pas...
Après bon c'est surtout utile dans la création d'outils.
Quand tu dois réaliser une application, la documentation n'est pas
toujours nécessaire.
Etienne SOBOLE a dit le 08/03/2005 à 09:39:Pour me forcer a mettre des commentaires, mes pages PHP s'analysent
(s'analysaient) elle meme avant d'etre parsées par le PHP, du coup, si
je n'ai pas mis assez de commentaires, ca me declanche une erreur...
Ça c'est une bonne idée.
Ha ??? Moi j'aimerais pas...
Après bon c'est surtout utile dans la création d'outils.
Quand tu dois réaliser une application, la documentation n'est pas
toujours nécessaire.
Pour ce qui est de l'implémentation, je commence en général par mettre
*rapidement* en place le *squelette* général, avec des implémentations
bidons des parties 'basses', puis je passe aux choses sérieuses - ce
qui entraine généralement des modifications de l'architecture
générale, parce que je suis trop bête pour penser à tout dès le début
!-). Dans cette phase, je commence de préférence par les parties les
plus risquées (technos mal connues, fonctionnalités critiques) car
c'est là qu'une erreur d'analyse ou de conception aura le plus
d'impact.
Ca dépend du projet et des technos, mais dans le cadre de ta question,
en général, oui. Par contre, mes diagrammes UML sont généralement
juste des griboullis sur papier brouillon. Ils sont là pour me
permettre d'organiser mes idées, pas pour imposer une architecture
figée.
En ce concerne la POO, attention à la tendance à vouloir faire du Java
en PHP, c'est généralement (!) une erreur.
Beaucoups de choses qui nécessiteraient des classes spécifiques en
Java se codent très bien en
PHP/Python/Ruby/Perl/TonLangageDeScriptPréféré avec des listes ou des
hash. Bref, ce n'est pas parce que tu représente quelque chose en
tant que classe ou objet dans tes diagrammes UML que tu doit
nécessairement en faire une classe pendant l'implémentation.
Ce genre d'aspect est généralement transversal, donc l'ajouter à la
fin impliquerait trop de modifications dans le code. C'est
typiquement le genre de choses dont il faut tenir compte dès le début
AMHA, et parmi les premières parties à mettre en place - pour moi, ça
fait partie du squelette.
Par contre, tu peux très bien commencer avec un module
d'authentification bidon, développer d'autres parties, puis
implémenter effectivement ce module.
D'un manière générale, cette méthode (un peu de réflexion avant,
beaucoup d'aménagements pendant) ne fonctionne correctement qu'avec un
bon gestionnaire de version et des tests unitaires aussi automatisés
que possible (ce qui n'est pas toujours évident dans le cas du
développement Web). L'idée est qu'il faut pouvoir réaménager le code
sans souci de casser quelque chose. Un bénéfice secondaire des tests
unitaires est qu'ils forcent généralement à bien modulariser le code
pour le rendre testable.
Un autre outil intéressant est un 'bug-tracker', si possible lié au
contrôleur de version. Le duo Subversion/Trac est pas mal.
Le pattern MVC (Modèle/Vue/Controleur) est une bonne application de ce
principe : les 'vues' sont les templates, la logique est dans le
modèle (en POO, généralement des classes 'métier'), et le controleur
- la page php appelée par le client - se charge des interactions
entre vues et modèle. Dans la pratique, il arrive que modèle et
controleur soient confondus, mais ça a souvent pour effet de faire
assumer au modèle des responsabilités qui ne le concerne pas
vraiment. Là, c'est à voir en fonction de la complexité générale de
l'appli et de sa finalité...
Pour ce qui est de l'implémentation, je commence en général par mettre
*rapidement* en place le *squelette* général, avec des implémentations
bidons des parties 'basses', puis je passe aux choses sérieuses - ce
qui entraine généralement des modifications de l'architecture
générale, parce que je suis trop bête pour penser à tout dès le début
!-). Dans cette phase, je commence de préférence par les parties les
plus risquées (technos mal connues, fonctionnalités critiques) car
c'est là qu'une erreur d'analyse ou de conception aura le plus
d'impact.
Ca dépend du projet et des technos, mais dans le cadre de ta question,
en général, oui. Par contre, mes diagrammes UML sont généralement
juste des griboullis sur papier brouillon. Ils sont là pour me
permettre d'organiser mes idées, pas pour imposer une architecture
figée.
En ce concerne la POO, attention à la tendance à vouloir faire du Java
en PHP, c'est généralement (!) une erreur.
Beaucoups de choses qui nécessiteraient des classes spécifiques en
Java se codent très bien en
PHP/Python/Ruby/Perl/TonLangageDeScriptPréféré avec des listes ou des
hash. Bref, ce n'est pas parce que tu représente quelque chose en
tant que classe ou objet dans tes diagrammes UML que tu doit
nécessairement en faire une classe pendant l'implémentation.
Ce genre d'aspect est généralement transversal, donc l'ajouter à la
fin impliquerait trop de modifications dans le code. C'est
typiquement le genre de choses dont il faut tenir compte dès le début
AMHA, et parmi les premières parties à mettre en place - pour moi, ça
fait partie du squelette.
Par contre, tu peux très bien commencer avec un module
d'authentification bidon, développer d'autres parties, puis
implémenter effectivement ce module.
D'un manière générale, cette méthode (un peu de réflexion avant,
beaucoup d'aménagements pendant) ne fonctionne correctement qu'avec un
bon gestionnaire de version et des tests unitaires aussi automatisés
que possible (ce qui n'est pas toujours évident dans le cas du
développement Web). L'idée est qu'il faut pouvoir réaménager le code
sans souci de casser quelque chose. Un bénéfice secondaire des tests
unitaires est qu'ils forcent généralement à bien modulariser le code
pour le rendre testable.
Un autre outil intéressant est un 'bug-tracker', si possible lié au
contrôleur de version. Le duo Subversion/Trac est pas mal.
Le pattern MVC (Modèle/Vue/Controleur) est une bonne application de ce
principe : les 'vues' sont les templates, la logique est dans le
modèle (en POO, généralement des classes 'métier'), et le controleur
- la page php appelée par le client - se charge des interactions
entre vues et modèle. Dans la pratique, il arrive que modèle et
controleur soient confondus, mais ça a souvent pour effet de faire
assumer au modèle des responsabilités qui ne le concerne pas
vraiment. Là, c'est à voir en fonction de la complexité générale de
l'appli et de sa finalité...
Pour ce qui est de l'implémentation, je commence en général par mettre
*rapidement* en place le *squelette* général, avec des implémentations
bidons des parties 'basses', puis je passe aux choses sérieuses - ce
qui entraine généralement des modifications de l'architecture
générale, parce que je suis trop bête pour penser à tout dès le début
!-). Dans cette phase, je commence de préférence par les parties les
plus risquées (technos mal connues, fonctionnalités critiques) car
c'est là qu'une erreur d'analyse ou de conception aura le plus
d'impact.
Ca dépend du projet et des technos, mais dans le cadre de ta question,
en général, oui. Par contre, mes diagrammes UML sont généralement
juste des griboullis sur papier brouillon. Ils sont là pour me
permettre d'organiser mes idées, pas pour imposer une architecture
figée.
En ce concerne la POO, attention à la tendance à vouloir faire du Java
en PHP, c'est généralement (!) une erreur.
Beaucoups de choses qui nécessiteraient des classes spécifiques en
Java se codent très bien en
PHP/Python/Ruby/Perl/TonLangageDeScriptPréféré avec des listes ou des
hash. Bref, ce n'est pas parce que tu représente quelque chose en
tant que classe ou objet dans tes diagrammes UML que tu doit
nécessairement en faire une classe pendant l'implémentation.
Ce genre d'aspect est généralement transversal, donc l'ajouter à la
fin impliquerait trop de modifications dans le code. C'est
typiquement le genre de choses dont il faut tenir compte dès le début
AMHA, et parmi les premières parties à mettre en place - pour moi, ça
fait partie du squelette.
Par contre, tu peux très bien commencer avec un module
d'authentification bidon, développer d'autres parties, puis
implémenter effectivement ce module.
D'un manière générale, cette méthode (un peu de réflexion avant,
beaucoup d'aménagements pendant) ne fonctionne correctement qu'avec un
bon gestionnaire de version et des tests unitaires aussi automatisés
que possible (ce qui n'est pas toujours évident dans le cas du
développement Web). L'idée est qu'il faut pouvoir réaménager le code
sans souci de casser quelque chose. Un bénéfice secondaire des tests
unitaires est qu'ils forcent généralement à bien modulariser le code
pour le rendre testable.
Un autre outil intéressant est un 'bug-tracker', si possible lié au
contrôleur de version. Le duo Subversion/Trac est pas mal.
Le pattern MVC (Modèle/Vue/Controleur) est une bonne application de ce
principe : les 'vues' sont les templates, la logique est dans le
modèle (en POO, généralement des classes 'métier'), et le controleur
- la page php appelée par le client - se charge des interactions
entre vues et modèle. Dans la pratique, il arrive que modèle et
controleur soient confondus, mais ça a souvent pour effet de faire
assumer au modèle des responsabilités qui ne le concerne pas
vraiment. Là, c'est à voir en fonction de la complexité générale de
l'appli et de sa finalité...
La documentation, si, toujours. Mais documention != commentaire. Les
commentaires dans le source ne sont qu'un élément de doc, et
uniquement destinés aux développeurs.
Enfin, bon, AMHA, d'après moi, c'est mon opinion que je partage,
La documentation, si, toujours. Mais documention != commentaire. Les
commentaires dans le source ne sont qu'un élément de doc, et
uniquement destinés aux développeurs.
Enfin, bon, AMHA, d'après moi, c'est mon opinion que je partage,
La documentation, si, toujours. Mais documention != commentaire. Les
commentaires dans le source ne sont qu'un élément de doc, et
uniquement destinés aux développeurs.
Enfin, bon, AMHA, d'après moi, c'est mon opinion que je partage,
Bonjour,
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus
handicapant de ne pas suivre de véritable "gestion de projet". En
effet, j'en arrive à des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment
bien débuter dans un projet PHP". Comment faites-vous lorsque vous
avez un cahier des charges assez imposant pour choisir par quoi
débuter.
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y
a lieu). Faut-il tout modulariser? Gérez-vous tout de suite les
aspects tels que l'authentification ou faites-vous cela vers la fin?
Peut-être que certains voudront bien me faire part de leur expérience
dans ce domaine ou me diriger vers des liens.
Bonjour,
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus
handicapant de ne pas suivre de véritable "gestion de projet". En
effet, j'en arrive à des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment
bien débuter dans un projet PHP". Comment faites-vous lorsque vous
avez un cahier des charges assez imposant pour choisir par quoi
débuter.
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y
a lieu). Faut-il tout modulariser? Gérez-vous tout de suite les
aspects tels que l'authentification ou faites-vous cela vers la fin?
Peut-être que certains voudront bien me faire part de leur expérience
dans ce domaine ou me diriger vers des liens.
Bonjour,
Après avoir réalisé quelques petits projets PHP sans aucune méthode de
développement, je m'apercois que cela devient de plus en plus
handicapant de ne pas suivre de véritable "gestion de projet". En
effet, j'en arrive à des fouillis de code inmaintenable.
C'est pourquoi, je fais appel à votre expérience pour savoir "comment
bien débuter dans un projet PHP". Comment faites-vous lorsque vous
avez un cahier des charges assez imposant pour choisir par quoi
débuter.
Utilisez-vous des diagramme UML et la programmation objet.
Commencez-vous par établir les prémices de la base de données (s'il y
a lieu). Faut-il tout modulariser? Gérez-vous tout de suite les
aspects tels que l'authentification ou faites-vous cela vers la fin?
Peut-être que certains voudront bien me faire part de leur expérience
dans ce domaine ou me diriger vers des liens.