L’utilisation de PHP est aujourd’hui généralisée dans tous les départements IT. Reconnue pour son évolutivité et son développement rapide, cette technologie doit désormais répondre à de fortes attentes en termes d’exigences et de qualité.
Quels sont les outils nécessaires pour piloter une équipe de développement de taille importante et produire plusieurs centaines de site web par an ? L’heure de l’industrialisation est venue, avec la mise en place d’une planification et d’une organisation de la production de code capables de détecter les bogues avant la publication.
Nous verrons les outils et méthodes nécessaires pour piloter la conception, la production, la publication et la gestion d’équipe.
Les cycles de développement des applications raccourcissent de plus en plus. La pression se fait plus forte sur les équipes de développement qui sont poussées à développer en mode mercenaire, où seul le résultat immédiat compte. Cette vision est généralement contre-productive sur le long-terme car on passe beaucoup plus de temps à maintenir une application qu'à la développer. Il est donc primordial de s'assurer de sa qualité au delà de l'adéquation avec le besoin fonctionnel.
Cela passe par de nombreux éléments dont bien entendu la qualité du code source mais pas seulement. La présence de documentations pertinentes et à jour, les types et l'étendue des tests mis en place, l'architecture de l'application ou encore sa portabilité sont autant de facteurs clés du succès d'un projet.
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n’est pas aisée si elle n’a pas été été prévue dès la conception de l’application.
Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d’exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l’installateur PEAR et le tout récent Composer.
Le comportement d’un applicatif PHP au sein d’une infrastructure complexe en production est souvent une zone d’ombre pour les développeurs. La détection et la résolution des problèmes en situations extrêmes restent des tâches ardues.
Quelle stratégie adopter, quels outils mettre en place et comment organiser ses équipes quand PHP est amené à être un socle technique pour des applications critiques ?
Que se soit suite à une attaque, une défaillance matérielle ou un bogue applicatif, et malgré toute les précautions prises en amont, aucune application en production n'est à l'abri d'une catastrophe.
L'important est d'avoir un plan de reprise sur incident efficace pour limiter le plus possible l'impact d'un tel incident sur la qualité de service.
Cela passe par une phase de préparation (mise en place de logs, sauvegardes régulière, etc) et par un plan d'action pour le jour J (Communication de crise, diagnostiques, priorisation des tâches, etc.)
Formation Usine Logicielle gratuite par Ippon 2014Ippon
Les mises en production ne sont pas condamnées à être des moments de souffrance. En apportant de la rigueur au processus de qualification du code, en automatisant un maximum de tâches et en rendant la gestion des différents environnements la plus transparente possible, cette étape ultime peut alors devenir une simple banalité.
Pour atteindre cet objectif, plusieurs aspects doivent être pris en compte, et il faut procéder avec méthode et de façon itérative.
La formation Usine Logicielle présente les différentes briques devant être mises en place pour automatiser et contrôler la production de vos livrables ainsi que leur déploiement. Illustrée par des TP lorsque dispensée par nos consultants, cette formation permet de mieux cerner les différentes étapes et leur implication technique sur les projets. Du contrôle de la qualité du code, en passant par l'automatisation de la construction des livrables, la gestion de la configuration et le provisioning des ressources sur les différents environnements, vous découvrirez les étapes essentielles à la construction d'une usine logicielle robuste, permettant de réduire le si stratégique Time To Market tout en maîtrisant le risque.
Les cycles de développement des applications raccourcissent de plus en plus. La pression se fait plus forte sur les équipes de développement qui sont poussées à développer en mode mercenaire, où seul le résultat immédiat compte. Cette vision est généralement contre-productive sur le long-terme car on passe beaucoup plus de temps à maintenir une application qu'à la développer. Il est donc primordial de s'assurer de sa qualité au delà de l'adéquation avec le besoin fonctionnel.
Cela passe par de nombreux éléments dont bien entendu la qualité du code source mais pas seulement. La présence de documentations pertinentes et à jour, les types et l'étendue des tests mis en place, l'architecture de l'application ou encore sa portabilité sont autant de facteurs clés du succès d'un projet.
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n’est pas aisée si elle n’a pas été été prévue dès la conception de l’application.
Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d’exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l’installateur PEAR et le tout récent Composer.
Le comportement d’un applicatif PHP au sein d’une infrastructure complexe en production est souvent une zone d’ombre pour les développeurs. La détection et la résolution des problèmes en situations extrêmes restent des tâches ardues.
Quelle stratégie adopter, quels outils mettre en place et comment organiser ses équipes quand PHP est amené à être un socle technique pour des applications critiques ?
Que se soit suite à une attaque, une défaillance matérielle ou un bogue applicatif, et malgré toute les précautions prises en amont, aucune application en production n'est à l'abri d'une catastrophe.
L'important est d'avoir un plan de reprise sur incident efficace pour limiter le plus possible l'impact d'un tel incident sur la qualité de service.
Cela passe par une phase de préparation (mise en place de logs, sauvegardes régulière, etc) et par un plan d'action pour le jour J (Communication de crise, diagnostiques, priorisation des tâches, etc.)
Formation Usine Logicielle gratuite par Ippon 2014Ippon
Les mises en production ne sont pas condamnées à être des moments de souffrance. En apportant de la rigueur au processus de qualification du code, en automatisant un maximum de tâches et en rendant la gestion des différents environnements la plus transparente possible, cette étape ultime peut alors devenir une simple banalité.
Pour atteindre cet objectif, plusieurs aspects doivent être pris en compte, et il faut procéder avec méthode et de façon itérative.
La formation Usine Logicielle présente les différentes briques devant être mises en place pour automatiser et contrôler la production de vos livrables ainsi que leur déploiement. Illustrée par des TP lorsque dispensée par nos consultants, cette formation permet de mieux cerner les différentes étapes et leur implication technique sur les projets. Du contrôle de la qualité du code, en passant par l'automatisation de la construction des livrables, la gestion de la configuration et le provisioning des ressources sur les différents environnements, vous découvrirez les étapes essentielles à la construction d'une usine logicielle robuste, permettant de réduire le si stratégique Time To Market tout en maîtrisant le risque.
Formation Spring Avancé gratuite par Ippon 2014Ippon
Spring est le principal framework de développement Java utilisé en entreprise. Ce succès tient au fait qu'il permet de développer facilement et rapidement des applications robustes, légères et bien testées.
Apprécié également par les cellules d'architecture et les DSI, Spring permet d'avoir des applications bien découpées en couches, facilement maintenables et évolutives.
Cependant, si une configuration Spring simple est à la portée de tous, avoir une architecture Spring correcte, en comprendre le fonctionnement interne et connaître les fonctionnalités avancées du framework sont des tâches nettement plus ardues.
L'objectif de cette formation est de donner les bonnes bases pour comprendre les principaux aspects de Spring, de manière à ce que les participants soient capables de :
- Développer une application Spring complète (persistance, métier, validation, transactions, sécurité, Web, Ajax...).
- Comprendre le fonctionnement interne de Spring et donc être autonomes lorsqu'un bug ou une situation anormale se produit.
- Avoir intégré la philosophie de développement Spring, afin de pouvoir facilement prendre en main un sous-projet ou une fonctionnalité Spring qu'ils ne connaissent pas encore.
Une usine logicielle est un ensemble d’outils pré-configurés, de frameworks, de conventions, de processus, de documentations et de modèles de projets qui structurent les développeurs et leurs développements.
L’objectif est d’automatiser au maximum la production et la maintenance des applications afin d’améliorer leur qualité et le « time to market ».
Support de notre séminaire du 08/10/2009.
- Présentation technique de la notion de portail, portlet JSR168, JSR286
- Présentation du marché
- Zoom sur les principaux acteurs Open Source du monde du portail JEE
Présentation de Maven et de son utilisation en entreprise dans le cadre du Ch'ti JUG, le 15 juin 2009.
Pourquoi Maven ? Pourquoi l'adopter ? Les bonnes et mauvaise pratiques. Son avenir ...
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
Présentation donnée par Julien Dubois lors de Devoxx France 2012, présentant comment réaliser une application moderne avec les technologies HTML5, Spring, NoSQL (Cassandra) et mobiles.
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n'est pas aisée si elle n'a pas été été prévue dès la conception de l'application. Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d'exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l'installateur PEAR et le tout récent Composer.
Le comportement d’un applicatif PHP au sein d’une infrastructure complexe en production est souvent une zone d’ombre pour les développeurs. La détection et la résolution des «bugs» ou comportement en situations extrêmes restent des tâches ardues.
Quelle stratégie adopter, quels outils mettre en place et comment organiser ses équipes quand PHP est amené à être un socle technique pour des applications critiques. Une conférence indispensable pour tout architecte ou DSI souhaitant mettre en place ou sous traiter son infrastructure PHP.
Formation Spring Avancé gratuite par Ippon 2014Ippon
Spring est le principal framework de développement Java utilisé en entreprise. Ce succès tient au fait qu'il permet de développer facilement et rapidement des applications robustes, légères et bien testées.
Apprécié également par les cellules d'architecture et les DSI, Spring permet d'avoir des applications bien découpées en couches, facilement maintenables et évolutives.
Cependant, si une configuration Spring simple est à la portée de tous, avoir une architecture Spring correcte, en comprendre le fonctionnement interne et connaître les fonctionnalités avancées du framework sont des tâches nettement plus ardues.
L'objectif de cette formation est de donner les bonnes bases pour comprendre les principaux aspects de Spring, de manière à ce que les participants soient capables de :
- Développer une application Spring complète (persistance, métier, validation, transactions, sécurité, Web, Ajax...).
- Comprendre le fonctionnement interne de Spring et donc être autonomes lorsqu'un bug ou une situation anormale se produit.
- Avoir intégré la philosophie de développement Spring, afin de pouvoir facilement prendre en main un sous-projet ou une fonctionnalité Spring qu'ils ne connaissent pas encore.
Une usine logicielle est un ensemble d’outils pré-configurés, de frameworks, de conventions, de processus, de documentations et de modèles de projets qui structurent les développeurs et leurs développements.
L’objectif est d’automatiser au maximum la production et la maintenance des applications afin d’améliorer leur qualité et le « time to market ».
Support de notre séminaire du 08/10/2009.
- Présentation technique de la notion de portail, portlet JSR168, JSR286
- Présentation du marché
- Zoom sur les principaux acteurs Open Source du monde du portail JEE
Présentation de Maven et de son utilisation en entreprise dans le cadre du Ch'ti JUG, le 15 juin 2009.
Pourquoi Maven ? Pourquoi l'adopter ? Les bonnes et mauvaise pratiques. Son avenir ...
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
Présentation donnée par Julien Dubois lors de Devoxx France 2012, présentant comment réaliser une application moderne avec les technologies HTML5, Spring, NoSQL (Cassandra) et mobiles.
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n'est pas aisée si elle n'a pas été été prévue dès la conception de l'application. Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d'exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l'installateur PEAR et le tout récent Composer.
Le comportement d’un applicatif PHP au sein d’une infrastructure complexe en production est souvent une zone d’ombre pour les développeurs. La détection et la résolution des «bugs» ou comportement en situations extrêmes restent des tâches ardues.
Quelle stratégie adopter, quels outils mettre en place et comment organiser ses équipes quand PHP est amené à être un socle technique pour des applications critiques. Une conférence indispensable pour tout architecte ou DSI souhaitant mettre en place ou sous traiter son infrastructure PHP.
Comment boucher le trou entre le développement et la production en PHP ? Quels outils de développement, quels outils de suivi de qualité, comment réussir l'intégration continue ? Nous terminerons par les us et coutumes de la mise en production.
Retour d'expérience sur la mise en place d'usines logicielles chez MMA faite pour l'Ensim (Ecole Nationale Supérieure d'Ingénieurs du Mans), niveau Master. Contenu : définitions, processus de développement agile et étapes de déploiement.
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? Christophe HERAL
Microsoft nous propose une nouvelle version de son outil d'ALM en cette fin 2012.
Nombre de fonctionnalités ont été rajoutées ou améliorées dans cette mouture, notamment pour mieux prendre en compte les besoins des agilistes.
Mais cette version va-t-elle satisfaire les plus réticents à l'utilisation d'un outil ou a-t-on affaire à une arnaque agile ?
Au cours de cette session, nous montrerons comment SOGET, éditeur de solutions logicielles innovantes dédiées à la gestion des sites portuaires, a réussi sa transformation vers les méthodes Agiles. Accompagnée par Neos-SDI, SOGET met en œuvre les technologies Microsoft et son usine logicielle TFS2010 pour mener ses différents projets du programme e-Maritime. Nous aborderons les différentes facettes de cette méthodologie : gestion des exigences, organisation des équipes, personnalisation et déploiement des outils de production logicielle, automatisation des tests. De nombreuses démonstrations viendront illustrer cet exposé d’une véritable success story.
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...Raynald M
Au cours de cette session, nous montrerons comment SOGET, éditeur de solutions logicielles innovantes dédiées à la gestion des sites portuaires, a réussi sa transformation vers les méthodes Agiles. Accompagnée par Neos-SDI, SOGET met en oeuvre les technologies Microsoft et son usine logicielle TFS2010 pour mener ses différents projets du programme e-Maritime. Nous aborderons les différentes facettes de cette méthodologie : gestion des exigences, organisation des équipes, personnalisation et déploiement des outils de production logicielle, automatisation des tests. De nombreuses démonstrations viendront illustrer cet exposé d'une véritable success story.
Drupagora - Les clés de la réussite d'un projet DrupalCore-Techs
Présentation du CMS Drupal pour l'évènement Drupagora du 9 novembre 2012. Ce diaporama donne les clés d'un démarrage projet réussi, les bonnes pratiques de développement ainsi que les outils et méthodes pour maintenir dans la durée un projet Drupal.
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Jean-Marc Fontaine
Gérer un environnement de développement efficace est une tâche plus complexe qu'il n'y paraît à première vue. D'une part parce qu'en réalité nous devons souvent en avoir plusieurs, des projets différents nécessitant généralement des configurations différentes, d'autre part parce que nous travaillons rarement seul sur un projet. Il faut donc trouver un moyen de garder une relative synchronisation entre les environnements des différents développeurs tout en évitant de polluer leurs machines avec des composants trop spécifiques ou incompatibles entre eux. Nous verrons comment Vagrant simplifie cette gestion des environnements de développement. Il s'agit d'un outil basé sur VirtualBox qui permet d'utiliser Puppet ou Chef pour gérer les configurations de machines virtuelles.
Chaque industrie possède un élément clé dans son modèle économique. Dans l'industrie du développement, le facteur de succès est sans conteste le capital humain. Savoir recruter les meilleurs développeurs est une chose difficile mais les amener à réaliser leur plein potentiel l'est tout autant. En ouvrant le code à d'autres développeurs, les revues de code permettent de rompre l'isolement et de partager les connaissances afin de créer des émulations positives au sein des équipes. Nous verrons les gains qu'on peut attendre de cette pratique, les différentes formes (formelles, itératives, pair programming, etc.) qu'elle peut prendre ainsi que les écueils à éviter pour en tirer pleinement parti.
Gérer ses environnements de développement avec Vagrant - RMLL 2012Jean-Marc Fontaine
Gérer un environnement de développement efficace est une tâche plus complexe qu’il n’y paraît à première vue. D’une part parce qu’en réalité nous devons souvent en avoir plusieurs, des projets différents nécessitant généralement des configurations différentes, d’autre part parce que nous travaillons rarement seul sur un projet. Il faut donc trouver un moyen de garder une relative synchronisation entre les environnements des différents développeurs tout en évitant de polluer leurs machines avec des composants trop spécifiques ou incompatibles entre eux.
Nous verrons comment Vagrant simplifie cette gestion des environnements de développement. Il s’agit d’un outil basé sur VirtualBox qui permet d’utiliser Puppet ou Chef pour gérer les configurations de machines virtuelles.
Que se soit suite à une attaque, une défaillance matérielle ou un bogue applicatif, et malgré toute les précautions prises en amont, aucune application en production n’est à l’abri d’une catastrophe.
L’important est d’avoir un plan de reprise sur incident efficace pour limiter le plus possible l’impact d’un tel incident sur la qualité de service.
Cela passe par une phase de préparation (mise en place de logs, sauvegardes régulière, etc) et par un plan d’action pour le jour J (Communication de crise, diagnostiques, priorisation des tâches, etc.)
Déboguer une application web peut rapidement devenir fastidieux. L'utilisation d'un débogueur simplifie ce processus mais il n'est pas toujours possible d'en utiliser un. FirePHP est une extension Firefox qui permet de fournir des informations de déboguage sans interférer avec l'affichage de l'application web. Cela est particulièrement pratique pour déboguer de l'Ajax par exemple.
Cette conférence a été donnée en collaboration avec Guillaume Ponçon, auteur du livre "PHP5 Best Practices". Elle évoque les outils et méthodes permettant de développer avec PHP de manière professionnelle.
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
2. Qui suis-je ?
Jean-Marc Fontaine
Consultant pour Alter Way Consulting
Président de l'AFUP (Association Française des Utilisateurs de PHP)
Auteur du blog Industrialisation-PHP.com
Co-auteur du livre blanc « Industrialisation PHP »
23/09/11 2
3. Livre blanc Industrialisation PHP
Panorama des outils et méthodes
d'industrialisation des
développements PHP
Publié en octobre 2009
Plus de 2 500 téléchargements
Téléchargement : http://www.alterway.fr/publications/livre-blanc-industrialisation-php
Blog : http://www.industrialisation-php.com/
23/09/11 3
4. Ordre du jour
Qu'est-ce que l'industrialisation ?
Mettre en place un environnement de travail
Former l'équipe
Éviter de réinventer la roue
S'assurer de la qualité du code
Automatiser ce qui peut l'être
Ce n'est pas que de la théorie
23/09/11 4
6. Constat
L'utilisation de PHP en entreprise hors des directions métiers et gouvernée par la DSI
est relativement récente.
Les DSI se retrouvent désormais confrontées à différentes problématiques :
Applicatifs hétérogènes
Bonnes pratiques de développement non définies ou dépendantes des applicatifs
Qualité de code disparate
Base de code non testée de manière automatique
Pas ou peu d'indicateurs de qualité, de performance, de maintenabilité du code
Pas de processus unifié sur l'ensemble des acteurs
Pression continue de la production
23/09/11 6
7. Objectifs
Gagner du temps en automatisant au maximum toutes les tâches
récurrentes
Gagner en qualité (documentation, tests unitaires, normes, respect des
licences, mutualisation…)
Gagner en réactivité
Raccourcir les cycles de mise en production
Suivre l’évolution des projets par des indicateurs clés
23/09/11 7
8. Mise en œuvre
Pas de solution miracle valable pour tous
Les outils sont nombreux et dissociés
Il faut du temps pour les mettre en place et les entretenir
Un accompagnement est souvent nécessaire
23/09/11 8
10. Dépôt de code
Facilite le travail en équipe
Permet d'avoir un historique du code
Assure la pérennité du code
Deux approches :
Dépôts centralisés (CVS, Subversion)
Dépôts décentralisés (Git, Mercurial, Bazaar)
23/09/11 10
11. IDE
Éditeur de texte sous stéroïdes
Fonctions généralement proposées :
Colorisation syntaxique
Autocomplétion
Intégration aux dépôts de code
Intégration avec un ou plusieurs frameworks
Débogueur
Profileur
Intégration d'outils externes (Tests unitaires, déploiement, gestion de base de
données, éditeur UML, prototypage, etc.)
Standardisation des outils
Intégration dans la chaîne de production
23/09/11 11
12. Quelques IDE
Eclipse
Zend Studio
Netbeans
Aptana
Komodo
23/09/11 12
13. Environnements
Développement
En local ou sur un serveur spécialisé
Débogueur et profileur disponibles
Affichage des erreurs
Pré-production
Identique à la production (performances, configuration, données)
Permet de recetter les changements
Production
Optimisé pour la performance et la sécurité
Supervisé pour assurer la qualité de service
23/09/11 13
15. Former l'équipe
Formation professionnelle
Permet de rapidement entrer dans une nouvelle technologie
Doit être suivie de mise en pratique pour être efficace
Action ponctuelle
Veille
Permet de maintenir et de développer ses connaissances
Web, livres, magazines, conférences, etc.
Travail régulier et sur le long terme pour être payant
Doit être structurée pour être exploitable par la suite
Revue de code
Améliore la connaissance du code
Favorise la collaboration et le partage des connaissances
Peut être rendue difficile par des aspects humains (timidité, orgueil, manque de
tact)
23/09/11 15
17. Eviter de réinventer la roue
Eviter le syndrôme « Pas inventé ici »
Se concentrer sur sa valeur ajoutée
23/09/11 17
18. Frameworks
Ensemble de composants éprouvés et prêts à l'emploi
Cœur technique des projets
Simplifient, standardisent et accélèrent les développements
Imposent des règles strictes de développement
23/09/11 18
19. Libraries
Permettent de rapidement mettre en œuvre des fonctionnalités plus
spécialisées (Génération d'images, de fichiers PDF, etc.)
Attention à la qualité et à la pérennité
23/09/11 19
20. Design patterns
Solutions éprouvées à des problèmes récurrents
Capitalise sur l'expérience de 40 ans de programmation
Permet de mettre un nom sur une problématique et sa solution
23/09/11 20
22. Conventions
Conventions de codage
Chacun a ses habitudes
Des conventions pour que la forme ne brouille pas la compréhension du fond
Choisir une convention existante
Conventions d'architecture
Définition d'une structure normative pour les projets
Permet un démarrage plus rapide des projets
Permet une meilleure intégration dans les processus de suivi de la qualité
23/09/11 22
23. Tests automatisés
Vérifier l'adéquation de l'application avec les spécifications
Plusieurs types
Unitaires (PHPUnit, SimpleTest, Atoum)
IHM (Selenium, Watir, Sikuli)
Fonctionnels (GreenPepper)
De montée en charge (JMeter)
Etc.
Peuvent et doivent être lancés aussi souvent de possible
Pas d'intervention humaine complexe pour les lancer
Remontée d'alertes en cas de violation des spécifications
Permet le suivi dans le temps de la qualité du projet
23/09/11 23
24. Analyse statique du code
Analyze du code sans le faire fonctionner
Permet de :
Vérifier la syntaxe
Recueillir des métriques
Analyser les flux de données
Outils :
Cornac (Projet Open Source créé par Alter Way)
PHP_CodeSniffer
phploc
Phpcpd
PHP_Depend
PHPMD
23/09/11 24
25. Intégration continue
Permet de valider, vérifier au fil de l'eau toutes les modifications
effectuées sur un code source.
Permet de limiter les effets négatifs des cycles en V.
Elle met en œuvre tous les outils et concepts vus précédemment
Tous les processus sont automatisés
La qualité du code est en permanence mesurée (couverture des tests
unitaires et fonctionnels)
Les indicateurs sont rassemblés dans une interface de présentation
La documentation est aussi générée automatiquement dans ces processus
23/09/11 25
30. Automatiser ce qui peut l'être
Évite des tâches nécessaires mais répétitives, fastidieuses et à faible valeur ajoutée
Génération de code
Permet de standardiser le code de l'application
Permet de rendre plus vite autonome une nouvelle personne
Déploiement automatisé
Évite les erreurs humaines
Assure que toutes les étapes seront faites et dans le bon ordre
Permet de déployer plus vite et sur de nombreux serveurs en parallèle
Tâches répétitives
Création de dépôt de code pour un nouveau projet
Création de branches et de tags
Empaquetage de version
23/09/11 30
34. Alter Way accompagne ses clients pour industrialiser leurs développements
23/09/11 34
35. Parcours de formation de 4 mois :
Un tronc commun : les stagiaires bénéficieront d’un cursus initiatique dispensé par
l’entité Formation d’Alter Way (organisme de formation leader sur la formation
professionnelle Open Source) qui leur permettra d’acquérir une vision globale du
secteur.
L’apprentissage d’un métier : à l’issue de ce cursus commun les stagiaires auront la
possibilité de se diriger vers le métier qui leur convient le mieux : développement,
technicien système et réseau, recherche & développement, chef de projet web,
etc.
La contribution : les stagiaires, encadrés par des collaborateurs seniors,
participeront aux projets contributifs d’Alter Way.
http://www.alterway.fr/la-libre-academie
23/09/11 35