Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

article.md 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. title: ★ Pourquoi Python et Django
  2. slug: pourquoi-python-et-django
  3. date: 2009-12-11 00:59:01
  4. type: post
  5. vignette: images/logos/scrumpy_pony.png
  6. contextual_title1: Stratégie de chiffrement des données et emails
  7. contextual_url1: 20101206-strategie-de-chiffrement-des-donnees-et-emails
  8. contextual_title2: Un projet Python : de l'idée à la publication
  9. contextual_url2: 20101203-un-projet-python-de-lidee-la-publication
  10. contextual_title3: ★ De l'OpenData au LinkedData : exemple de nosdonnees.fr
  11. contextual_url3: 20101130-de-lopendata-au-linkeddata-exemple-de-nosdonneesfr
  12. Retour sur l'[événement Scrumpy](https://larlet.fr/david/biologeek/archives/20091014-scrum-python-et-django-montpellier/) auquel j'ai participé le mois dernier. J'ai déjà eu l'occasion de m'exprimer ici sur [Pourquoi Python](https://larlet.fr/david/biologeek/archives/20060505-pourquoi-programmer-en-python/) et [Pourquoi Django](https://larlet.fr/david/biologeek/archives/20080521-conferences-django-pour-pycon-fr/) mais le contexte était assez différent sur cet intervention car je devais commencer à convaincre des bienfaits de Python. Or convaincre sur un langage ou un framework est relativement stupide.
  13. On utilise un outil pour son usage, on peut faire des trucs super chiants aussi avec Python ou Django. Partant de là, comment parler des usages possibles, facilités par ces outils ? Ou reformulé un peu différemment, **qu'est-ce qui me motive pour utiliser ces outils dans mon quotidien ?**
  14. *Une lecture dont vous êtes le héros : soit vous voulez [visionner l'intervention dans son intégralité](http://vimeo.com/7702575) (25 minutes) et je vous conseille de ne pas lire la suite avant (mais de sauter à la fin), soit vous continuez la lecture et vous pourrez vous rattrapper plus tard.*
  15. J'ai choisi d'explorer 2 axes un peu inhabituels : **les vacances et le fun !**
  16. ## Vacances et productivité
  17. <p>
  18. <img
  19. src="/static/david/biologeek/images/scrumpy/vacances_productivite.jpeg"
  20. alt="Vacances et productivité"
  21. style="margin: 0pt auto; display: block;"/>
  22. </p>
  23. Si on veut pouvoir partir en vacances confortablement, il va en fait falloir être plus productif, et ça la productivité ça parle à tout le monde et ça fait pro :-).
  24. ### Apprentissage
  25. <p>
  26. <img
  27. src="/static/david/biologeek/images/scrumpy/apprentissage.jpeg"
  28. alt="Apprentissage"
  29. style="margin: 0pt auto; display: block;"/>
  30. </p>
  31. L'apprentissage de Python est l'un des plus rapides qui soit, on peut l'enseigner aux enfants, aux élèves, aux développeurs, il suffit de quelques heures pour en maîtriser les bases. Avec quelques bases, on peut hacker son premier programme en quelques minutes. Vraiment.
  32. Rapidité d'apprentissage signifie aussi facilité à intégrer de nouvelles personnes dans une équipe ou à transférer des compétences sur un projet (ce qui est plutôt utile pour partir en vacances tranquille).
  33. ### Agilité
  34. <p>
  35. <img
  36. src="/static/david/biologeek/images/scrumpy/agilite.jpeg"
  37. alt="Agilité"
  38. style="margin: 0pt auto; display: block;"/>
  39. </p>
  40. Agilité : vaste programme car on en arrive à mettre tout et n'importe quoi derrière ce terme. En quoi Python vous fait gagner en agilité ? Il y a bien sûr l'usage des tests dont je parle ensuite qui rendent les refactorisations moins douloureuses, évitant les régressions inévitables autrement. Mais c'est surtout à l'usage que l'on se rend compte à quel point le langage est flexible et puissant.
  41. ### Réutilisation
  42. <p>
  43. <img
  44. src="/static/david/biologeek/images/scrumpy/reutilisation.jpeg"
  45. alt="Réutilisation"
  46. style="margin: 0pt auto; display: block;"/>
  47. </p>
  48. La philosophie de Python et d'être *batteries included*, c'est à dire de proposer une bibliothèque standard complète permettant d'effectuer les tâches courantes avec le langage de base sans avoir à installer des bibliothèques tierces. Ceci favorise le code portable et réutilisable entre plusieurs projets.
  49. ## Fun et qualité
  50. <p>
  51. <img
  52. src="/static/david/biologeek/images/scrumpy/fun_qualite.jpeg"
  53. alt="Fun et qualité"
  54. style="margin: 0pt auto; display: block;"/>
  55. </p>
  56. La relation entre le fun et la qualité ? Une équipe qui prend du plaisir à développer va introduire de la qualité dans son produit.
  57. ### Conventions
  58. <p>
  59. <img
  60. src="/static/david/biologeek/images/scrumpy/conventions.jpeg"
  61. alt="Conventions"
  62. style="margin: 0pt auto; display: block;"/>
  63. </p>
  64. Python repose sur des conventions de codage fortes qui favorisent la compréhension du code par un autre développeur. Ça paraît anodin énnoncé ainsi mais c'est pourtant capital pour la réutilisation et la maintenabilité du code. Lorsque vous prennez un code en main, bibliothèque externe ou code de votre collègue, vous n'allez pas être perdu grâce à une normalisation familière. C'est un gain de temps considérable à l'usage.
  65. ### Tests
  66. <p>
  67. <img
  68. src="/static/david/biologeek/images/scrumpy/tests.jpeg"
  69. alt="Tests"
  70. style="margin: 0pt auto; display: block;"/>
  71. </p>
  72. Python encourage l'usage des tests qui sont indispensables à la pérennité d'un code. Je ne vais pas me répéter sur ce point, c'est *juste* la représentation du capital de votre application, ce qui fait finalement sa valeur à long terme.
  73. ### Élégance
  74. <p>
  75. <img
  76. src="/static/david/biologeek/images/scrumpy/elegance.jpeg"
  77. alt="Élégance"
  78. style="margin: 0pt auto; display: block;"/>
  79. </p>
  80. Ici aussi, je vous renvoie sur le billet l'[Artiste qui sommeille en chaque geek](https://larlet.fr/david/biologeek/archives/20080613-artiste-qui-sommeille-en-chaque-geek/), la part d'élégance que vous pouvez trouver dans votre code dépend de vous, de votre sensibilité et de la vision que vous avez de vos créations.
  81. **En conclusion, grâce à une productivité accrue et à la qualité de son code, on gagne en séreinité et en confiance.**
  82. ## Django
  83. Je ne vais pas réexpliquer [la boîte à outils qu'est un framework web](https://larlet.fr/david/biologeek/archives/20060907-choisir-un-framework-web/), vous pouvez aussi consulter une ancienne [présentation sur Django si vous souhaitez aller plus loin](https://larlet.fr/david/biologeek/archives/20080521-conferences-django-pour-pycon-fr/).
  84. ### Applications réutilisables
  85. <p>
  86. <img
  87. src="/static/david/biologeek/images/scrumpy/applications_reutilisables.jpeg"
  88. alt="Réutilisation"
  89. style="margin: 0pt auto; display: block;"/>
  90. </p>
  91. C'est aujourd'hui LE point fort de Django : un écosystème d'applications développées par la communauté de très bonne facture. Vous cherchez une application pour faire de l'OpenID, gérer des droits finement, pousser vos média sur S3, etc etc c'est possible et facilement intégrable à votre projet.
  92. ### Cohérence
  93. <p>
  94. <img
  95. src="/static/david/biologeek/images/scrumpy/coherence.jpeg"
  96. alt="Cohérence"
  97. style="margin: 0pt auto; display: block;"/>
  98. </p>
  99. Le framework ayant été pensé dans sa globalité, on retrouve une cohérence et une qualité constante sur les différents points du framework. Et l'une des grandes forces de Django c'est la cohérence de sa documentation et son excellente qualité. Allez [faire un tour dessus](http://docs.djangoproject.com), ce n'est pas une légende :-).
  100. ### Rapidité
  101. <p>
  102. <img
  103. src="/static/david/biologeek/images/scrumpy/rapidite.jpeg"
  104. alt="Rapidité"
  105. style="margin: 0pt auto; display: block;"/>
  106. </p>
  107. Enfin un dernier argument en faveur de Django, c'est la rapidité de développement rendue possible grâce aux nombreux outils mis à disposition par le framework permettant d'éviter les tâches fastidieuses et répétitives.
  108. Vu la vitesse à laquelle les sites évoluent, c'est un point essentiel à prendre en compte au lancement d'un projet.
  109. ## Démonstration et code
  110. Suite à la théorie, j'ai réalisé une [démonstration live](http://vimeo.com/7650588) de ce que l'on pouvait avoir en pratique qui a également été filmée. Et je viens de [rendre le code accessible](http://code.welldev.org/scrumpy/) pour que vous puissiez continuer/hacker/etc, c'est un twitter-like qui reprend pas mal des concepts Django. J'ai ajouté un peu de code pour que vous puissiez aller plus loin, pour repartir de la présentation il suffit de prendre la révision qui va bien. N'hésitez pas à poser des questions ici au besoin.
  111. ## Formation
  112. Suite à cette intervention était prévue [une formation](http://scrumpy.particul.es/scrum-python-django-montpellier/formation-django) qui malheureusement a été reportée faute de participants. **C'est vraiment dommage car j'étais bien motivé et j'espère qu'il y aura davantage de curieux lors de la prochaine session**. Si vous êtes intéressé, n'hésitez pas à me contacter ou à contacter [Stéphane](http://www.insei.org), en plus le cadre est vraiment unique !
  113. En conclusion, j'ai eu des retours assez positifs et j'espère avoir convaincu ou au moins donné envie à certaines personnes présentes d'essayer de nouveaux horizons :-). Si l'agilité vous intéresse (et ça devrait), je vous encourage également à aller consulter les [vidéos de Claude Aubry](http://vimeo.com/particules/videos).