Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nouveau socle pour une nouvelle vie, chez M6Web

Nouveau socle pour une nouvelle vie, chez M6Web

De 2006 à aujourd’hui, d’une start-up avec 3 développeurs à une direction technique de plusieurs dizaines de développeurs, retour d’expérience sur les étapes qui nous ont amenés à industrialiser nos développements Php, nos outils et notre culture.

kennydee

June 20, 2014
Tweet

More Decks by kennydee

Other Decks in Programming

Transcript

  1. about.me Kenny DITS @kenny_dee Responsable Etude & Developpement chez M6Web

    Sites de chaînes (m6.fr, w9.fr, …) Connect Portails thématiques (clubic.com, jeuxvideo.fr, turbo.fr, deco.fr)
  2. –Moi / F.Jomier - On purge le cache infini tous

    les jours ! - Non, c'est le cache 7 jours qu'on purge tous les jours
  3. La « dév » ssh <login>@dev /home/<login>/<projet>/ = http://<login>.dev.<projet>.fr Très

    proche de la production Même configuration pour chaque développeur
  4. Migration Php 5 PHP 4 => PHP 5.2 Procédural =>

    POO Canada Dry E_ALL http://tech.m6web.fr/la-poo- canada-dry/
  5. – D. Roussel / M. Brunot - Je veux faire

    du code qui marche et qui sert à quelque chose ! - C’est soit l'un, soit l'autre, mec…
  6. - Un dev - « De toute facon, y’a pas

    de conséquence : au pire, on meurt. »
  7. Les ateliers Utilisation d’un framework ou pas Passage à UTF-8

    ou conservation ISO-8859-1 Passage à GIT Symfony 2 Jenkins Stratégie de cache Intégration de WS dans l’architecture globale Passage à Php 5.3 ou PHP 5.4 Feature Flipping Une base de données par environnement Utilisation d’un ORM ou pas Librairies internes Exemple de mauvaises pratiques
  8. Le nouveau socle est né Symfony 2 / Php 5.4

    / Mysql InnoDb Code Review Git / Gitlab Scrum POO Tests Monitoring
  9. Le nouveau socle : Comment ? Impossible de tout jeter

    Arriver a faire cohabiter du legacy et du « nouveau socle » Découpage en un maximum de petites briques
  10. Culture Pousser tout le monde à faire de la veille

    technique Faire en sorte que les dévs soient fiers de leur travail Rendre intéressants techniquement des projets fonctionnellement pénibles Supprimer les « silos » S’ouvrir
  11. L’open Source Sensibilisation à l’Open Source https://github.com/M6Web/ Trouver des petits

    projets ou side- projects à Open-Sourcer Force a écrire du code « propre » et « testé »
  12. Les projets open Source Projects Coke is a Shell/Bash command

    using PHP Code Sniffer allowing rules management per project JenkinsLight is a build monitoring tool (buildwall) that allows you to quickly detect failing projects for Jenkins VigoJS is a (small) Javascript tool using CasperJS and PhantomJS to make easily functional tests on web applications HttpToStatsd is a node.js http to statsd logger And many more : http://tech.m6web.fr/oss/
  13. Les bundles & libs Open Source Bundle and libs StatsdBundle

    : Symfony2 Bundle easing the statsd usage Firewall and FireWallBundle : Symfony2 bundle providing IP filtering features Redis : PHP component used to access Redis throught predis, and RedisMock : A simple PHP Redis mock websocket-bench : Nodejs cli tool for benchmark web socket server, currently support (socket.io, faye) HttpKernelBundle : Custom sf2 HttpKernel with additional events And many more : http://tech.m6web.fr/oss/
  14. Babitch Enregistrez vos scores de babyfoot et comparez vos statistiques

    #kikimeter https://github.com/M6Web/Babitch et https://github.com/M6Web/BabitchClient API Symfony2 RESTFul Front AngularJS Yeoman, D3.JS, Protractor, Bower, Grunt …
  15. Les conférences externes Réseautage Prendre du recul sur son quotidien

    Apprendre un maximum Etre conforté dans ses choix
  16. Last Friday Talk Les conférences internes Pour l’orateur Communiquer, creuser

    les sujets, devenir référent Pour le public Veille techno, Idées, Compétence
  17. Last Friday Talk Les karaokés Slideshow ! Plus d’infos :

    http:// tech.m6web.fr/organiser-des- conferences-technique-en- interne/
  18. Les outils Jenkins (Intégration continue) HipChat + Fubot (Centre de

    notifications) ScrumWise Github Enterprise \o/
  19. La Code Review Utilisation maximum des Pull Requests de Github

    Augmentation de la qualité du code Et de la couverture de tests Humilité des développeurs http://tech.m6web.fr/lache-moi-la- branch/
  20. Aujourd’hui : Grosse majorité des développements réalisés « nouveau socle

    ». L’ « ancien socle » existe et existera encore longtemps. Qualité du code en très forte progression. Cloudification progressive de nos briques (2nd écran). Feedback des équipes très positif.
  21. A améliorer : Integration continue avec Docker. Test fonctionnels multi

    browser. + de partage (OpenSource / Vidéos / Articles …). Alerting. Plateforme de logs applicatifs (Kibana/Elastic Search) Le mélange « ancien / nouveau » socle, rend « l’ancien » très dur à maintenir.
  22. A retenir ? N’hésitez à vous faire aider. Ouvrez vous,

    partagez, regardez ce que font les autres. Travaillez la « culture » et la veille. L’industrialisation, la qualité, les bons outils, rendent votre travail plus agréable. Le code que vous faites aujourd’hui, est le merdier que vous aurez à gérer demain.