Coding and Dreaming - PHP in 2014
Amphi C 23/06/2014 09:30-10:15 - Niveau : N/A - AnglaisSignificant performance improvements, generators, finally statement, the bundled opcache, variadics, constant scalar expressions and many other new and cool things are available in PHP 5.5 and in the upcoming 5.6 release. All fun new toys. But, as an industry, are we just playing with our toys, or are we doing something worthwhile?
Extract Till You Drop
Amphi C 23/06/2014 10:30-11:15 - Niveau : N/A - AnglaisUnder the pressure of deadlines and endless change requests, under the weight of years of legacy, code becomes unmaintainable. With the right tools, techniques, and mindset, any codebase can be brought under test, and be refactored towards a better architecture. Let’s skip the theory and dive straight into the spaghetti code. In a live coding session, I will demonstrate how you can start refactoring your way out of a mess today.
P.D.D. Pragmatism Driven Development
Salle 2 23/06/2014 10:30-11:15 - Niveau : N/A - FrançaisVous n'arrivez pas à respecter vos deadlines ? Votre client vous fait la gueule ? Vous vous dites que les tests ça a l'air cool, mais qu'on n'a jamais le temps d'en faire ? Ou au contraire vous n'êtes satisfait qu'une fois que votre projet est couvert à 99% par les tests unitaires ? Cette conférence est probablement faite pour vous (en tout cas c'est à vous que je pensais).
Je ne suis pas qu’un objet !
Salle 3 23/06/2014 10:30-11:15 - Niveau : N/A - FrançaisLa programmation objet est aujourd’hui largement répandue en PHP, mais en réalité, qu’est-ce que la programmation objet ? Est-ce le simple fait d’utiliser le mot « class » ? Est-ce le fait d’utiliser quelques patterns récupérés ici et là ? Est-ce le fait d’utiliser un framework ? Où réside la réelle force de ce paradigme ? Cette présentation a pour objectif de faire le tour de l’essence de la POO. Nous passerons en revue les éléments utilisés par les développeurs expérimentés : les interfaces, les patterns, les tests, Domain Driven Design, les secrets du nommage, la gestion des erreurs, l’injection de dépendance, et bien d’autres, y compris quelques incursions dans des domaines transverses nécessaires à l'activité de développement.
Introduction à Docker
Amphi C 23/06/2014 11:15-12:00 - Niveau : N/A - FrançaisDocker, le gestionnaire de containers, est au coeur de tous les buzz, mais reste pourtant entouré d’un certain flou artistique quand à son utilité et son fonctionnement exact. De nouvel eldorado du devops à pourfendeur de la virtualisation, en passant par baguette magique à déploiement, nous verrons ensemble ce qu’est exactement Docker, comment ça marche, et à quoi il peut vous servir.
PHP, au cœur de la stratégie Open Source de Microsoft ?
Salle 2 23/06/2014 11:15-12:00 - Niveau : N/A - Français- Evolution de la stratégie Microsoft et ouverture Cloud, Open Source
- Investissements et activités autour de PHP
- Exclusivité : Intégration Symfony2 dans Azure Website avec SensioLab
Cette conférence sera assurée par Benjamin Moulès, Pierre Joye, Frederic Aatz et Stéphane Escandell
La course effrénée aux buzzwords
Salle 3 23/06/2014 11:15-12:00 - Niveau : N/A - FrançaisPHP ce sacré hypertext preprocessor. Plébicité par le monde entier, adulé de moulte nerds, il pèse depuis 1993. Le postulat avoué de ce talk est de placer le plus de buzzwords possibles tournant autour du père PHP … Mais faisons le de manière intelligente ! Nous resterons certes sur une vision macro de chaque notion mais libre à vous de les approfondir plus tard, installé confortablement devant votre laptop avec un grand cru Nespresso Ristretto© (intensité 11, boisé & intense tout en restant équilibré). Il s’agit d’en savoir un peu plus sur les notions essentielles du moment qui vous feront briller en société: Docker, ElasticSearch, REACT, HHVM, Grunt, BDD, de fronts MVVM et bien d’autres concepts sibyllins … En prime, on illustrera ça avec un exemple de projet ULTIME du world wide web utilisant tous les buzzwords sans en laisser un de côté. Un peu l’arche de Noé PHP (mais avec plus d’éléphants à bord que de pythons). Partant ?
Quand on arrive à 100 000 lignes de code, ça ressemble à quoi une appli Symfony?
Amphi C 23/06/2014 13:30-14:15 - Niveau : N/A - FrançaisVous ne manquez pas de tutoriels pour écrire un "Hello, world" avec n'importe quel framework. Mais que se passe-t-il quand, sur cette base, vous faites travailler une équipe de 4 développeurs pendant 6 mois ? Petit retour d'expérience sur l'architecture logicielle d'une application Symfony2 de taille moyenne, avec des visualisations inédites et des indices pour répondre à cette éternelle question : mais où je le mets ce code ?
Comment grapher et visualiser vos data ?
Salle 2 23/06/2014 13:30-14:15 - Niveau : N/A - FrançaisS'il est important de mesurer les temps de réponses ou la consommation mémoire de ses pages web, il est aussi nécessaire d'affiner son analyse en mesurant par exemple le nombre de produits dans un panier, ou le prix total du panier. Nous verrons ainsi comment mettre en place une solution flexible pour grapher les métriques applicatives bien souvent oubliées. Puis comment visualiser ces données.
Pourquoi votre projet interne serait mieux en open-source sur GitHub
Salle 3 23/06/2014 13:30-14:15 - Niveau : N/A - FrançaisRetour d’expérience sur la mise en open source de http://composer.borreli.com/ Contribution, utilisation d'outil gratuits offert pour les projets gratuit/open-source, ..
Utiliser PostgreSQL en 2014
Amphi C 23/06/2014 14:15-15:00 - Niveau : N/A - FrançaisÀ l'heure où le NoSQL passe de mode doucement, il est temps de se poser les bonnes questions vis à vis des technologies de bases de données à utiliser, comment et pourquoi. PostgreSQL entre de plein droit dans la case des SGBD relationnels classiques, aussi nous commencerons par étudier ce que de ces outils apportent. Puis nous ferons le tour des fonctionnalités avancées de PostgreSQL, qui le positionnent comme un élément clé de votre architecture d'application.
REST dans le monde Symfony
Salle 2 23/06/2014 14:15-15:00 - Niveau : N/A - FrançaisVoici un tour d'horizon des outils disponibles pour créer des APIs REST robustes en PHP et plus précisément avec le framework Symfony2. Les différentes couches en jeu seront passées en revue, que ce soit le routing, la sérialisation, le versioning, les tests, mais également la documentation de vos APIs. Globalement, cette présentation fera l'état des lieux de REST dans le monde Symfony.
Du SSO via OAuth pour mieux découpler votre application
Salle 3 23/06/2014 14:15-15:00 - Niveau : N/A - FrançaisConvertir une base de code monolithique en applications modulaires et indépendantes n'est jamais une chose aisée. Le découplage est cependant un énorme atout quand il s'agit de maintenir du code et gagner en souplesse de développement. Chez BlaBlaCar nous avons opté pour cette approche dans l'utilisation de notre backoffice. Je présenterai comment nous avons transformé notre application principale en service SSO, sur lequel viennent se brancher un ensemble d'outils, via une API délivrée en OAuth. Nous verrons quels en sont les avantages niveau technique et humain, ainsi que les limites.
Indexation et recherche “like a boss” avec Elastica
Amphi C 23/06/2014 15:15-16:00 - Niveau : N/A - FrançaisAu-delà d’un certain nombre de documents, les SGBD et bases NoSQL montrent vite leurs limites sur des opérations de recherche, et le passage à un vrai index de recherche comme ElasticSearch devient alors obligatoire. La solution open-source ElasticSearch propose une très bonne API REST, dont la librairie Elastica abstrait toutes les possibilités pour une manipulation aisée avec PHP. Découvrez comment fonctionne ElasticSearch, quels sont ses atouts et comment manipuler facilement des indexes avec PHP. La présentation sera animée par des exemples “live”. L’objectif de cette conférence est de démontrer rapidement la puissance d’ElasticSearch et de faire le tour de la librairie Elastica : installation, recherche, indexation en masse, facets, débug, trucs et astuces ! Opération centrale d’un point de vue fonctionnelle et souvent problématique en termes de performances, la mise en place d’une solution de recherche efficace et scalable ne sera plus une gageure pour les développeurs PHP !
Transition agile 4 real @ meetic
Salle 2 23/06/2014 15:15-16:00 - Niveau : N/A - FrançaisScrum, Kanban, Continuous Delivery, DevOps, … une ou plusieurs des pratiques que vous aimeriez instaurer dans votre société ? Mais par où commencer ? A quoi s’attendre ? Venez découvrir durant cette session le retour d’expérience d’une transition agile ou comment les équipes IT de Meetic ont insufflé et progressivement propagé les méthodes issues des géants du web. Au programme : réalisations, succès mais aussi obstacles, pistes d’amélioration… Bref, un retour de la vraie vie sans langue de bois !
Assez(tic) de perdre du temps, automatisez ! Grrr !
Salle 3 23/06/2014 15:15-16:00 - Niveau : N/A - FrançaisTout projet Web inclut des fichiers CSS et JavaScript, et, il n'y a encore pas si longtemps, le développement, les corrections et les opérations de mise en production étaient compliqués et chronophages. Aujourd'hui, il est très simple d'automatiser plein de choses !
Nous parlerons bien évidemment de prépocesseur CSS type LESS/SASS, de "surlangage" type CoffeeScript, ainsi du pourquoi et du comment automatiser un maximum de tâches : compilation, minification, tests, pour être le plus efficace possible. Nous analyserons les outils indispensables pour cela, tels que Assetic ou encore (mieux) Grunt / Gulp et Bower. À l'issue de la présentation, les participants n'auront définitivement plus envie de fabriquer leurs CSS à la main comme en 1998, mais ils sauront comment, en pratique, ajouter aisément à leurs projets PHP une touche de productivité pour le front !
Libérez les fonctionnalités de Postgres dans vos développements PHP
Amphi C 23/06/2014 16:00-16:45 - Niveau : N/A - FrançaisAlors que tous les langages font la course au support des fonctionnalités de Postgresql, avec le gestionnaire de modèle objet Pomm, PHP les supporte déjà. Nous verrons lors de cette session pourquoi PHP, avec son ensemble riche de types et d'opérateurs peut proposer des réponses à la modélisation des données. Comment utiliser le gestionnaire d'événements de Postgres pour lancer des tâches en fond ou encore comment intégrer des données sans schéma dans un moteur de base de données relationnel fortement typé. Nous verrons encore pourquoi le SQL de Postgres peut être le meilleur ami du PHP et comment l'utiliser de façon efficace.
HHVM et "Hack”, prenez 2 versions d'avance sur PHP
Salle 3 23/06/2014 16:00-16:45 - Niveau : N/A - FrançaisIl n'y a encore pas si longtemps HHVM n'était qu'un projet un peu fou développé par 3 personnes dans un bureau de Facebook… Il y a quelques mois, il est devenu le socle du site au milliard d'utilisateurs. Depuis les résultats impressionnants des benchmarks, il est devenu l'outil dont toute la sphère PHP parle. Nous ferons un tour complet de ce qu'est HHVM, son évolution, depuis sa création jusqu'à aujourd'hui, et voir s'il est réellement fourré à la licorne et aux paillettes. HHVM va plus loin que "simplement remplacer PHP", il propose également "Hack", l'outil Facebook qui permet 2 choses : - être introuvable sur les moteurs de recherche ; - apporter un typage fort de nos variables. Nous verrons donc ensemble ce qu'apporte HHVM et "Hack", et si ça vaut le coup de donner toutes nos données personnelles pour obtenir de meilleurs outils dans les prochains mois !
Nouveau socle pour une nouvelle vie, chez M6Web
Amphi C 23/06/2014 17:00-17:45 - Niveau : N/A - FrançaisDe 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.
Pourquoi la documentation compte ?
Salle 2 23/06/2014 17:00-17:45 - Niveau : N/A - FrançaisD’aucuns trouvent que la doc, c’est la partie fastidieuse du projet. Ecrire du texte pour expliquer aux utilisateurs ce qu’on a fait, c’est la corvée pour les développeurs. Les utilisateurs sont pourtant ceux qui donnent la vie à votre logiciel, et ceux qui font votre réputation. Ils ont besoin de savoir comment se servir de votre logiciel. Personne ne veut travailler la documentation, alors que c’est la première chose qui est lue lorsqu’on installe un nouveau projet : du README à la FAQ et aux points de Référence, une bonne documentation est commme une publicité pour votre projet. La documentation donne un aperçu de la qualité de votre projet, elle est une valeur ajoutée. Nous parlerons donc de l’intérêt de la doc, de la génération de documentation, de gérer de la documentation existante, et de comment les développeurs peuvent écrire de la doc sans douleur.
Notre environnement de développement n’est plus un bizutage !
Salle 3 23/06/2014 17:00-17:45 - Niveau : N/A - FrançaisLors que nous avons commencé à travailler sur notre plate-forme, nous avons hérité d’applications développées en externe, quasiment déployées en production, à l’architecture mal documentée. A partir de là, nous avons tant bien que mal installé nos environnements de développement. Pas de vagrant, pas d’automatisation : juste des notes sur un wiki. Nous avons commencé à grandir, et avec notre plate-forme multi-composants qui avait évolué, nos nouveaux collègues ont bataillé plusieurs semaines avant de pouvoir participer ! Alors, nous avons réfléchi : comment intégrer de nouveaux développeurs ? Comment travailler sur des environnements ressemblant suffisamment à la production pour éviter les pièges les plus communs ? Depuis, nous avons automatisé et virtualisé, à l’aide de Chef, Vagrant et Docker. Nous y avons gagné des environnements plus fiables et mieux maitrisés. Nos nouveaux collègues ne dépriment plus pendant deux semaines à leur arrivée, nous avons plus de libertés d’expérimentation. Et, bonus, nous les réutilisons pour notre plate-forme de tests !
Comprendre Git et la théorie des graphes pour de bon
Amphi C 24/06/2014 09:00-09:45 - Niveau : N/A - FrançaisComprenez-vous réellement ce que vous faites quand vous faites un merge ? Un rebase ? Un cherry-pick ? Quand vous créez une branche ? Si vous avez répondu non à une de ces questions, cette conférence est pour vous. Plongez dans la théorie des graphes appliquée à Git et comprenez-en enfin les entrailles.
Déploiement continu : Click and deploy !
Salle 2 24/06/2014 09:00-09:45 - Niveau : N/A - FrançaisComment pousser du code en production plusieurs fois par jour sans pour autant faire l'impasse sur la qualité, les tests et la rigueur nécessaire ? Comment réaliser toutes ces opérations de façon industrielle ? Méthodologies et exemple avec Zend Server et Jenkins.
On a monté une équipe de zéro
Salle 3 24/06/2014 09:00-09:45 - Niveau : N/A - FrançaisL'équipe technique reste le pilier central d'un projet pour assurer sa vie et son succès. Ainsi, avant de commencer le projet, il est important de constituer une équipe qui saura le porter. C’est ce que nous avons essayé de faire en montant notre équipe technique de zéro. Cette présentation reviendra sur les différentes problématiques que nous avons rencontrées et de la manière dont nous avons choisi d’y répondre : recrutement, organisation et ambiance interne, mise en place de méthodes agiles, choix des outils techniques. Nous parlerons ainsi de nos succès mais aussi des pièges que nous n’avons pas réussi à éviter.
Stop Multiplying by 4: Practical software estimation
Amphi C 24/06/2014 09:45-10:30 - Niveau : N/A - AnglaisIn today's growing software field, many developer are being asked questions to estimate how long new features or bug fixes, will take to complete. I have heard many ways of using "formulas" to estimate time, but none of them have any mathematical backing. In this session I talk about simple ways to improve your estimation by calibrating your intuitive nature to estimate. I will also explain how to use some simple mathematically sound techniques to providing project owners with more accurate estimates.
Être agile avec ses traductions
Salle 2 24/06/2014 09:45-10:30 - Niveau : N/A - FrançaisGérer ses traductions est un processus généralement long et fastidieux. Souvent négligée, cette partie peut facilement être intégrée dans votre cycle de développement. Que ce soit pour votre site web ou votre app mobile, de nombreux outils existent pour simplifier ce processus. Plusieurs géants du web ont développé leur propre produit, adapté à leur besoin et leur infrastructure. Chez BlaBlaCar nous avons également construit notre propre solution, baptisée OpenLocalization. Edition inline, mise à jour instantanée, déploiement sur mobile, traduire devient maintenant à la porté de tous.
The Fellowship of the Code
Salle 3 24/06/2014 09:45-10:30 - Niveau : N/A - FrançaisLes présentations sur la qualité et les méthodologies de développement/déploiement, nous en avons tous vu des dizaines ! Cette contribution n'est pas une nouvelle TODO-list de "bonnes pratiques", mais plutôt le récit franc et détaillé de l'évolution des méthodes de notre équipe de production. Être fier de son travail, être plus sûr de son code, déployer l'esprit tranquille, gagner la confiance du chef de projet et du client, voilà nos objectifs. Nous allons raconter ici l'histoire de la (petite) transformation des process de notre agence, sans fard ni séduction. Les succès et les ratés, le niveau et la motivation des développeurs, les velléités du dirtech, les incompréhensions du chef de projet, la colère du client, rien ne vous sera épargné. Si tu utilises encore FTP pour déployer ton code, tu es bienvenu(e).
Comment migrer un projet majeur sous Symfony2 ?
Amphi C 24/06/2014 10:45-11:30 - Niveau : N/A - FrançaisAu travers d’une expérience sur un projet complexe, Digiposte, le coffre numérique du groupe LaPoste, nous verrons comment nous sommes passés d’une architecture avec 4 frameworks différents à une architecture contrôlé par Symfony2 et Composer.
La session présentera les différentes actions mises en place pour cette migration :
- analyse du code existant
- refactorisation de certaines parties du code legacy
- stratégies des tests
La session présentera également les processus d’industrialisation utilisés sur le projet qui compte plus de 11 environnements, avec puppet, capistrano et jenkins aux commandes.
Everything you always wanted to know about UTF-8 (but never dared to ask)
Salle 2 24/06/2014 10:45-11:30 - Niveau : N/A - AnglaisFor any application with even the remotest ambition of international use, the only way to go is to use UTF-8. And even without that ambition, using UTF-8 might still bring you more benefits than you currently realize. Unfortunately most developers at one point or another run into problems implementing UTF-8 and get discouraged. That ends now! In this talk I will cover UTF-8 from the basic linguistics, through client-side aspects to all the steps you need to take to tackle the most common (and some more obscure) issues when using UTF-8 in a database driven web application.
Tests unitaires - Je veux mes 80% de couverture de code !!!!
Salle 3 24/06/2014 10:45-11:30 - Niveau : N/A - FrançaisDe nos jours de plus en plus d'entreprises ne jurent que par les tests unitaires. Faire du test, faire du test, faire du test ! “Une application n'est pérenne que si elle est testée et elle est testée si plus de 80% du code est couvert.”
Cela devient même un élément décisif du recruteur en entretien :
- Votre collaborateur a l'air vraiment bien mais... Il a déjà fait des tests unitaires ? Il a plus de deux ans d'expérience là dessus ?
- Juste sur deux projets, par contre il possède la bonne philosophie.
- Ah oui mais non il faut qu'il en ait fait 2 ans, c'est un minimum. On cherche des experts nous !
Problématique : "Je veux minimum 80% de couverture de code !!!" Qui n'a pas entendu cette phrase dans la bouche d'un chef de projet ou d'un lead dev trop consciencieux sans doute.
Dans certains projets un test unitaire est bon si il couvre au moins 80% de la fonctionnalité à tester, c'est tout ce qui est demandé et c'est cela qu'il faut avoir. Il est avant tout essentiel de s'interroger sur la notion de couverture de code dans un test unitaire : La couverture de code est-elle un but ? un facteur qualité ? une représentation visuelle d'un test ? Ou est-ce cet horrible fantôme qui vient hanter une application ?
Pour faire simple : un test qui couvre 100% du code à tester est-il forcement fiable ?
Arrêtons de parler de code de qualité, ce qu'il faut c'est du code agile !
Amphi C 24/06/2014 11:30-12:15 - Niveau : N/A - FrançaisUn code de qualité, ça veut dire quoi exactement ? Est-ce que c'est la qualité que nous cherchons ? Quelle est la valeur ajoutée de la qualité ? Je vais vous présenter ce qu'est du code agile et pourquoi c'est mieux que du "bon" code.
Praspel, un langage de spécification par contrats
Salle 2 24/06/2014 11:30-12:15 - Niveau : N/A - FrançaisPraspel est un langage de spécification basé sur la programmation par contrats. Utilisé en annotations du code, c'est un langage simple unifiant plusieurs théories avancéees de validation et de vérification de données. Praspel est entre autres utilisé pour de la génération automatique de tests unitaires. Dans cette conférence, nous verrons diverses stratégies pour assurer une certaine qualité de code, en revenant sur les tests unitaires et la programmation par contrats. Ensuite, nous verrons comment Praspel répond à ces problématiques. Et enfin, nous verrons de quelle manière Praspel s'intègre aux outils industriels, notamment en générant automatiquement des tests unitaires exécutables avec atoum. Notons que Praspel est élaboré au sein des laboratoires de recherche de l'INRIA et de Femto-ST. 3 articles internationaux, 1 journal et 1 thèse ont d'ores et déjà été publiés.
L'asynchrone en PHP, c'est possible !
Salle 3 24/06/2014 11:30-12:15 - Niveau : N/A - FrançaisDéporter vos traitements coûteux en asynchrone est une excellente manière d'optimiser les performances de votre site web. Cependant, mettre en place ce système en PHP peut être source de problèmes. Nous verrons comment gérer efficacement des workers PHP à travers différents exemples concrets. Nous parlerons RabbitMQ, Cilex, supervisord et bien d'autres encore. :)
Avoiding the Mud
Amphi C 24/06/2014 13:45-14:30 - Niveau : N/A - AnglaisUsing one of the many PHP frameworks, it easy to make quick progress in the early stages of a project. Often though this initial high velocity is short lived as complexities in the domain run into the technical constraints of the framework. This talk looks at some of the ways we can achieve better separation between our domain models and frameworks. By aiming to achieve this clean separation between model and framework from the start we can avoid projects becoming an unmaintainable ball of mud.
PHP 5.3 ? PHP 5.6 : no pain but gain !
Salle 2 24/06/2014 13:45-14:30 - Niveau : N/A - FrançaisAvec une nouvelle version chaque année, PHP 5 a avancé à un rythme régulier depuis la sortie de PHP 5.3. Chaque pas apporte une série d’évolutions rendant le langage plus concis et les développeurs plus efficaces, tout en corrigeant certains défauts parfois longtemps reprochés. Cela dit, ces améliorations ne sont que trop lentement adoptées. Peut-être parce que, malgré leur intérêt, passer des mises à jour semble trop souvent effrayant ? Pourtant, les montées de versions n’ont pas à se faire dans la douleur : avec un peu de méthode et de préparation, il est possible de bénéficier des évolutions de chaque version de PHP sans pour autant mettre le feu à la salle serveurs ! Cette présentation commencera par passer en revue les principales évolutions apportées par les versions 5.4 à 5.6 de PHP, pour ensuite donner quelques pistes facilitant les migrations successives et leur permettant de se dérouler sans incident majeur.
Développer et packager votre application Symfony2 avec Docker et Vagrant
Salle 3 24/06/2014 13:45-14:30 - Niveau : N/A - FrançaisTester ses développements directement sur sa machine est source du classique "je ne comprends pas, ça marche chez moi". D'un autre côté, Vagrant qui permet d'harmoniser les environnements de développement et de production avec des machines virtuelles VirtualBox, a un impact fort sur les performances de l'environnement de développement. Il manquait une solution intermédiaire… c'est là qu'apparaît Docker et son intégration récente dans Vagrant. Dans un premier temps, nous découvrirons ensemble quels bénéfices découlent directement de la conteneurisation Docker d'une application Symfony2 et les écueils à éviter. Ensuite nous verrons comment automatiser, en quelques itérations, l'approvisionnement de notre conteneur. Enfin, nous nous appuierons sur l'intégration dans Vagrant afin de permettre le déploiement de nouveaux livrables dans les environnements de pré-production et production dans une logique Devops.
YooopeeCache
Amphi C 24/06/2014 14:30-15:15 - Niveau : N/A - FrançaisOPCache est le cache d'OPCode par défaut depuis PHP5.5. Nous allons ici voir à quoi il sert, comment l'installer et le configurer. Aussi, nous tenterons d'expliquer comment il fonctionne en interne, comment il optimise le code de PHP et améliore grandement les performances de vos applications. Un parallèle avec le très connu APC sera dressé, ainsi qu'un guide de migration.
Soyez lean : monitorez vos projets
Salle 2 24/06/2014 14:30-15:15 - Niveau : N/A - FrançaisLe monitoring est souvent la dernière roue du carosse lorsqu’il s’agit de développer et mettre en ligne une application web. Il devrait pourtant être intégré dès le début : bien monitorer son application dès le premier déploiement, c’est aussi un moyen de prioriser les améliorations futures, et des indicateurs métiers bien choisis peuvent être l’outil le plus pertinent pour détecter un dysfonctionnement imprévu. Dans cette présentation, nous aborderons les différents aspects du monitoring, et comment ce dernier s’intègre pleinement aux cycles de développement d’une application. Nous montrerons comment les divers outils à notre disposition comme new relic, graylog, logstash ou le plus récent heka de Mozilla permettent de mettre en place un monitoring efficace de vos applications en très peu de temps : aucune excuse pour ne pas le faire :)
Développeurs / Chefs de projet réconciliez-vous
Salle 3 24/06/2014 14:30-15:15 - Niveau : N/A - FrançaisCe talk s'adresse aux personnes en charge d'un ou plusieurs développeurs ainsi qu'aux développeurs (de préférence sur les projets avec Symfony2). Les astuces que je donne dans ce talk se prêtent surtout si le projet se déroule suivant la méthodologie agile (Scrum). En trois axes, on aborde mieux tout ce qui est inhérent à un projet qui doit d'abord bien se passer au sein de son équipe.
I. Vos places ne sont pas forcément où vous le pensiez… Des méthodes pour le développeur et pour le chef de projet pour se comprendre l'un l'autre.
II. Chef de projet ! On ne s'éloigne pas de la réalité. Développeurs? On lève la tête deux minutes pour regarder autour de soi. - Développeurs : il existe de nombreux moyens de sortir de sa routine. - Chef de projet : il faut rendre heureux vos développeurs.
III. On apprend tous les jours! - Développeurs un moyen de guider l'avancée du projet (et oui, c'est possible). - Chef(s) de projet : faire que votre équipe se perfectionne toujours un peu plus.
Prévenez la dette technique de vos projets
Amphi C 24/06/2014 15:30-16:15 - Niveau : N/A - Français“ne touche pas à cette fonction”
“les tests sont pétés mais on y fait plus attention”
“mais comment est-ce que ça a fait pour fonctionner ?”
“j’ai patché le core à l’arrache, ça fonctionne”
“pourcentage de duplication : 30%”
Rhaaaaaaaaaaa.
Et pourtant, ça nous concerne tous !
Dans tout développement logiciel non trivial, nous sommes confrontés à des choix d’architecture et les contraintes de leurs implémentations.
Pour respecter nos délais de livraison, par pragmatisme ou par nécessité nous prenons souvent des décisions techniques qui ne sont pas idéales mais suffisantes au moment présent, des “raccourcis”.
L’accumulation de ces raccourcis forme un ensemble qui devient problématique pour la maintenabilité de l’ensemble et pour garder des possibilité d’évolution. Ce phénomène porte un nom : la "dette technique". Les thèmes de cette conférence sont “méthodologies de travail” et “industrialisation”.
Le choix de ces thèmes est révélateur de ce que nous constatons déjà sur le terrain : une prise de conscience qu’un projet technique ne concerne pas *uniquement* le code qui le compose, mais aussi les interactions humaines et machines, sa pérennité, son attrait pour les questions de recrutement, etc.
Cette conférence propose de déchiffrer la dette technique en profondeur.
Elle en présentera les causes les plus fréquentes, quelques moyens de s'en prémunir au maximum (il n'est jamais possible de s'en affranchir, mais on peut toujours essayer d'en minimiser l'impact), et aussi… les moyens d'action quand… c'est trop tard.
Le miracle DevOps
Salle 2 24/06/2014 15:30-16:15 - Niveau : N/A - FrançaisDans notre économie numérique, ce n’est pas les gros qui mangent les petits, c’est les rapides qui mangent les lents. Les méthodes de gestion de projets informatiques traditionnelles ont mené à des échecs spectaculaires en termes de délais et de gestion de risque. En parallèle, des leaders du web tels qu’Amazon, Netflix ou Google ont atteint une vélocité incroyable grâce à une implémentation audacieuse des principes d’agilité. Parmi ces différents mouvements agiles, DevOps rassemble des experts du développement et de l’opérationnel sur la manière dont doit être implémentée l’agilité, de la conception technique jusqu’à la mise en production, pour atteindre une vélocité maximale. Dans cette conférence, je partagerai l’expérience de Theodo sur plusieurs projets de grande envergure (jusqu’à 15 développeurs). Je présenterai ce que DevOps signifie pour nous et comment il nous aide à livrer nos projets de manière plus rapide et plus fiable. Nous passerons en revue les challenges auxquels nous avons été confrontée, tant d’un point de vue management, technique ou culturel et présenterons les solutions que nous avons trouvées, basées sur des technologies puissantes : Symfony2, OpenStack, Puppet, Vagrant, Capifony, Jenkins, Behat et d’autres…
Utilisation concrète du Doctrine LExer
Salle 3 24/06/2014 15:30-16:15 - Niveau : N/A - FrançaisDurant cette présentation, nous verrons comment tirer parti du Doctrine Lexer pour générer des requêtes ElasticSearch complexes à partir d'un langage humain.
LT : 42 protips pour le dev' PHP
Amphi C 24/06/2014 16:15-17:00 - Niveau : N/A - FrançaisNous ferons le tour de pas moins de 42 trucs et astuces utiles à tous les développeurs PHP.
LT : TravisCi en local en moins de 5 minutes
Amphi C 24/06/2014 16:15-17:00 - Niveau : N/A - FrançaisAvez vous besoin d'executer vos tests sur plusieurs environnements différents (php 5.3, php 5.4, mysql, postgresql , ... ) ? TravisCi est excellent dans ce domaine. Cependant, son mode SaaS peut être une contrainte pour votre entreprise, et on aimerait bien pouvoir tester *avant* de commit son code ! Nous verrons dans ce lightning talk qu'il existe maintenant des solutions clés en main pour cette problématique qui se résoudra en moins de 5 minutes !
LT : Rejoindre une startup a changé ma vie
Amphi C 24/06/2014 16:15-17:00 - Niveau : N/A - FrançaisLe passage des prestations de service puis conseil à une entreprise utilisatrice finale, et plus particulièrement startup où l'objectif est de concevoir un produit a été une révolution pour moi. L'objectif en quelques minutes est de partager cet enthousiasme, montrer ce qui se fait en dehors des sociétés de services, agence et grosses entreprise, que travailler tous ensemble à un produit dans la durée, à construire quelque chose peut changer la vie quotidienne et la motivation. Bref, vous redonner à vous aussi l'envie de faire des choses, sans idéalisme mais juste pour partager le positif et donner un éclairage sur ce que certains ne connaissent peut être pas.
LT : Debugger efficacement son code ou la mort de var_dump
Amphi C 24/06/2014 16:15-17:00 - Niveau : N/A - FrançaisPHP a 20 ans, et pourtant tous les jours, des gens, anonymes, rajoutent des var_dump en prod pour debugger. Et si. Le but est double : - éduquer sur les dangers du debug intrusif, nécessitant de modifier le fonctionnement au runtime, et toute les effet de bord qu'il peut introduire - fournir à tous les moyens de debugger efficacement, à travers toute la stack, et même pour ce qui n'est reproduit qu'en prod. De manière éprouvée et pourtant (très) méconnue comme un debugger pas-à-pas via xdebug, à travers une REPL avec boris ou PsySH, directement dans la console de debug du navigateur.
LT : Le nouveau dans l'équipe, boulet ou messie ?
Amphi C 24/06/2014 16:15-17:00 - Niveau : N/A - FrançaisJean-Kevin, 20 ans: "Je suis arrivé il y peu dans une entreprise où chacun de mes collègues est là depuis plusieurs années, et où l'application a près de 10 ans (et les process qui gravitent autour aussi…). Tout est compliqué alors que ca pourrait être simple, le code est tout moisi, et pourtant tout le monde trouve ça plutôt pas mal. Moi j'ai plein d'idées et j'ai envie de tout révolutionner, de toute façon je sais mieux que tout ceux qui sont englués dans cette situation et qui ne cherchent pas à s'améliorer." --- Firmin, 55 ans : "Depuis un mois, on a un espèce de je-sais-tout tout frais sorti de InfogenieurSup43 Il passe son temps à faire la leçon sur comment on pourrait tout réecrire avec nodeJS, à expliquer qu'on s'emmerde pour rien dans nos process qualité et qu'on devrait tout changer pour amener un code ownership global via une synergie de revue de testing TDD. Encore un truc de hipster qui mange bio. Vivement qu'il se calme et qu'il rentre un peu dans le rang." ======= Ces deux caricatures sont probablement familière. Au cours de notre carrière, on a tous été au moins un de ces clichés, peut-être même les deux. Je suis arrivé dans une nouvelle entreprise il y a un an, et je pense vraiment que les nouveau venu ont le pouvoir d'amener quelque chose de spécial, par leur vision fraiche et leur motivation, à condition d'être cadrés et accompagnés. Mon but est de parler de cette expérience, de ce qui a bien marché et des erreurs à éviter, des deux cotés du miroir, afin de tirer le maximum de l'arrivée d'un nouveau venu au sein d'une équipe.