Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sortez Couvert [FR]

Sortez Couvert [FR]

Lightening talk sur Raincoat

Joachim Jablon

October 16, 2016
Tweet

More Decks by Joachim Jablon

Other Decks in Technology

Transcript

  1. Sortez couvert
    Brace yourself, rain is coming

    View Slide

  2. Django : Un framework pour les poneys avec des pouvoirs
    magiques

    View Slide

  3. Du code !

    View Slide

  4. “Don’t Repeat Yourself”, qu’ils disaient.
    ● C’est un constat d'échec
    ● Ca rend le code dur à maintenir
    ● C’est pas bien
    ● C’est tout pas bien
    ● C’est vraiment pas bien
    ● Sauf que...

    View Slide

  5. Tu me poses une colle
    ● Code trop complexe
    ● “Mal” découpé, pas adapté
    ● Qui fait pas vraiment ce qu’on veut
    ● C’est un besoin vraiment spécifique
    ● On peut pas facilement contribuer
    ● Il faut avancer
    ● Sauf que...

    View Slide

  6. DRY

    View Slide

  7. Django : Un framework pour les poneys avec des pouvoirs
    magiques
    … et des patches de sécurité.

    View Slide

  8. Et là c’est le drame, les événements s’enchaînent

    View Slide

  9. Et là c’est le drame, les événements s’enchaînent

    View Slide

  10. Enter: Raincoat

    View Slide

  11. Comment ça marche ?
    # Raincoat: package "Django==1.9.0"
    path "django/contrib/admin/options.py" "ModelAdmin.changeform_view"

    View Slide

  12. Comment ça
    marche ?

    View Slide

  13. Hein ? Mais… Comment !?
    ● Téléchargement sur PyPI (sans installation)
    ● Lecture de la tarball ou du wheel (en mémoire)
    ● Récupération du fichier voulu
    ● Parsing de l’AST, exploration pour localiser la méthode
    voulue
    ● Diff entre les 2 versions

    View Slide

  14. Demo time
    Cheatsheet (avec vex installé):
    vex -mr rc bash -c "pip install raincoat; echo '# Raincoat: package \"Django==1.9.0\" path
    \"django/contrib/admin/options.py\" \"ModelAdmin.changeform_view\"' > rc.py; raincoat"

    View Slide

  15. Merci
    On recrute !
    @ewjoachim

    View Slide