Entretien de la communauté Python avec Dane Hillard – Real Python

By | mars 24, 2021

trouver un expert Python

Aujourd'hui, je suis accompagné de Dane Hillard, développeur principal d'applications Web chez ITHAKA et auteur de Pratiques de Python Pro. Dane est aussi un Vrai Python auteur du tutoriel.

Dans cette interview, nous abordons divers sujets, notamment la complexité du code, la maintenance des packages Python et le pop-corn. Alors sans plus tarder, accueillons Dane.

Ricky: Merci de m'avoir rejoint pour cette interview, Dane. Je voudrais commencer de la même manière que nous le faisons avec tous nos invités: comment êtes-vous entré dans la programmation et quand avez-vous commencé à utiliser Python?

Dane Hillard

Danois: Merci de m'avoir de retour! Vrai Python est un endroit assez agréable pour passer plus de temps. Certaines de mes premières expériences avec la programmation étaient les mêmes pour beaucoup d'enfants de l'époque de LiveJournal et de MySpace – je personnalisais régulièrement ma page de profil et mon thème pour m'assurer que mes divagations angoissantes étaient à leur meilleur.

À peu près à la même époque, j'ai commencé à faire de la modélisation 3D dans Rhinoceros en tant que débouché principalement artistique, mais cela offrait également des capacités de script que j'ai bricolées. Un ami et moi nous sommes adonnés à Liero, et je suis allé jusqu'à fabriquer quelques armes personnalisées pour que nous puissions jouer. Donc, dans l'ensemble, un geek commence à sortir de quelques intérêts tangentiels.

J'ai appris le C ++ et MATLAB à l'école et j'ai passé mon premier stage et mon travail à plein temps à travailler dans ces langues. J'ai choisi Perl en cours de route et j'ai réussi à décrocher mon deuxième emploi en l'utilisant.

Tout en apprenant énormément sur l'optimisation SQL là-bas, j'ai également commencé à bricoler sur certains projets parallèles avec un ami. C'était un grand gars de Rails, alors j'ai commencé à être exposé à Ruby. J'utilisais PHP puis Spring pour gérer un site Web pour ma photographie et j'ai décidé d'essayer Rails ensuite. Le paradigme du «codage par convention» n’avait pas tout à fait cliqué avec moi à ce moment-là.

Quand j'ai finalement décidé que je voulais vraiment une meilleure itération de mon site Web, j'ai cherché d'autres frameworks Web avec une popularité similaire à Rails et j'ai fini par trouver Django. Python est ma confiture depuis! C’était un chemin sinueux, mais j’aime bien où cela m’a mené si loin.

Ricky: Quels sujets Python vous intéressent le plus ces jours-ci?

Danois: La maintenance des packages Python a été une priorité pour moi récemment. Je maintiens quelques petits projets open source comme apiron et django-webmention, et je gère également une douzaine de packages en interne chez ITHAKA. Avoir un processus qui soit répétable mais itératif, et réfléchi mais flexible, est devenu vraiment précieux.

Tout se résume à l'outillage! Oublier d'apporter des modifications à un ou deux packages entraîne plus de changements de contexte plus tard, donc bien qu'il y ait encore des tâches répétitives dans les packages, elles ont tendance à ressembler davantage à des recettes qu'à réinventer la roue pour chaque package.

J'ai essayé plusieurs des solutions pour la gestion des dépendances, comme Pipenv et Poetry, mais je voulais quelque chose qui puisse également relever le défi de lutter contre tous les outils impliqués dans l'emballage, comme pytest, mypy, Black et Pylint, pour n'en nommer que quelques-uns.

Pour le moment, je me suis installé assez confortablement dans un workflow utilisant tox et setup.cfg pour gérer presque tout. Je garde un œil sur pyproject.toml ainsi que.

Maintenant qu'une certaine automatisation est en place autour de tous ces aspects, je prends plus de temps pour réfléchir à la complexité du code. J'en parle un peu dans mon livre, mais en savoir assez pour écrire sur quelque chose ne signifie pas qu'on lui a toujours accordé la bonne quantité d'attention dans la pratique! Je suis séduit en examinant les modèles que nous utilisons dans notre organisation et en trouvant les bons modèles pour ces modèles qui nous aident à avancer plus rapidement et en toute sécurité.

J'utilise Radon ces derniers temps pour accéder rapidement et facilement aux statistiques de complexité Python. J'ai rapidement identifié quelques zones de code que nous touchons souvent et dont la complexité serait précieuse à résoudre. Nous utilisons également SonarQube pour suivre certaines de ces données. Tout le monde devrait également consulter l'interview d'Anthony Shaw pour en savoir plus sur les outils qu'il fabrique.

Ricky:Autant ces entretiens portent sur des histoires personnelles de membres de la communauté, j'essaie également de laisser à nos lecteurs quelque chose d'actionnable qu'ils peuvent emporter et appliquer à leur code. Dans cet esprit, quels conseils pratiques pouvez-vous donner dont la plupart des gens ne sont peut-être pas au courant?

Danois: Vous pouvez réduire considérablement la complexité d'une grande partie de votre code en remplaçant des ensembles de conditions par un dictionnaire qui mappe les conditions aux actions. Je suis régulièrement surpris de voir à quel point le code s’effondre avec cette refactorisation.

Sandi Metz a un excellent discours, Toutes les petites choses, sur la refactorisation dans le kata Gilded Rose. Metz parle de séparer la raison du changement de la chose à faire lors du changement. Je recommande fortement de regarder ceci et toutes ses autres discussions.

Ricky: Vous êtes un auteur du didacticiel ici à Vrai Python mais aussi l'auteur de Pratiques de Python Pro. Qu'espérez-vous que les gens retireront du livre lorsqu'ils le liront? Qu'avez-vous appris en écrivant le livre?

Danois:C'est une très bonne question. Il est facile de penser qu’un livre couvre des choses que quelqu'un fait depuis des décennies, ce qui, j’en suis sûr, est parfois vrai. En fait, j'ai appris une tonne en écrivant le livre, cependant. Cela vous oblige à faire des recherches structurées et à examiner de manière critique des alternatives à votre compréhension actuelle.

L'une des choses les plus importantes que j'ai apprises en écrivant le livre était le concept de couplage. Il est courant d’entendre que nous voulons du code faiblement couplé, mais pour moi, ce n’a jamais été une idée très concrète.

J'en suis venu à penser au couplage dans la programmation orientée objet en tant que rôles remplis par les objets et comment les objets se transmettent des messages. Ce modèle mental découvre de nombreux points délicats dans le code, et cela peut souvent être prouvé en essayant d'écrire des tests pour ces interactions.

Vous verrez cela fortement reflété dans les discussions de Metz – elle est à l’origine programmeuse Smalltalk, et ces idées remontent souvent à ce groupe de personnes.

Ricky: Vous avez parlé de codage pour le bien commun. Comment avez-vous fait cela jusqu'à présent et avez-vous des idées pour l'avenir?

Danois:Je crois fermement au pouvoir de la connaissance collective. Ceci est souvent fait avec l'open source Logiciel, mais je pense qu'il doit continuer de croître au-delà de cela. Investir dans une infrastructure ouverte est un excellent exemple partagé récemment par un collègue. Ils ne se contentent pas de dire: «Voici un tas de technologies que vous pouvez utiliser», mais de passer au niveau supérieur et de fournir une stratégie, des recherches, une communauté et plus encore.

Ricky:Maintenant, quelques dernières questions. Que faites-vous d'autre pendant votre temps libre? Quels autres passe-temps et intérêts avez-vous en dehors de Python et de la programmation?

Danois:Je suis un chanteur / compositeur, mais je n’ai pas beaucoup écrit ces derniers temps. J'ai aimé apprendre à jouer à quelques reprises pendant les heures de quarantaine. J'ai pas mal de chansons d'Iron & Wine et d'Alexi Murdoch sous la ceinture. Mes derniers favoris sont «Older Chests» de Damien Rice et «Isles» de Fleet Foxes.

J'ai fait un peu de choses liées à la nourriture ici et là. J'ai lancé un intérêt pour le levain avant que la pandémie, et j’y reviens juste après avoir traversé l’État. J'ai récemment découvert que la levure nutritionnelle est l'une des meilleures garnitures de maïs soufflé connues de l'humanité, alors essayez-la. Pour moi, cela se marie bien avec un peu de paprika, de sel d'ail, de poivre noir et d'herbes.

Ricky: Merci de vous joindre à moi, Dane!


Si vous souhaitez contacter Dane à propos de tout ce dont nous avons parlé aujourd'hui, vous pouvez le contacter sur son site Web ou sur Twitter.

S'il y a quelqu'un dans la communauté Python que vous aimeriez que je interviewe, laissez un commentaire ci-dessous ou contactez-moi sur Twitter. Bon codage!

[ad_2]