Souvent on me demande une liste de gros sites qui ont été créés avec Django. Il y a bien une liste ici mais ce ne sont pas vraiment des sites très célèbres.
Voici des exemples plus parlants que des pastebins :
- Disqus
- Mahalo
- bitbucket
- lanyrd
- support.mozilla.com
- addons.mozilla.org
- The Onion
- EveryBlock
- GiantBomb
- ComicVine
- MichaelMoore.com
- newyorktimes.com
- washingtonpost.com
- guardian.co.uk
- lawrence.com
- mercedesbenz.com
- nationalgeographic.com
- discoverychannel.com
- orange.ch
- developer.vodafone.com
Hue. Une interface pour interragir avec Hadoop.
century21.fr
Liberation, 20minutes en France sont sous Django.
Et le système des autolib aussi d’ailleurs, j’avais oublié.
au passage on vient d’installer Varnish sur S&M, est-ce que vous voyez une difference de rapidité ?
Je serais curieux de savoir quel part Django joue dans le service des pages des sites listées. J’ai eu l’occasion de travailler sur des stacks PHP qui ne servait finalement plus qu’à servir de la page statique en cache.
Ma vraie question serait est-ce que Django et son ORM branché en direct sur une BDD (+Memcache) est vraiment une solution viable en soit pour de tels sites. Je suppose que “oui un peu quand même”, parce finalement Django ne sert plus à grandchose sans son ORM. Bref, je suis curieux.
D’une part, à partir d’un certain traffic, aucun framework n’est utilisé tel quel. Ils sont tous customisés, et le premier truc à l’être est l’ORM.
D’autre part, l’ORM de Django n’est qu’une partie de ce qu’il apporte :
– formulaires
– génération RSS
– moteur de template
– model MVC très propre
– abstraction du protocole HTTP
– plug WSGI
– i18n et l18n
– routing customisé (avec i18N)
– authentification
– sessions
– module de caching
– protections variées incluant XSS et CSRF
– architecture facorisant le developpement de modules indépendants (incluant les fichiers statiques)
et surtout
– écosystèmes gigantesque d’apps
Tout ça très bien intégré ensemble. Si on doit coder tout ça à la main, ou alors mettre ensemble des outils qui le font, c’est un boulot de malade.
Pour les sites à trafic important, il faut oublier les ORM ou alors c’est largement customisé et dénormalisé. Ce n’est valable que pour les petites applications et les sites web de faible à moyenne charge. D’autant plus que la customisation vient en premier lieu sur le moteur de base pas dans l’applicatif. Enfin moi qui suit un vieux…j’ai toujours trouvé contre nature la communication objet et l’algèbre relationnel du coup : ça rame ;), on ajoute à cela le fait qu’on ne sait pas quand un objet est détruit et ça rame encore plus ;). Mais bon je vais m’arrêter là, je vais me faire incendier par tous les développeurs d’agences de com qui ne jurent que par les ORM, normal MERISE c’est chiant et il faut réflechir…Et puis pour le site de la boucherie ou de la ville de Melun, de l’ORM ça conviendra…pas pour la VPC, la banque ou l’industrie ;)
@Seboss
“Ma vraie question serait est-ce que Django et son ORM branché en direct sur une BDD (+Memcache) est vraiment une solution viable en soit pour de tels sites. Je suppose que “oui un peu quand même”, parce finalement Django ne sert plus à grandchose sans son ORM. Bref, je suis curieux.”
Dans la vrai vie, on présente au site web, une version préparée des données, on ne fait jamais taper un applicatif surtout web directement sur les données du coeur de métier. On présente des vues de tels ou tels entrepôts de données. Et entre la donnée et ton interface utilisateur, il y a d’autres choses : du load balancing, de la réplication de disques et de bases, de l’aggrégation de liens, et des proxies…bref c’est du sur mesure à chaque fois. Le site web est souvent une infime partie du système, la partie la plus facile on va dire ;)
Suite —
En plus le site web est rarement le point central du système, c’est la donnée brute le coeur de la meule.
On sépare également souvent le contenu statique du contenu dynamique, donc d’autres serveurs plus efficaces que django sont utilisés pour ce type de contenu statique.
Bref c’est plus sophistiqué qu’un simple bundle packagé prêt à l’emploi.
Enfin tu ajoutes à cela qu’il est très rare de partir de zéro et que tu dois souvent faire avec l’existant, je te laisse imaginer la joie de concilier les différentes bases de données avec les différents schémas MERISE pour les transcrire en logique objet sous un ORM sans perte et sans corruption des types de tes données sans parler des index, des vues et des différents droits utilisateurs associés. Bref il y a un peu plus de boulot que dans l’imaginaire.
@Max
Clairement, le site est beaucoup plus réactif. Good job ! ;)