5 : Exception, Debugging and Reflection

Descriptif
Last part, we dug into inheritance and lookup and we will continue on this topic this week with class methods (yes again) and exceptions.We will also describe some important activities during development such as debugging, testing, introspecting and profiling as well as Pharo tools to support them.
Then, we will also go further into web development by composing Seaside components: this is the killer feature of this framework!
Exercises part 5 :
Click on the exercises titles to download the documents.
- [Mini-project] TinyBlog: Solution Week 4 + Building an Admin Seaside Web Interface with Magritte
- TinyChat
Solutions for the new exercises will be provided in the section "Exercises" of the following part.
Vidéos
Seaside: Composing Components
Dans cette séquence, vous allez voir la puissance de Seaside grâce à la composition de composants. En fait, on a défini des composants qui sont réutilisables et qui encapsulent de l'état, et
Really Understanding Class Methods
Donc dans ce cours, on va vraiment prendre le temps de comprendre comment marchent les méthodes de classe. Donc normalement, vous avez fait l'exercice avec le counter et puis vous avez fait une
Common Errors
Aujourd'hui, nous allons parler des erreurs qui sont fréquemment commises par les développeurs Pharo, y compris moi-même. Nous allons essayer de voir comment on peut repérer ces erreurs facilement et
Powerful Exceptions: an Overview
Donc pendant ce cours je vous montrer les exceptions. Elles sont assez puissantes dans Pharo, je vais faire un survol. Qu'est-ce qu'on peut faire avec des exceptions? On peut les résumer, les
Debugging in Pharo
Dans cette séquence, nous allons présenter rapidement le débugger et la notion des différents points d'arrêt disponibles en Pharo. Ce que vous allez voir, c'est que le système est vivant et on peut
SUnit: Unit Tests in Pharo
Dans cette séquence on va voir le framework de test, SUnit en Pharo, qui permet d'écrire des tests unitaires comme on va le voir. Un framework de test sert à supporter le développement agile. L'idée,
Files in Pharo
Dans cette séquence nous allons voir l'API qui permet de manipuler les fichiers. Donc ce que nous allons étudier plus en particulier c'est comment naviguer entre les dossiers, comment créer et
Reflection: Basic Introspection
Dans cette séquence on va voir la réflexion. Donc on va aussi discuter de la capacité d'introspection dans Pharo et pourquoi c'est intéressant. Donc un système réflexif, la réflexion se décompose en 2
Benchmarking in Pharo
Dans ce cours je vais vous montrer comment on peut faire du profilage d'application en Pharo. Ça veut dire comment on va mesurer l'exécution de certaines expressions et pour savoir si on peut les
[Live] Spotter 3: Scoping and Reducing Search
Je voudrais vous montrer qu'avec Spotter, on peut aussi restreindre l'espace de recherche. C'est ce que nous allons voir.
[Live] Spotter 6: Search, Navigate and Preview Files
Dans cette vidéo, j'aimerais vraiment vous montrer une face cachée de Spotter qui est vraiment excellente, c'est comment on peut utiliser Spotter pour naviguer son système de fichiers.
[Live] Learning the Debugger
Dans cette vidéo, j'aimerais vous expliquer comment marche le debugger et comment vous pouvez vous en servir pour identifier des bugs, et exécuter des expressions, interagir avec les objets.
[Live] How to find a bug?
Dans cette séance, j'aimerais compléter celle sur le debugger pour vous montrer comment on peut identifier un bug.
[Live] GTInspector 2: Inspect Files and Directories
Dans cette vidéo, je voudrais vous montrer un des aspects super sympa de Pharo, c'est son inspecteur. Un inspecteur c'est un objet qui nous permet d'interagir avec des objets, et de pouvoir discuter
Intervenants et intervenantes
Titulaire d'un doctorat en Informatique (Bordeaux 1, 2011)
Maître de Conférences au sein de l'équipe RMoD du Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL - UMR CNRS 9189 - INRIA - IEEA) de l'Université Lille 1 - Sciences et Technologies
Titulaire d'un doctorat en Sciences appliquées (Nice, 1996)
Directeur de recherche, responsable de l'équipe "Évolution réflexive des systèmes logiciels éternels" (EVREF) au sein du Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL - UMR CNRS 9189 - INRIA - Université de Lille)
Rapporteur lors d'une thèse soutenue à l'INSA Lyon en 2024
Titulaire d'un doctorat en Informatique (Montpellier, 2007)
Maître-Assistant à l’école des Mines de Douai