Organiser efficacement son depot de code par Jean Marc FontaineALTER WAY
Cette conférence dépoussière l’usage du dépôt de code et le replace au centre de l’usine de développement : les développeurs y poussent du code, l’intégration continue l’analyse, l’outil de déploiement l’envoie vers les serveurs.
Il est capital d’organiser efficacement le dépôt de code. Cela passe notamment par sa sécurisation, le choix des politiques de commit et de branchage ou encore ses interactions avec l’extérieur.
Nous verrons comment répondre à ses problématiques avec les deux outils phares que sont Subversion et Git.
Organiser efficacement son depot de code par Jean Marc FontaineALTER WAY
Cette conférence dépoussière l’usage du dépôt de code et le replace au centre de l’usine de développement : les développeurs y poussent du code, l’intégration continue l’analyse, l’outil de déploiement l’envoie vers les serveurs.
Il est capital d’organiser efficacement le dépôt de code. Cela passe notamment par sa sécurisation, le choix des politiques de commit et de branchage ou encore ses interactions avec l’extérieur.
Nous verrons comment répondre à ses problématiques avec les deux outils phares que sont Subversion et Git.
Maintenir du code historique , par Jean Marc FontaineALTER WAY
Les bonnes pratiques de développement ont généralement pour pré-requis implicite d’avoir toute latitude sur le projet. Malheureusement, on hérite souvent d’un code historique plus ou moins bien conçu.
Faut-il simplement renoncer aux bonnes pratiques sous prétexte qu’on ne commence pas un projet de zéro ?
Nous verrons qu’en introduisant une bonne dose de pragmatisme, il est possible d’intégrer petit à petit des bonnes pratiques dans un code afin d’en faire progresser la qualité par étapes.
Architecture de services web de type ressourceAntoine Pouch
Les services de type ressource sont très répandus, ils se cachent parmi nous sous l'appellation RESTful. Mais ils n'étaient pas là les premiers et leurs ancêtres ont 2-3 choses à nous apprendre. Par ailleurs, ils bénéficieront grandement d'un peu plus d'attention que de simplement les coller sur un framwork MVC. J'expliquerai les différentes couches les composants, les différents systèmes de requête/réponse et leur intégration avec ces fameux frameworks MVC que tout le monde adore.
Le panel-GZW est une solution destinée à l’hébergement de sites internet sur des plates-formes de type Unix/Linux. Actuellement les environnements non-Unix (Microsoft) ne sont pas compatibles.
Cette solution a été conçue au tour de cinq points majeurs :
- Un code source ouvert.
- Une solution gratuite.
- Une simplicité tant côté serveur que côté interface.
- Une indépendance du serveur vis à vis de notre solution.
- Une modularité en fournissant la possibilité de développer aisément des modules.
En utilisant cette solution, l’hébergé pourra facilement gérer son hébergement web en utilisant toute une liste de modules tels que :
- La gestion des utilisateurs FTP.
- La gestion des emails.
- La gestion des domaines.
- La gestion des tâches planifiées.
- La gestion des bases de données SQL.
Pour ce qui est de l’administrateur système, ce dernier pourra gérer de manière très simple les actions suivantes :
- L’activation/désactivation des modules.
- Les quotas.
- Les membres présents sur la plate-forme.
- Les comptes FTP.
- Les bases de données SQL.
- Les boîtes email, les redirections email.
- Les tâches planifiées.
- Les pré-installations.
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.
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.
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.
Contenu connexe
Similaire à Organiser efficacement son dépôt de code - RMLL 2011
Maintenir du code historique , par Jean Marc FontaineALTER WAY
Les bonnes pratiques de développement ont généralement pour pré-requis implicite d’avoir toute latitude sur le projet. Malheureusement, on hérite souvent d’un code historique plus ou moins bien conçu.
Faut-il simplement renoncer aux bonnes pratiques sous prétexte qu’on ne commence pas un projet de zéro ?
Nous verrons qu’en introduisant une bonne dose de pragmatisme, il est possible d’intégrer petit à petit des bonnes pratiques dans un code afin d’en faire progresser la qualité par étapes.
Architecture de services web de type ressourceAntoine Pouch
Les services de type ressource sont très répandus, ils se cachent parmi nous sous l'appellation RESTful. Mais ils n'étaient pas là les premiers et leurs ancêtres ont 2-3 choses à nous apprendre. Par ailleurs, ils bénéficieront grandement d'un peu plus d'attention que de simplement les coller sur un framwork MVC. J'expliquerai les différentes couches les composants, les différents systèmes de requête/réponse et leur intégration avec ces fameux frameworks MVC que tout le monde adore.
Le panel-GZW est une solution destinée à l’hébergement de sites internet sur des plates-formes de type Unix/Linux. Actuellement les environnements non-Unix (Microsoft) ne sont pas compatibles.
Cette solution a été conçue au tour de cinq points majeurs :
- Un code source ouvert.
- Une solution gratuite.
- Une simplicité tant côté serveur que côté interface.
- Une indépendance du serveur vis à vis de notre solution.
- Une modularité en fournissant la possibilité de développer aisément des modules.
En utilisant cette solution, l’hébergé pourra facilement gérer son hébergement web en utilisant toute une liste de modules tels que :
- La gestion des utilisateurs FTP.
- La gestion des emails.
- La gestion des domaines.
- La gestion des tâches planifiées.
- La gestion des bases de données SQL.
Pour ce qui est de l’administrateur système, ce dernier pourra gérer de manière très simple les actions suivantes :
- L’activation/désactivation des modules.
- Les quotas.
- Les membres présents sur la plate-forme.
- Les comptes FTP.
- Les bases de données SQL.
- Les boîtes email, les redirections email.
- Les tâches planifiées.
- Les pré-installations.
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.
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.
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.
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.
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.)
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.
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.
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.)
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 ?
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.
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 - 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 :
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!
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
2. Qui suis-je ?
» Jean-Marc Fontaine
» Consultant pour Alter Way Consulting
» Président de l'AFUP
» Formateur / Professeur vacataire à l'université de Saint Quentin
» Auteur du blog Industrialisation-PHP.com
» Co-auteur du livre blanc « Industrialisation PHP »
3. Un outil indispensable
» On ne travaille jamais seul
» On oublie
» On essaye
» On se trompe
» Écrire du code n'est qu'une petite partie du travail
9. Un dépôt
» Gestion des accès facilité
» Dépôt potentiellement très gros
» Difficulté à gérer finement les droits
» Impossible à faire avec Git
22/07/11 ALTER WAY - Titre
10. Plusieurs dépôts
» Multiplication des accès
» Facilité à définir des droits fins
» Les projets sont indépendants
22/07/11 ALTER WAY - Titre
11. Sécuriser son dépôt
» Gérer les accès
» Gérer les droits
» Gérer la communication
– Utiliser HTTPS ou SSH
22/07/11 ALTER WAY - Titre
13. Gérer les branches (1/2)
» Branche par version / par fonctionnalités
22/07/11 ALTER WAY - Titre
14. Gérer les branches (2/2)
» Approche hybride
http://nvie.com/posts/a-successful-git-branching-model/
22/07/11 ALTER WAY - Titre
15. Gérer les tags
» Les utiliser
» Les nommer de manière cohérente
– RELEASE_1.0.0
– v1.0.3rc3
» Ne jamais commiter sur un tag
22/07/11 ALTER WAY - Titre
16. Politique de commit
» Toujours mettre un message concis et pertinent
» Faire des commits atomiques
» Utiliser le message de commit pour interagir avec d'autres outils
22/07/11 ALTER WAY - Titre
17. Intégrer des éléments tiers
» svn:externals
» Submodules Git
22/07/11 ALTER WAY - Titre
22. Merci !
» Email : jm@jmfontaine.net
» Twitter : jmfontaine
» Blog : www.jmfontaine.net
» Autre blog : www.industrialisation-php.net
22/07/11 ALTER WAY - Titre
Notes de l'éditeur
Pas besoin d'argumenter : un dépôt de code est indispensable à partir d'un seul développeur
Pas là pour convaincre du bien-fondé de l'utilisation d'un dépôt de code Le vous de dans un mois, 3 mois, 6 mois est une autre personne