RedBaron: une approche bottum-up au refactoring en python
RedBaron: une approche bottum-up au refactoring en python
Par Laurent Peuch (Bram)
Date : samedi 22 novembre 2014 15h30
Durée : 40 minutes
Langue : Français
Tags : python refactoring
Écrire du code qui modifie du code reste réservé à une petite poignée de développeurs téméraires. Construit sur les fondations d'un arbre syntaxique (AST) sans perte, RedBaron a pour but de rendre l'écriture de code qui modifie du code suffisamment facile (et fun) et amusante pour que cela devienne une tâche réaliste, voire même enviable. Pour ce faire, RedBaron se comporte comme BeautifulSoup/JQuery sur votre code source Python avec pour objectif d'être suffisamment puissant et expressif pour pouvoir être directement utilisé dans un shell tel que ipython.
RedBaron est construit sur Baron, un arbre syntaxique pour Python qui a la particularité de ne perdre aucune information, de telle sorte que l'opération: [code source -> arbre -> code source] donne un code source identique, y compris d'un point de vue mis en forme. Baron est relativement stable, comporte plus de 1000 tests unitaires, a été testé sur le top 100 des packages de pypi et est documenté. RedBaron est en court de développement mais est déjà stable et utilisable, le focus est sur le rendre agréable. Début novembre, il comportait pas loin de 1200 tests unitaires et est entièrement documenté avec de très nombreux exemples.
Cette présentation expliquera la raison d'être de ce projet en vous donnant une vue de l'ensemble des fonctionnalités. Elle se conclura sur une démo qui vous donnera une idée du feeling et de comment vous pourriez vous en servir.
Code source et documentation:
* RedBaron: https://github.com/psycojoker/redbaron http://redbaron.rtfd.org
* Baron: https://github.com/psycojoker/baron http://baron.rtfd.org
L'objectif de RedBaron est un changement de paradigme dans lequel écrire du code qui modifie du code devient une opération réaliste, normale (et amusante) de la vie d'un développeur.
Présentation suivie par: Sébastien Aperghis-Tramoni (maddingue), Jean Forget,