Page 1 sur 2

Bien concevoir un projet .........

Posté : 15 mai 2008, 22:24
par dunbar
Bonsoir,

Certain ici ont commencer par faire un Forum :wink: pour apprendre/comprendre PHP, imaginons que quelqu'un vous demande des conseils pour un CMS ....

:arrow: Comment commenceriez-vous :?:
:arrow: Que pensez-vous qu'ils manque aux CMS existant :?:
:arrow: Quelles serais votre priorité dans la conception d'un telle projet :?:

D'avance merci

Re: Bien concevoir un projet .........

Posté : 15 mai 2008, 22:38
par Cyrano
Certain ici ont commencer par faire un Forum
Qui m'a dénoncé ??? Hein ? Allons avouez...


lol, bon, blague mise à part, c'est très exactement ce que j'ai fait : mais ce qui est peut-être important, c'est la manière dont j'ai abordé ça : et ma première action a été de prendre un paier format A4 environ et de faire, à l'instar de monsieur Jourdain faisant de la prose sans le savoir, de l'algorithme sans le savoir. J'ai décomposé un problème global en questions binaires.

Mon forum n'a jamais fait fureur, mais il tient toujours la route et n'a jamais été piraté non plus ni pourri de spam. Bon ok, son taux de fréquentation avoisinant un vide abyssal n'a sûrement pas aidé à sa notoriété.

Je n'ai jamais utilisé de CMS : le reproche que je fais généralement à ces montages, c'est qu'il y a 80% de code en trop, trop d'options par rapport au besoin réel, donc 80% de code mort à terme quand on met en service.

Ma priorité dans un projet de ce type ?
- Définir le plus précisément le besoin;
- Vérifier si éventuellement un CMS existant peut répondre à ce besoin;
- Vérifier le cas échéant si on peut virer la soupe inutile sans casser le reste;
- Sinon voir comment exploiter les techniques utilisées pour développer un système approprié moins lourd.

Mais enfin bon, je dis ça, mais je dis rien hein ? :P

Posté : 15 mai 2008, 23:01
par SAEVEAS
pour ma part :

1/ analyse fonctionnel : décrire les fonctions du système dans ses différent cycle de vie ( installation, maintenance, usage etc). Je préfères pour ma part rester dans "le système doit" ce qui n'induit pas forcement une réponse informatique et aussi d'essayer d'être le plus large possible sur les fonctionnalité.

2/ analyse de la valeur : dans un deuxième temps pour chaque fonction precedements citées je vais notées ou faire notée sur une échelle de valeur les fonctions (vitales, utiles, moins utiles ect) de façon à définir plus précisément les contours du projet.

3/ analyse Merise ou UML : on commence à rentrer dans la description très précise du projet. Une attention particulière pour le MCT qui est souvent sous estimé, les traitement doivent être décrit au moins les principaux.

4/ Développement : une méthode de dev pourra être mise en place comme XP par exemple.


Je suis assez d'accord avec Cyrano, la plupart des CMS sont des usines à gaz qui en essayant de répondre à tout les besoin deviennent rebutant et lourd.
Pour moi la première qualité d'un CMS doit être la simplicité. Le concept d'organisation doit aussi être intuitif pour permettre la prise en main et surtout l'acceptation par les usagers du CMS comme un outil et non une galère ou une contrainte.[/u]

Re: Bien concevoir un projet .........

Posté : 15 mai 2008, 23:56
par dunbar
Certain ici ont commencer par faire un Forum
Qui m'a dénoncé ??? Hein ? Allons avouez...
Toi même dans un de tes postes et dans un autre encore mais excuse moi j'ai pas trop envie de me taper 17529 post pour te dire dans lequel tu a encore vendu la mèche :wink:
Ceci dit merci pour vos réponses j'en prends bonne note surtout que je suis assez d'accord avec vos arguments

Une question quand même le MCT qui pourrais m'expliquer en deux mots :oops:

Merci

Posté : 16 mai 2008, 00:15
par SAEVEAS
le MCT : modèle conceptuel de traitement.

En gros c'est un schéma qui décrit les grand process et qui sert ensuite de suport lors du dev.

Code : Tout sélectionner

ex : l'inscription. le schéma va décrire la manière dont va se dérouler l'inscription. le client remplit le formulaire et les soumet cas 1 formulaire incomplet : on le renvoi au début cas 2 formulaire ok Le système renvoi un mail de confirmation ou un intervenant (a définir) valide l'accès
Tu dois faire apparaitre le déroulement complet avec toute les entées et les conditions de sortie.

En gros tu vas décortiquer tout ton fonctionnement pour savoir exactement qui fait quoi et comment.
Ca permet par exemple en cas d'intervention humaine de pouvoir quantifier les heures et donc les masses salariales necessaire au fonctionnement du système. Ca permet surtout à notre niveau de bien avoir en tête le process complet et un support graphique au cas ou l'on aurait un doute.

Posté : 16 mai 2008, 00:21
par dunbar
Ok merci SAEVEAS
:wink:

Posté : 16 mai 2008, 03:56
par AB
Pour les CMS, mêmes remarques que SAEVEAS et Cyrano. Usine à gaz et il manque souvent une fonctionnalité qu'on voudrait avoir. Alors bon, plus vite fait de faire un truc simple qui correspond exactement aux besoins que d'aller tripatouiller dans le code des CMS tous faits pour y rajouter une fonctionnalité.
Parfois même ça pond du code pas très propre donc cela demande une certaine discipline difficile à acquérir pour un utilisateur lambda.

Pour ces raisons je fais des CMS sur mesure adaptés au contenu de la page. Cela ne m'empêche pas bien sûr d'avoir développé quelques fonctions génériques qui permettent par exemple d'insérer des photos, de la musique et de la vidéo, au fil du texte en trois clics :

1 positionnement du curseur à l'endroit d'insertion
2 choix du type de fichier à insérer (qui ouvre un popup listant le répertoire concerné)
3 clic sur le nom du fichier (une fonction complémentaire permet de lire le fichier
image, musique ou vidéo, pour contrôle préalable) qui insère automatiquement le nom du fichier entouré de deux balises à l'endroit d'insertion.

J'ai une autre fonction qui permet de faire du float (left ou right) pour insérer ces mêmes objets en début de paragraphe et être "habillés" par le texte.

Etc.

Inconvénient de ma méthode, ce n'est pas wysiwyg donc on passe par une phase de prévisualisation avant validation. Mais le gros avantage c'est que même quelqu'un qui ne connait rien à l'informatique peut gérer son site sans pb et très rapidement; y revenir plusieurs semaines plus tard, avoir tout oublié, mais pas grave y'avait rien à se souvenir :)

Posté : 16 mai 2008, 10:32
par steph29
pour m'etre penché sur le probleme, voici un petit retour d'experience.
le cms gere des pages, chaque page a besoin d'infiormation specifique:

- un titre
- une description
- une image principale (optionnel)
- des infos de referencement
- un lien
- un positionnement dans le site (hierarchie)
- un positionnement dans les blocs (navigation, menu, signature, etc..)
- une visibilité

donc avec tout ca on un joli tronc commun (le noyau de base)
avec gestion commune des reecriture, des modifcations, de l'ordre, etc...

puis pour des pages specifiques on surcharge ce noyau par un module specifique (gestion d'actualites, de produits, etc..) en typant les pages.
ainsi par exemple pour un module d'actualite,
on a besoin d'une page de listing des rubriques et des pages de détail des actus
des informations suppelementaires sont necessaires (gestion de la date de l'actu, de la date de publication etc..)

on peut ainsi appliquer des regles de reecritures pour chaque module et type de page

au final on a un cms assez simple et basique qui peux facilement s'adapter avec peu de dev supplementaire... vive l'objet ;)

Posté : 16 mai 2008, 16:50
par SAEVEAS
Désolé de dire ca mais tu as au dessus l'exemple a ne pas faire a mon sens.

AB comme Steph29 ont deja leur librairies ou en tout cas leur facon de faire.
Ils ont deja passé l'étape de l'analyse fonctionnelle ^^

Un bon dev c'est 60% d'analyse et 40% de code pas l'inverse !! :lol: :lol:

Posté : 16 mai 2008, 16:55
par dunbar
Désolé de dire ca mais tu as au dessus l'exemple a ne pas faire a mon sens.

AB comme Steph29 ont deja leur librairies ou en tout cas leur facon de faire.
Ils ont deja passé l'étape de l'analyse fonctionnelle ^^

Un bon dev c'est 60% d'analyse et 40% de code pas l'inverse !! :lol: :lol:
J'en prend bonne note :wink:

Posté : 16 mai 2008, 17:51
par AB
Ils ont deja passé l'étape de l'analyse fonctionnelle ^^
Pour ces raisons je fais des CMS sur mesure adaptés au contenu de la page...
Ah bah plus généralement ça veux dire : adaptés aux besoins du client :wink:

Ce que je voulais simplement souligner c'est que je n'oriente pas à priori vers des CMS tout faits. Mais bien entendu si quelqu'un en veut un, ou si c'est le mieux adapté, il sera implémenté.

Maintenant ce n'est pas parce qu'on a une librairie de fonctions qu'on cherche à les placer sans discernement :roll:

Posté : 16 mai 2008, 18:05
par katagoto
Un bon dev c'est 60% d'analyse et 40% de code pas l'inverse !! :lol: :lol:
Je penses plutôt a 50/50, certes concevoir demande de l'analyse, certes l'analyse en soit est plus important que le code en lui même mais une fois mon analyse fait, je n'ais pas fait le plus gros...
Je pense que l'analyse et le code sont équivalent...

Posté : 16 mai 2008, 23:15
par Cyrano
certes l'analyse en soit est plus important que le code en lui même mais une fois mon analyse fait, je n'ais pas fait le plus gros......
Ho que si ! C'est même la raison d'être de l'analyse : on définit tous les éléments soigneusement : quand on en arrive au codage, ça revient à traduire des définitions fonctionnelles dans un langage informatique. Avec un minimum de méthode, ça prend très peu de temps et le 60/40 est largement vrai, certains vont jusqu'à 70/30. Une analyse soigneuse n'est jamais une perte de temps si c'est fait dans les règles de l'art s'entend.

Posté : 16 mai 2008, 23:50
par Hywan
Hey :),

Pour ma part, les CMS arrivent au bout de leur vie. Cyrano a tout a fait raison, trop de code et surtout trop de n'importe quoi. Un CMS est rarement très bien codé (d'après mon expérience, j'espère me tromper).

Je ne vais pas répéter ce qui a déjà été dit. Je vais me contenter de dire qu'une chose fait fureur en ce moment : les CMF (comprendre Content Management Framework). Un truc un peu à la Symphony quoi (non Damien, ne me tape pas !). On n'est pas dans le framework pur et dur où se tape tout l'assemblage à la main, mais on déjà dans des lignes de commandes qui prépares le terrain, on a des scripts de boutiques tout fait, des mini-CMS intégrés, des gestions de modules tellement simplifiées qu'on a rien à faire ni à écrire etc. Ça a son charme (mais ça ne m'attire pas). Symphony a beaucoup d'atout hein, il ne faut pas s'arrêter à ce que je dis. C'est une de ses nombreuses faces.

Une petite précision à ce qu'a dit Saevas : un MCT est intemporel. C'est un peu le truc super important en fait, car il décrit les actions déclenchées par des événements externes, qui engendrent une opération et un résultat. Merise n'est pas compliqué. Il a son vocabulaire, précis et pensé, et on se rend compte que quand on se laisse guider par la méthodologie Merise — très bêtement, au pas à pas — on aboutit la plupart du temps sur un système performant : la classe.

Mais si tu veux concevoir un outil performant, il te faut des outils performants. Commence donc par attrouper tous les outils dont tu vas avoir besoin. Tu fais ça en objet ou en fonctionnel, c'est comme tu veux, mais fait le bien. Pense surtout modulaire (donc objet en fait …). Si tu veux pouvoir maintenir et faire évoluer ton projet, il faut qu'il soit conçu pour. Pense à ça.

Après, il y a ta façon de travailler qui compte. Convention de nommage, documentation, et tout le toutime ;-).

Et si on compare méthodologie/codage : c'est plus 65/35 chez moi. Je passe de plus en plus de temps avec mon crayon de papier et ma feuille qu'avec mon clavier. Je n'étais pas du tout adepte il y a deux ans, mais je suis accro maintenant. Et le travail n'en est que de meilleure qualité (même si j'ai encore beaucoup, beaucoup, beaucoup de chemin à faire ;-)).

Posté : 17 mai 2008, 05:19
par AB
@Cyrano & HyWaN

Sur le principe, dire que l'analyse fonctionnelle est essentielle, cela va de soit.
Après, le prorata entre le temps passé entre l'analyse fonctionnelle et le temps de codage, ça dépend un peu beaucoup de l'expérience du codeur, non ? Un informaticien qui connait ne connait pas le langage php peut faire une excellente analyse fonctionnelle mais quand il s'agira de coder, ça lui prendra beaucoup plus de temps que dans son premier langage.
Bref ce que je veux dire c'est qu'il faut comprendre vos chiffres dans le cadre d'un développeur professionnel expérimenté sinon cela n'a pas beaucoup de sens :wink:

@HyWaN
Là, comparer un framework comme Symphony directement à un CMS, c'est sûr que tu cherche la guerre :lol: Sinon j'ai connu un autre HyWaN beaucoup plus rigoureux (jusqu'à limite pénible) dans son langage :lol: