2 vendredi 5 avril 13 * Loi des 2 pieds ! * Si vous n'êtes en train d'apprendre ou de contribuer, passez à autre chose ! * Ne vous sentez pas obligé de rester ici * Cette conférence n'est pas technique ! * On apprend pas comment utiliser Silex ! * Un simple retour d'expérience, pour partager les erreurs, succès ! * A la fin, un regard sur cette année passée
* The ebook alternative * Startup dans le monde du livre numérique<br /> * Plateforme compléte de diffusion et de lecture de livres numériques<br /> * Silex * Pour voir si vous avez suivi ;) * Nous allons y revenir ... * Ruby * J'ai vu d'autres choses, d'autres approches, car je pense "le bon outil pour le bon besoin" * Symfony * Découverte en 2007 (Symfony 1.0 !) * Application en SSII (responsable technique) * Migration progressive jusque Symfony2.0
à construire 7 vendredi 5 avril 13 * Startup * Nouvelle société * Nouvelle branche (livre numérique) * Tout à construire, tout à faire, sur une équipe réduite
• Sentiment d’être contraint 9 vendredi 5 avril 13 * Equipe d'experts => 2 séniors, 1 débutante avec de grands idéaux => Expérience significative en Symfony 1/2 * Le sentiment d'être plus souvent contraint qu'aidé par le framework
numériques • Beaucoup de traitements métiers • Uniquement des API 11 vendredi 5 avril 13 * Un projet qui sort des sentiers battus * Beaucoup de traitements métiers * Stockage de fichier, watermarking, protection DRM, ... * On utilise pas trop les fonctionnalités du Framework * Uniquement des APIs * Part minime du fonctionnement général
Ecrans de reporting de données • Connexion/profils utilisateurs 12 vendredi 5 avril 13 * Un projet "classique" * Des écrans qui servent d'interfaces pour création/modification de données * Un peu de calcul, mais sans plus * Profils utilisateurs * Ecrans à contenu adaptables
par la feuille blanche • Récupération des bonnes idées • Arborescence • ORM • Twig • Adaptation de ce qui gène • Controleurs partagés 13 vendredi 5 avril 13 * Feuille blanche * Grisé par le "tout à faire" * Euphorie du début * On récupère les bonnées idées * Arborescence * Découpage propre * ORM * Doctrine * On garde toute la couche * Twig * C'est tellement pratique de l'utiliser * On adapte celles qui nous gènes * Controlleurs partagés * On construit des controlleurs qui sont réutilisables, et utilisés par plusieurs routes
gardé ça ?» Tout ce qu’on voulait éviter, les contraintes sans la souplesse 15 vendredi 5 avril 13 * Système rigide * Qui n’a jamais pesté après Doctrine pour faire une requête un peu compliquée ? * Perte de performances * Verbosité
pas utilisé le composant Console ?» On a réinventé la roue 17 vendredi 5 avril 13 * Emporté par l'élan, on a fait une monumentale erreur * Ecriture de notre propre librairie de commandes CLI, mais fonctionnellement loin du composant Symfony
pas utilisé le composant Console ?» On a réinventé la roue Et en plus, elle est carrée :/ 18 vendredi 5 avril 13 * Emporté par l'élan, on a fait une monumentale erreur * Ecriture de notre propre librairie de commandes CLI, mais fonctionnellement loin du composant Symfony
• Valeurs par défaut • Gestion multi-environnement 19 vendredi 5 avril 13 * Gestion et accès facile * Pimple est cool ... * ... mais il faut l'alimenter :/ * Valeurs par défaut * Comment éviter 10mn de configuration à chaque MEP * Gestion multi-environnement * ça semble simple, hein ;)
de l’ORM • Conservation de la couche DBAL 21 vendredi 5 avril 13 * Retrait ORM * Tout ce qui est Entity, Repository, bref, le code auto-généré * On ne passera plus par du code pour accéder à la base de données * Conservation de la couche DBAL * Facilité d'accès à la connexion * Gestion des erreurs * Protection des requêtes * Encapsulation "simple"
le «tremblement de terre» • Cohabitation • Difficulté de maintenir 2 versions en parallèle 23 vendredi 5 avril 13 * Refactoring "tremblement de terre" * On ne peux pas investir X jours sans produire de la valeur * On fait la base, le nécessaire, puis ça sera du continue * Cohabitation * On est plus devant une feuille vierge * On "paye la note" * Maintenance * Une petite modif ? Ah bah non, c'est dans un code à migrer
! • Instauration de la notion de services • Tiens, une 3ème organisation 25 vendredi 5 avril 13 * A force de se renseigner, on trouve de nouvelles idées * Le découpage est plus proche de notre approche par profil * ça colle, on y va * Nouvelle organisation * Alors que le refactoring précédent n'est pas terminé, on s'apprète à introduire une 3ème approche * Alerte * On va trop vite, on se laisse trop porter par le vent
! • Instauration de la notion de services • Tiens, une 3ème organisation ALERTE ROUGE ! 26 vendredi 5 avril 13 * A force de se renseigner, on trouve de nouvelles idées * Le découpage est plus proche de notre approche par profil * ça colle, on y va * Nouvelle organisation * Alors que le refactoring précédent n'est pas terminé, on s'apprète à introduire une 3ème approche * Alerte * On va trop vite, on se laisse trop porter par le vent
a fortement changée en quelques mois • Sur Silex • Sur notre métier • On se pose et on parle 28 vendredi 5 avril 13 * Vision * En quelques mois, on est fortement monté en compétences sur Silex (intrinsèque et bonnes pratiques) * Nous avons découvert notre métier, et ses contraintes * Capable de voir et comprendre les erreurs qui ont été faites * Discussion * On prend le temps de se poser, d'échanger sur les bonnes idées, les gros ecueils, ...
• Nouvel investissement • Guidelines pour éviter que ça ne se reproduise 29 vendredi 5 avril 13 * Il faut trancher en fonction de différents indicateurs * Gène à la maintenance * Portée de la modification * Temps de développement * On se donne des bonnes pratiques, à suivre pour la cohérence générale et pour ne pas que ça se reproduise
Presque tout les retours concernent le backend • Warehouse principalement pour les bonnes pratiques 31 vendredi 5 avril 13 * Backend * La plupart des retours auraient pu être évités dans un contexte plus formel * Chacun est parti dans son coin, sur ses bonnes pratiques, sans le cadre du framework * Warehouse * Quelques errements, mais globalement maitrisé * L’erreur principale concerne surtout le composant Console
Backend : Symfony2 • Warehouse : Silex 32 vendredi 5 avril 13 * Backend * Symfony : Trop besoin d'outils déjà existant * On a trop réinventé la roue sur ce projet * Warehouse * On continuerais avec Silex * Ce projet contient principalement du code business, sans trop de code classique * Trop peu d'utilisation des composants de Symfony, trop de hors chemin * On est persuadé que Symfony nous aurais demandé du travail d'adaptation (Bundle, modèle, ...)
Indicateur : nombre de composants utilisés • Se poser la question des composants utiles tôt • Est-ce un projet « standard » ? 33 vendredi 5 avril 13 * Réinstallation composant * Si on en installe trop, c'est qu'on fait quelque chose de mal * Quels composants ? * Se poser la question au plus tôt de ce qu'il faut * Projet standard * Si Symfony convient, pourquoi vouloir en sortir ? * Ne pas se laisser porter par le vent des nouveautés