Mardi - Programmation Orientée Objet, Programmation Evènementielle et interactions avec un SGBD

Navigation rapide : Lundi / Mardi / Mercredi / Jeudi / Vendredi Mémos : Perl / Python / Ruby

08h30 - Démo « Programmation Evènementielle, Javascript et WebSockets »

Intervenant Support
David Delavennat Support
Client
Serveur

08h45 - TP

Un petit exercice pour bien commencer la journée

10h30 - Pause café

10h45 - Programmation Orientée Objet

Intervenant Support
Thierry Dumont Support

11h30 - POO en Perl, Python et Ruby

Intervenants Support
Jacquelin Charbonnel
Stéphane Aicardi
David Delavennat
Scripting comparaison (suite)

12h15 - Composants réutilisables dans la pratique

Intervenants Dépot
Jacquelin Charbonnel CPAN
Stéphane Aicardi PyPI
David Delavennat RubyGems, Exemple

13h00 - Repas

14h00 - Fil rouge « Encapsulation Objet »

Finalité

Lorsque vous développez des composants logiciels, il peut être intéressant de les diffuser, pour vous même ou plus largement.
Vous allez réécrire le parseur DHCP sous forme objet.
Puis, si vous avez le temps, vous allez créer un paquet contenant une bibliothéque et un exécutable.

Enoncé

Nous allons créer 2 classes :

  • une classe DHCP::Host, modélisant une entrée host du fichier dhcpd.conf
  • une classe DHCP::Database, modélisant l'ensemble des informations parsées du fichier dhcpd.conf (c'est-à-dire l'ensemble des entrées host).

Pour cela, nous souhaitons que :

  • DHCP::Host dispose d'un constructeur avec 2 paramètres : le nom du host, et un hash pour les attributs
  • DHCP::Database dispose d'une méthode addPattern qui ajoute un nouvel attribut à extraire,
  • DHCP::Database dispose d'une méthode load qui parse le fichier dont le nom est fourni en argument,
  • DHCP::Database dispose d'une méthode dump qui visualise le contenu de la database.

Corrigé

14h30 - Brefs rappels SQL

Intervenants Support
Simon Chevance SQL

15h00 - S'interfacer avec un SGBD

Clients SQL : exemple en Perl et Python

Intervenants Support
Jacquelin Charbonnel
Stéphane Aicardi
DBI

ORM : exemple en Python et Ruby

Intervenants Support
Stéphane Aicardi
David Delavennat Sequel

15h30 - Pause café

Discussions autour des SGBD

16h00 - Fil rouge « SGBD »

Finalité

Labintel consultation est un service WEB du CNRS exposant un certain nombre d'informations relatives à votre laboratoire.
Vous allez voir comment utiliser une base de données pour manipuler les informations que votre laboratoire publie dans labintel.

Enoncé

  1. Se connecter à la base de donnée Sqlite3 « labintel.sqlite3 »
  2. y créer le schéma suivant
  3. peupler la table « pers » à partir du fichier « pers.yaml »
  4. peupler la table « pers_attr » à partir du fichier « pers_attr.json »
  5. lister toutes les entrées de la table « pers »
  6. lister toutes les entrées de la table « pers_attr »
  7. pour chaque entrée de la table « pers » lister toutes les entrées associées de la table « pers_attr » (jointure)
  8. ajouter un attribut « statut=chercheur » à la personne ayant l'id 1
  9. ajouter une contrainte d'unicité sur l'attribut « statut »
  10. lister toutes les personnes ayant le statut de chercheurs

Corrigé

18h00 - Fin

Soirée Vulgarisation mathématique

Mathématiques et Mariages : algorithmique et sociologie, par Gérard Grancher

Version

$Id: mardi.txt 613 2012-05-22 12:55:01Z jaclin $

mardi.txt · Last modified: 2012/05/22 14:55 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki