35
Django pour les développeurs Symfony Ou l’inverse, je sais plus.

Django pour les développeurs Symfony (et réciproquement)

Embed Size (px)

DESCRIPTION

Une revue d'ensemble des principales similitudes et différences

Citation preview

Page 1: Django pour les développeurs Symfony (et réciproquement)

Django pour les développeurs Symfony

Ou l’inverse, je sais plus.

Page 2: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

T’es qui, toi, là ?

• Nicolas Perriault

• Développeur Web depuis [plein de temps]

• Entrepreuneuuur depuis [trois semaines]

• PHP ~ Ruby ~ Java ~ Python

• Core team Symfony

Page 3: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Symfoquoi ?

• Framework Web

• PHP5

• MVC

• Full stack

• Scope fonctionnel ~= Django

• v1.x sous php <= 5.2.x, v2 sous php >= 5.3

Page 4: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Symfony

• Sensio Labs

• Support Long Terme (3 ans)

• Communauté++

• Documentation

• Plugins

• PHP...

Page 5: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

PHP(5)

• Ahhh, PHP

• Typage dynamique faible

• Procédural et/ou OO

• Multiplateforme, mais ~limité au Web

• Simple, limité et peu structuré

• Accessible au néophyte

• Beaucoup de compétences sur le marché

Page 6: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Python• Ahhh, Python

• Typage dynamique fort

• Procédural et/ou OO

• Multiplateforme, multi-usages

• Simple, puissant et structuré

• Accessible au néophyte

• Peu de compétences sur le marché

Page 7: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Restons sérieuxQue diable.

• Symfony ~= framework Web + surcouche professionnelle à PHP

• Homogénéise une partie de l’API de PHP

• Expose des fonctionnalités haut niveau et génériques au Web

• Ne réinvente pas la roue

• Favorise les bonnes pratiques et la réutilisation

Page 8: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Et Django ?

• Django = framework Web

• Exploite les richesses de Python

• Expose des fonctionnalités haut niveau et génériques au Web

• Ne réinvente pas la roue

• Favorise les bonnes pratiques et la réutilisation

Page 9: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Les stats ! Les stats !

Source : http://trends.google.com/

Source : http://langpop.com/

Page 10: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Les stats ! Les stats !

Source : http://www.indeed.com/jobtrends/

Page 11: Django pour les développeurs Symfony (et réciproquement)

</bullshit>

Page 12: Django pour les développeurs Symfony (et réciproquement)

Fonctionnalités

• Django Admin

• Routing, urls propres, bidirectionnalité

• ORM

• Forms

• Template tags

• CLI

• HTML exception stack pages

• Middlewares

• Signals

• Session Middleware + User

• JSON/XML/YAML/Python fixtures

• Tests

• Try/Catch sur import de settings

• Admin generator

• Routing, urls propres, bidirectionnalité

• ORM (Doctrine/Propel)

• Forms

• Helpers

• CLI

• HTML exception stack pages

• Filters

• Events

• ACL, authentication w/ Session

• YAML Fixtures

• Tests

• Notion d’environnements

Page 13: Django pour les développeurs Symfony (et réciproquement)

Fonctionnalités

• Configuration en Python

• Template engine

• Inheritance

• with..include

• Blocks

• Template Inclusion Tags

• ACL persistence

• N/A (via dev ou module externe)

• i18N (ui + orm), l10n

• 1.2 DEV

• N/A (via module externe)

• Serveur Web intégré

• Configuration en YAML

• RAW PHP templates (~= #HELL)

• Inheritance

• Partials

• Slots

• Components

• N/A (via plugin externe)

• Formats, RESTful routing

• i18N (ui + orm), l10n

• Flash messages

• Web Debug Toolbar

• N/A

Page 14: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Résumons

• Django est sexy

• Symfony est sexy

• Python est sexy

• PHP est, heu... une réalité du marché™

Page 15: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Plus concrètement

• Fortunes

• Quotes manager

• Maurice Svay (http://svay.com)

• PHP4

Page 16: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Fortunessource code http://fortunes.inertie.org/

Page 17: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Djortunes

source code http://github.com/n1k0/djortunes

Page 18: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Sftunes

source code http://github.com/n1k0/sftunes

Page 19: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Chiffres bruts

• Hors intégration HTML/CSS :

• Djortunes

• Codé en ~16h, sans ne rien connaître à Django, et pas grand chose en Python

• Sftunes

• Codé en ~4h, en ayant 4ans+ d’expérience sur Symfony, et +10 ans en PHP

Page 20: Django pour les développeurs Symfony (et réciproquement)

Talk is cheap, show me the code.

Linus T., Helsinki

Page 21: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Disclaimer

• Django newbie here!

• Plein d’optimisations à faire dans la version Django

• Plein d’erreurs de débutants

• Pas de bonnes pratiques Python/Django

• Pas représentatif du potentiel de DjangoBon ça va, je peux y aller ?

Page 22: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Routing

Page 23: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Routing

Page 24: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Controlleurs

Page 25: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Controlleurs(en un seul mot s’il vous plait)

Page 26: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Templates

Page 27: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Templates

Page 28: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Helpers

Page 29: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Helpers

Page 30: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Settings

YAML

Page 31: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Settings

Python

Page 32: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

ORM

Page 33: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

ORM

Page 34: Django pour les développeurs Symfony (et réciproquement)

Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony

Conclusion de l’exercice

• Exercice intéressant !

• Veille technologique

• Diversification, idées neuves

• Changement de point de vue

• Tout développeur devrait s’y essayer, c’est bon pour la santé™

Page 35: Django pour les développeurs Symfony (et réciproquement)

Questions ?