django pour les développeurs symfony (et réciproquement)

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

Upload: nicolas-perriault

Post on 15-Jan-2015

7.671 views

Category:

Technology


3 download

DESCRIPTION

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

TRANSCRIPT

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 ?