Le développement d'applications lourdes à base de JavaScript est désormais possible. Cependant, cela requiert de bien connaître le langage en lui-même ainsi que les meilleurs patterns et pratiques établit ces 10 dernières années à travers des frameworks comme YUI ou jQuery par exemple. Vous verrez donc ici comment bien structurer votre code, comment utiliser des approches permettant de palier à certaines limitations de JS et comment également industrialiser le code grâce à la mise en place de tests unitaires.
Tester unitairement une application javaAntoine Rey
Présente les différents types de tests automatisés, les objectifs des tests unitaires, les stratégies de mise en œuvre, les bonnes pratiques, les difficultés, ce qu'est un mock, différents outils (Unitils, Mockito, DbUnit, Spring Test) et des exemples de tests (DAO et contrôleurs Spring MVC), sans oublier le test de code legacy.
JavaScript est désormais omniprésent et rend possible l'écriture d'applications complexes et riches. Mais il est souvent mal connu des développeurs orientés objets classiques comme ceux pratiquant le C#, le Java ou le PHP. Cette session passera donc en revue les bases du langage JavaScript, ses spécificités comme les portées, les closures, le this différent de ce que vous pouvez connaître. Bref, vous verrez qu'il y a des pièges à éviter et qu'il ne faut pas négliger JavaScript. Il est très puissant mais potentiellement différent de ce vous connaissez déjà. Venez apprendre à le respecter avant de le maitriser!
Nouveautés JavaScript dans le monde Microsoftdavrous
Présentation delivrée le 19 mars 2015 lors du JavaScript Open Day: http://www.meetup.com/Javascript-Open-Day/events/220087351/
Au programme: les nouveautés du moteur du projet Spartan comme Web Audio ou ECMAScript 6
Le développement d'applications lourdes à base de JavaScript est désormais possible. Cependant, cela requiert de bien connaître le langage en lui-même ainsi que les meilleurs patterns et pratiques établit ces 10 dernières années à travers des frameworks comme YUI ou jQuery par exemple. Vous verrez donc ici comment bien structurer votre code, comment utiliser des approches permettant de palier à certaines limitations de JS et comment également industrialiser le code grâce à la mise en place de tests unitaires.
Tester unitairement une application javaAntoine Rey
Présente les différents types de tests automatisés, les objectifs des tests unitaires, les stratégies de mise en œuvre, les bonnes pratiques, les difficultés, ce qu'est un mock, différents outils (Unitils, Mockito, DbUnit, Spring Test) et des exemples de tests (DAO et contrôleurs Spring MVC), sans oublier le test de code legacy.
JavaScript est désormais omniprésent et rend possible l'écriture d'applications complexes et riches. Mais il est souvent mal connu des développeurs orientés objets classiques comme ceux pratiquant le C#, le Java ou le PHP. Cette session passera donc en revue les bases du langage JavaScript, ses spécificités comme les portées, les closures, le this différent de ce que vous pouvez connaître. Bref, vous verrez qu'il y a des pièges à éviter et qu'il ne faut pas négliger JavaScript. Il est très puissant mais potentiellement différent de ce vous connaissez déjà. Venez apprendre à le respecter avant de le maitriser!
Nouveautés JavaScript dans le monde Microsoftdavrous
Présentation delivrée le 19 mars 2015 lors du JavaScript Open Day: http://www.meetup.com/Javascript-Open-Day/events/220087351/
Au programme: les nouveautés du moteur du projet Spartan comme Web Audio ou ECMAScript 6
Objectifs généraux :
Savoir effectuer une requête HTTP synchrone ou asynchrone
Savoir effectuer des requêtes RESTful avec les méthodes GET, POST, PUT, PATCH et DELETE
Objectifs opérationnels :
Comprendre une requête synchrone
Effectuer une requête synchrone
Lire, d’une manière synchrone, le contenu d’un fichier local
Comprendre une requête asynchrone
Effectuer une requête asynchrone
Récupérer des données à partir d’un serveur avec une requête asynchrone
Comprendre les méthodes de requête RESTful
Effectuer des requêtes RESTful avec les méthodes GET, POST, PUT, PATCH et DELETE
L'idée est de faire un point sur JavaScript, ses origines et son actualité, vu de la perspective d'un développeur Microsoft. Cette présentation est essentiellement destinée aux développeurs .NET qui auraient le sentiment d'avoir un peu lâché JavaScript, et qui voudraient se remettre dans le bain.
Javascript pour les développeurs Java : quels sont les pièges à éviter ?FlorianBoulay
Présentation donnée lors de Devoxx France 2013 dans le cadre d'un quickie.
Détails sur le site de Devoxx France : http://www.devoxx.com/display/FR13/JavaScript+pour+les+developpeurs+Java+++quels+sont+les+pieges+a+eviter
Voici le résumé de cette session :
Javascript a été inspiré par différents langages. Java lui a donné sa syntaxe, ses objets et ses méthodes.
Les syntaxes de Javascript et Java sont très proches, les développeurs Java pensent de la même manière lorsqu'ils codent dans ces 2 langages. Cependant Javascript possèdent de nombreuses subtilités qui peuvent se transformer en bugs si elles ne sont pas connues.
A travers ce quickie, je vais lister les prinicipaux pièges dans lesquels les développeurs Java ont tendance à tomber et comment les éviter. Voici une liste non exhaustive des points qui seront abordés :
* Les différents opérateurs permettant de tester l'égalité : == et ===
* La portée des variables
* L'enfer des variables globales ou comment isoler les variables pour qu'elles ne soient pas globales
* Les conversions de chaînes de caractères en nombre
* Les objets natifs Javascript ne devant pas être utilisés comme en Java
* L'objet this et ses différentes utilisations
Et d'autres encore !
Objectif général : Prendre en main l’une des bibliothèques JavaScript les plus utilisés pour créer des interfaces utilisateurs
Objectifs spécifiques :
Découper l’interface utilisateur avec les composants;
Configurer les composants avec « props »;
Gérer l’état local d’un composant avec « state »;
Afficher une listes de composants avec map();
Afficher un composant en fonction de l’état de l’application;
Interagir avec un utilisateur grâce à la gestion des événements;
Interagir avec un utilisateur par le biais des formulaires;
Communiquer avec un serveur HTTP avec AJAX;
Afficher des vues en fonction de l’URL avec le routage;
Mettre en forme un composant;
The document provides information about Xcode 4, including:
- It introduces new features of Xcode 4 such as the integrated interface builder, single window mode, advanced search, and the new debugger.
- It discusses the transition from Xcode 3, including how to do a clean uninstall of Xcode 3 and migrate projects to Xcode 4.
- It demonstrates some of Xcode 4's improvements like the navigator, editor, and utilities panes as well as the new schemes and version editor.
CocoaHeads Rennes #4 : la rotation sur iOSCocoaHeadsRNS
This document summarizes a presentation on handling orientation changes in iOS. It discusses using the UIViewController methods shouldAutorotateToInterfaceOrientation and willRotateToInterfaceOrientation to control orientation support and respond to rotations. It also covers using the UIView property autoresizingMask to handle automatic view resizing, as well as the UIWindow and UIDevice properties for detecting orientation changes. Example code is provided for setting the autoresizing mask and retrieving orientation values.
CocoaHeads Rennes #9 : Gestion mémoire, du débutant à l'expertCocoaHeadsRNS
La session rennaise des CocoaHeads du mois d'avril 2012 fût l'occasion de revenir sur un des grands sujets d'iOS: la gestion mémoire. Thomas Dupont nous a présenté le sujet en partant des considérations les plus simples en allant vers les cas les plus complexes. Sa présentation est assurément un bon moyen pour se lancer dans le sujet, pour faire un rappel des basiques ou pour aller plus loin ... Une large partie de sa présentation était consacrée à ARC.
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
Xcode, c’est très puissant, mais devoir recompiler, charger et relancer son application à chaque fois qu’on fait une modification dans le code, ça devient vite fastidieux. Si les changements dans le code pouvaient s’appliquer en temps réel dans l’application, on gagnerait pas mal de temps qu’on pourrait consacrer à expérimenter des idées nouvelles et à améliorer nos apps. Un rêve ? Plus vraiment.
Celedev, une startup rennaise, a développé un environnement de développement pour iOS entièrement conçu autour de cette idée de Programmation Responsive. Jean-Luc Jumpertz (créateur de Celedev) est venu nous présenter cet outil et nous faire une petite démo.
Olivier Halligon nous a présenté sa librairie OHHTTPStubs. Cette dernière permet de bouchonner vos requêtes réseau facilement. Sans modifier le code de votre application. Très utile dans les phases de développement et de test.
CocoaHeads Rennes #1 : Grand Central DispatchCocoaHeadsRNS
Slides de la présentation "TA la découverte de Grand Central Dispatch" de la session des CocoaHeads Rennais du 21 avril 2011. Présentation assurée par Pierre Duchêne et Thomas Dupont, ingénieurs chez Niji
Objectifs généraux :
Savoir effectuer une requête HTTP synchrone ou asynchrone
Savoir effectuer des requêtes RESTful avec les méthodes GET, POST, PUT, PATCH et DELETE
Objectifs opérationnels :
Comprendre une requête synchrone
Effectuer une requête synchrone
Lire, d’une manière synchrone, le contenu d’un fichier local
Comprendre une requête asynchrone
Effectuer une requête asynchrone
Récupérer des données à partir d’un serveur avec une requête asynchrone
Comprendre les méthodes de requête RESTful
Effectuer des requêtes RESTful avec les méthodes GET, POST, PUT, PATCH et DELETE
L'idée est de faire un point sur JavaScript, ses origines et son actualité, vu de la perspective d'un développeur Microsoft. Cette présentation est essentiellement destinée aux développeurs .NET qui auraient le sentiment d'avoir un peu lâché JavaScript, et qui voudraient se remettre dans le bain.
Javascript pour les développeurs Java : quels sont les pièges à éviter ?FlorianBoulay
Présentation donnée lors de Devoxx France 2013 dans le cadre d'un quickie.
Détails sur le site de Devoxx France : http://www.devoxx.com/display/FR13/JavaScript+pour+les+developpeurs+Java+++quels+sont+les+pieges+a+eviter
Voici le résumé de cette session :
Javascript a été inspiré par différents langages. Java lui a donné sa syntaxe, ses objets et ses méthodes.
Les syntaxes de Javascript et Java sont très proches, les développeurs Java pensent de la même manière lorsqu'ils codent dans ces 2 langages. Cependant Javascript possèdent de nombreuses subtilités qui peuvent se transformer en bugs si elles ne sont pas connues.
A travers ce quickie, je vais lister les prinicipaux pièges dans lesquels les développeurs Java ont tendance à tomber et comment les éviter. Voici une liste non exhaustive des points qui seront abordés :
* Les différents opérateurs permettant de tester l'égalité : == et ===
* La portée des variables
* L'enfer des variables globales ou comment isoler les variables pour qu'elles ne soient pas globales
* Les conversions de chaînes de caractères en nombre
* Les objets natifs Javascript ne devant pas être utilisés comme en Java
* L'objet this et ses différentes utilisations
Et d'autres encore !
Objectif général : Prendre en main l’une des bibliothèques JavaScript les plus utilisés pour créer des interfaces utilisateurs
Objectifs spécifiques :
Découper l’interface utilisateur avec les composants;
Configurer les composants avec « props »;
Gérer l’état local d’un composant avec « state »;
Afficher une listes de composants avec map();
Afficher un composant en fonction de l’état de l’application;
Interagir avec un utilisateur grâce à la gestion des événements;
Interagir avec un utilisateur par le biais des formulaires;
Communiquer avec un serveur HTTP avec AJAX;
Afficher des vues en fonction de l’URL avec le routage;
Mettre en forme un composant;
The document provides information about Xcode 4, including:
- It introduces new features of Xcode 4 such as the integrated interface builder, single window mode, advanced search, and the new debugger.
- It discusses the transition from Xcode 3, including how to do a clean uninstall of Xcode 3 and migrate projects to Xcode 4.
- It demonstrates some of Xcode 4's improvements like the navigator, editor, and utilities panes as well as the new schemes and version editor.
CocoaHeads Rennes #4 : la rotation sur iOSCocoaHeadsRNS
This document summarizes a presentation on handling orientation changes in iOS. It discusses using the UIViewController methods shouldAutorotateToInterfaceOrientation and willRotateToInterfaceOrientation to control orientation support and respond to rotations. It also covers using the UIView property autoresizingMask to handle automatic view resizing, as well as the UIWindow and UIDevice properties for detecting orientation changes. Example code is provided for setting the autoresizing mask and retrieving orientation values.
CocoaHeads Rennes #9 : Gestion mémoire, du débutant à l'expertCocoaHeadsRNS
La session rennaise des CocoaHeads du mois d'avril 2012 fût l'occasion de revenir sur un des grands sujets d'iOS: la gestion mémoire. Thomas Dupont nous a présenté le sujet en partant des considérations les plus simples en allant vers les cas les plus complexes. Sa présentation est assurément un bon moyen pour se lancer dans le sujet, pour faire un rappel des basiques ou pour aller plus loin ... Une large partie de sa présentation était consacrée à ARC.
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
Xcode, c’est très puissant, mais devoir recompiler, charger et relancer son application à chaque fois qu’on fait une modification dans le code, ça devient vite fastidieux. Si les changements dans le code pouvaient s’appliquer en temps réel dans l’application, on gagnerait pas mal de temps qu’on pourrait consacrer à expérimenter des idées nouvelles et à améliorer nos apps. Un rêve ? Plus vraiment.
Celedev, une startup rennaise, a développé un environnement de développement pour iOS entièrement conçu autour de cette idée de Programmation Responsive. Jean-Luc Jumpertz (créateur de Celedev) est venu nous présenter cet outil et nous faire une petite démo.
Olivier Halligon nous a présenté sa librairie OHHTTPStubs. Cette dernière permet de bouchonner vos requêtes réseau facilement. Sans modifier le code de votre application. Très utile dans les phases de développement et de test.
CocoaHeads Rennes #1 : Grand Central DispatchCocoaHeadsRNS
Slides de la présentation "TA la découverte de Grand Central Dispatch" de la session des CocoaHeads Rennais du 21 avril 2011. Présentation assurée par Pierre Duchêne et Thomas Dupont, ingénieurs chez Niji
Intégration Continue PHP avec Jenkins CIHugo Hamon
Comment assurer le suivi qualite du code source d'une application web? Ce n'est pas une tache aisée ! C’est d’autant plus vrai que PHP est encore considéré aujourd'hui comme un langage peu professionnel. PHP est pourtant un langage dont l'outillage n'a rien a envier a l'ensemble de ses concurrents. L'objectif de cette conférence est de présenter les bonnes pratiques à adopter ainsi que les différents outils a mettre en oeuvre afin de contrôler la qualité d'un projet PHP au quotidien. Un focus particulier sera porté sur la plateforme d'intégration continue Jenkins, les tests unitaires ou bien encore la récupération et l'interprétation des métriques collectées.
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Benoît de CHATEAUVIEUX
En 2008, la lenteur d'une application était ressentie au bout de 4 secondes, elle l'est au bout de 3 secondes en 2014.
La performance des applications web est devenue cruciale: la génération Y est beaucoup moins patiente (elle n'a pas connue le modèle 56k !) et switch très facilement.
Les impacts business de la performance des applications web sont donc forts: baisse de CA, perte de clients, etc.
Au cours de cette session du Performance User Group de Casablanca, j'ai présenté Gatling, un outils de test de charge Open-Source, simple, hautement scalable et intégrable dans une démarche de tests de performance en continue.
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
This presentation has been executed on 14th april, 2009 in Valtech Technology Consulting, Paris, France.
This is an overview of the SWTBot test framework.
Download the ppt for the comments on each slide.
Industrialiser le contrat dans un projet PHPhalleck45
La notion de contrat intervient à tous les étages en PHP : du code source au besoin fonctionnel, en passant par la nécessité de travailler en équipe ou de fournir un travail clair et compréhensible. Petit tour d'horizon des outils qui vous permettront de vous assurer automatiquement que ces contrats sont bien respectés.
Conférences lors du rendez-vous AFUP Nantes du 29 octobre 2012
La traditionnelle mise à jour annuelle de nos petits bijoux de poche est moins discrète cette année avec une remise à plat de son design … Mais il y a aussi de très nombreuses nouveautés pour les développeurs. UIKit Dynamics, les motions events et les custom transitions en font partie. Elles renouvellent notre expérience des interfaces UIKit.
David Bonnet (créateur de CarMusic) est venu nous parler des custom transitions. Après une courte introduction et quelques exemples, vous devriez repartir avec plein d’idées pour personnaliser votre app…
CoreData vous tente mais vous fait peur ? Vous trouvez le framework un peu dur à prendre en main ? Ou vous en avez marre d’écrire autant de ligne à chaque fois juste pour faire une simple récupération de vos données ?
Olivier Halligon (développeur de FoodReporter) vous offrira une découverte de MagicalRecord, le framework qui va drastiquement simplifier votre code CoreData, en apportant le Design Pattern ActiveRecord (comme utilisé en Ruby) sur Objective-C.
Il existe de plus en plus de composants et librairies de qualité pour iOS, mais les récupérer, les configurer et les mettre à jour prend un temps fou.
Thomas Dupont (Co-organisateur des CocoaHeads Rennes) nous as présenté CocoaPods: un outils de gestion de dépendance qui va vous simplifier la vie !
CocoaHeads Rennes #7 : Intégration continue pour les nulsCocoaHeadsRNS
Screencast de la présentation du 16 février 2011 aux Cocoaheads Rennes.
« Mais je comprends pas, ça marchait avant, ça ne marche plus ! ». Qui n’a jamais prononcé cette phrase au cours d’un projet ? Pourtant, la solution existe : l’intégration continue. Cette méthode consiste, entre autre, à vérifier l’intégrité d’un projet à chaque modification. Et ceci, de façon automatique. L’intégration continue pourrait sonner le glas du principe de régression et garantir la qualité de vos réalisations.
Cette présentation a été assurée par Jérémy Toudic (développeur mobilité, SII Rennes) et Gaël Durand (référent technique sur les technologies mobiles au sein de SII Rennes). Gaël est aussi l’auteur de « Objective-C Créez vos applications iPhone et iPad » et enseigne à l’université.
Vidéo sur la session sur Vimeo: http://vimeo.com/37104049
Slides de la présentation "iOS & Android" de la session des CocoaHeads Rennais du 10 novembre 2011. Présentation assurée par David Bonnet et Nicolas Klein.
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeadsRNS
Slides de la présentation "Tests automatisés sur iOS" de la session des CocoaHeads Rennais du 13 octobre 2011. Présentation assurée par Quentin Arnault, Ingénieur chez Niji.
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaHeadsRNS
Slides de la présentation "Bien coder sur iOS" de la session des CocoaHeads Rennais du 08 septembre 2011. Présentation assurée par Julien Quéré, co-organisateur.
CocoaHeads Rennes #3 : Bien débuter sur iOSCocoaHeadsRNS
Slides de la présentation "Bien débuter sur iOS" de la session des CocoaHeads Rennais du 08 septembre 2011. Présentation assurée par Jérémy Brault, ingénieur chez Niji.
CocoaHeads Rennes #2 : Pratiques de développement itératifCocoaHeadsRNS
Slides de la présentation "Pratiques de développement itératif" de la session des CocoaHeads Rennais du 30 mai 2011. Présentation assurée par Olivier Tabone, co fondateur de Ripple Motion.
Slides de la présentation "Traduction automatique et intelligente d'applications Cocoa" de la session des CocoaHeads Rennais du 21 avril 2011. Présentation assurée par Olivier Halligon, créateur de Food Reporter.
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.
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 :
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!
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.
6. 3 niveaux de tests automatisés
• unitaire,
• intégration,
• de bout en bout. unitaire
intégration
qualité du feeback bout en bout
qualité externe qualité interne
Steve Freeman, Nat Pryce. Growing Object-oriented software, Guided by tests, p11
7. Back to basics (POO)
➡ Responsabilité : obligation d’accomplir une tâche ou de
détenir une information
➡ Rôle : ensemble de responsabilités liées entre elles
➡ Objet : implémentation d’un ou plusieurs rôles
➡ Collaboration : interactions d’ objets ou de rôles
8. C’est à dire
Webservice Client
Responsabilités Collaborateurs
➡ construire les requêtes HTTP ➡ client HTTP
➡ traiter les erreurs HTTP/svc ➡ parser
➡ informer du résultat ➡ observateur
14. objets factices (dummy object)
➡ vient remplacer «bêtement» l’objet de production
➡ mais pas de comportements
15. objets bouchon (stub object)
➡ vient remplacer un objet de production
➡ retourne des valeurs
➡ comportement souvent partiel
16. objets allégés (fake object)
➡ vient remplacer un objet de production
➡ contient une implémentation fonctionnelle mais non adaptée à
la production
17. mocks objects (mock object)
➡ vient remplacer un objet de production
➡ peut retourner des valeurs (comme les objets bouchons)
➡ contrôle les messages reçus par rapport au contrat prévu
➡ Première phase : enregistrement du contrat
➡ Deuxième phase : enregistrement des messages pendant
l’exécution du cas de test
26. id mockClient = [OCMockObject mockForClass:[HTTPClient class]];
➡ permet de préciser les appels de méthodes que l’on attend
➡ ne supporte aucun appel en dehors de ceux définis
[[mockClient expect] prepare];
[[[mockClient stub] andReturn:@"tournament"] getBaseUrl];
[[[mockClient stub] andReturn:@"HTTPS"] getProtocol];
[[[mockClient stub] setTimeout:10];
27. id mockClient = [OCMockObject niceMockForClass:[HTTPClient class]];
➡ permet de préciser les appels de méthodes que l’on attend
➡ ignore tous les appels de méthodes non prévus
[[mock expect] prepare]
[[mock reject] badMethod]
28. id mockClient = [OCMockObject partialMockForObject:httpClient];
➡ permet de préciser les appels de méthodes que l’on attend
➡ tout en conservant le comportement de l’objet remplacé
[[[mock expect] andForwardToRealObject] prepare]
29. id mockObserver = [OCMockObject observerMock];
➡ permet d’observer des notifications
[notificationCenter addMockObserver:mockObserver
name:notificationName
object:nil];
[[mockObserver expect] notificationWithName:notificationName
object:[OCMArg any]]
35. Pourquoi les utiliser ?
➡ minimisation des interactions
➡ minimisation de l’exposition de l’état de l’objet testé
➡ tests plus rapide
36. Ce qu’il m’ont apporté ?
➡ différencier les tests d’état des tests de collaboration
➡ nouvel angle d’analyse d’un design : l’interaction VS la
classification
➡ l’importance d’avoir des dépendances explicites