peanut : retour d’expériences et nouvelle roadmap

Bonsoir à tous,

Au programme ce soir et malgré le manque de nouvelles, un petit récapitulatif de l’évolution de ce modeste CMS qu’est peanut. Commençons par les chiffres, depuis le début du projet jusqu’à ce jour (soit sept mois) :

  • 12 sites en production utilisent le moteur dans sa dernière version
  • Le site le plus rapidement créé (5 pages, un formulaire de contact) l’a été en une demie-journée (intégration comprise) – oui, il y a vraiment une charte graphique. Et avec du CSS3 svp.
  • Le projet le plus long s’étale sur 20 jours/homme et est basé sur l’ensemble des plugins auxquels il ajoute un certain nombre de fonctionnalités
  • 12 plugins (pas tous publiés) ont été créés pour notamment recréer l’ensemble des fonctionnalités (ou presque) de wordpress
  • et… deux gros bugs clairement identifiés : gestion des nestedSet dans peanutPage, un problème de génération du sitemap sur le plugin peanutSeo du aux relations many-to-many

Et bien sur son lot d’imperfections dignes des plus grand CMS – ou pas.

Bilan

Côté humain, ces sept mois de développement m’ont vraiment permis de continuer à gravir cette montagne qu’est PHP et tout ce qui gravite autour. Cette évolution se ressent un peu sur symfony mais surtout sur les autres moteurs. J’arrive beaucoup plus facilement à comprendre/assimiler/développer sur des frameworks et faire un peu de Zend, Magento ou même Code Igniter et ils ne me font plus du tout peur. Et je ne vous parle même pas de mon dernier thème wordpress, réalisé pour des besoins pro dont l’approche est complètement différente pour moi.

Depuis environ un mois, l’idée de faire évoluer peanut afin de lui faire prendre une nouvelle orientation me travaille vraiment et de récents retours professionnel ont fini de me convaincre : il faut s’orienter vers une solution CMF, adaptée pour des besoins sans cesse grandissants et couvrant un réél besoin – notamment au niveau professionnel. Cette notion (j’ai un peu honte la) d’entreprise 2.0 m’a toujours fascinée et c’est vraiment la chose la plus attirante pour moi. Couvrir la multitude de besoins professionnels, c’est s’ouvrir à un monde dont l’exigence est haute, aussi bien au niveau technique qu’au niveau ergonomique ou fonctionnelle.

Je pense donc créer une nouvelle branche de peanut n’ayant pas du tout pour but bannir la précédente mais tout simplement de l’industrialiser. peanut ne sera plus une suite de modules dans une (ou plusieurs applications) afin de couvrir un besoin mais bel et bien une application couvrant un besoin évolutif à travers différents modules -vous pouvez relire deux fois la phrase.

Et la on se dit « mon dieu, il va faire du Symfony 2.0 ! »

Perdu.

Perdu parce que dans un premier temps, je ne me sens techniquement pas prêt à pratiquer Symfony dans sa version 2.0. Symfony est vraiment sexy sur le papier mais également trop technique pour moi -tout le monde n’est pas autodidacte comme N1k0. Je préfère donc me concentrer dans un premier temps sur quelque chose d’accessible, autour d’une communauté pouvant répondre à des questions me permettant encore d’évoluer jusqu’à me sentir techniquement prêt pour quitter symfony et faire du Symfony. À contrario, cette démarche sous-entends que je souhaite réellement me préparer à Symfony et qu’il faut donc que je m’impose des process et une industrialisation forte afin de fournir le meilleur de moi-même dans un respect total des bonnes pratiques en général.

Un peu de technique maintenant

Voici ce que j’aimerais utiliser pour la suite du projet.

Suivi du projet

  • Bug tracker : Mantis
  • Intégration continue : Hudson
  • Controle de code : Checkstyle
  • Analyseur de code : Pdepend / DRY
  • Documentation : PHPDoc
  • Versionning de fichier : Git

Logiciels

  • IDE de développement : Netbeans
  • Suivi de version : Gitti
  • Gestion de base de données : Sequel Pro

Développement

  • Framework PHP : symfony
  • BDD : Doctrine
  • Framework JS : jQuery
  • Framework CSS : bic CSS + LESS
  • Utilisation de HTML5/CSS3

Divers

  • Convention de code : symfony
  • Intégration de tests unitaires
  • Intégration de tests fonctionnels
  • Modélisation : UML2
  • Une application symfony est un sous-domaine
  • Plus d’utilisation de l’admin-generator
  • Chaque application possède son API
  • Le projet est orienté utilisateur sous la forme d’un CMF

La grosse interrogation pour moi est la mise en place d’Hudson et des différents plugins ainsi que l’utilisation au quotidien de l’outil. Mon macbook pro va t-il me suffire (théoriquement oui) mais est-ce forcément la meilleure solution ou ne vaux t-il mieux pas passer à une solution web hébergée sur un autre serveur (Intranet/Extranet/Internet) ? Si vous avez une idée sur la question, je suis preneur.

Pour le reste, il faudra attendre un peu. Je pense faire une présentation (plus parlante que de longues explications) du projet avec de bons vieux slides !




Theme Forest

Comments

  1. JEDI_BC octobre 19th

    Comment Arrow

    Super intéressant tout ça. On voit que tu as la volonté d’avancer, ce que mon poil dans la main m’a fait perdre depuis longtemps ^_^

    J’ai hâte de voire la modélisation UML2 en espérant qu’elle soit un peu expliqué. J’ai des bouquins du genre « UML2 – modéliser une application web » mais j’ai jamais réussit à le lire.

    Concernant le choix du bug tracker, personnellement je ne comprendrais jamais le choix de mantis tellement je le trouve laid. Je veux bien croire qu’il soit super puissant mais je pense que l’expérience utilisateur doit donner envi de l’utiliser, ce qui n’est pas le cas pour moi. Je préfère un bon redmine ou un InDeferro si tu veux rester sous PHP.

    Pour le coté utilisation de l’industrialisation, il est clair que ton macbook pro va pas suffire si tu veux que tout le monde puisse suivre l’évolution du projet. Un petit serveur dédié genre dedibox V3 serait un vrai confort. C’est sur que c’est un investissement mais perso ça fait quelques années que j’ai un dédié et même si je ne l’utilise pas beaucoup, il me dépanne bien assez souvent. Au pire je pourrais t’y faire une petite place ;-)


  2. Camille octobre 24th

    Comment Arrow

    Un bon petit http://integrityapp.com/ hosté chez heroku ou alwaysdata et hop ! Parce que je vois pas pourquoi tu t’embêtes avec Hudson pour un truc pas du tout en Java.


  3. Camille octobre 24th

    Comment Arrow

    Et bravo aussi :)


Add Yours

  • Author Avatar

    YOU


Comment Arrow



About Author

Alexandre

Tenancier de ce blog, je suis avant tout un fan du web et de ses technologies. Si vous voulez en savoir plus, rendez-vous sur la page à propos.