Penser, parler et rêver de la technologie : entretien avec Igal Tabachnik

Penser, parler et rêver de la technologie : entretien avec Igal Tabachnik

POUR VOTRE INFORMATION
Entrevues

Dans cet entretien, Académie de développement JetBrains expert Anton Archipov a une conversation avec Igal Tabachnik. Igal a récemment rejoint l’Academy, mais est un contributeur important à la communauté JetBrains depuis des lustres. Il valorise le code propre, le développement piloté par les tests et la refactorisation continue pour réduire la complexité, réduire les bogues et obtenir une meilleure conception.

Membres de Académie JetBrains sont des experts reconnus dans divers domaines du développement logiciel. Ils contribuent aux communautés Java et .NET en préconisant les meilleures pratiques de développement par le biais de publications et de réunions formelles et informelles, et constituent une source polyvalente d’expertise.

Igal Tabachnik

Q : Bonjour Igal, peux-tu nous parler un peu de toi, d’où tu viens et quelle est ta passion ?

R : Bonjour Anton, merci beaucoup de m’avoir invité ! Je m’appelle Igal Tabachnik, je suis un développeur vivant en Israël. Je suis né à Odessa, en Ukraine, et j’ai immigré en Israël avec mes parents à l’âge de 11 ans. Je suppose que ma fascination pour les ordinateurs a commencé à l’âge de 9 ans, lorsque ma mère, qui est également programmeuse, m’a emmené chez elle. travail, m’a mis devant un ordinateur (si je me souviens bien, c’était un “tout nouveau” PC Acer 286) et m’a montré comment lancer Prince de Perse à partir d’une invite Norton Commander. Environ 9 heures plus tard, elle est revenue pour me ramener à la maison, mais depuis lors, j’étais accro. Ma passion pour les ordinateurs et les logiciels qui les font fonctionner est née et brûle en moi à ce jour.

Q : En plus de votre expertise technique et de vos activités, vous êtes un membre de la communauté et vous parlez lors des rencontres ALT.NET. Quels sont les sujets dont vous aimez parler ?

R : J’aime parler de choses que je trouve vraiment intéressantes, qu’il s’agisse d’un outil sympa, d’un cadre ou d’une bonne pratique. La plupart du temps, il s’agira de quelque chose qui me tient à cœur, mais j’aime aussi partager des choses au fur et à mesure que j’apprends. Par exemple, je ne suis pas développeur web. Au cours de ma carrière, j’ai principalement travaillé sur des applications de bureau, et le développement Web n’était qu’une de ces choses que je n’ai jamais pu maîtriser. Mais lors de la dernière réunion ALT.NET, j’ai donné une conférence sur un framework Web open-source léger appelé Nancy. Avec Nancy, j’ai pu créer une application Web avec un minimum d’effort, et j’étais tellement excitée que je n’avais qu’à la partager avec le monde ! C’était vraiment bien de sortir de la zone de confort et de parler d’un sujet relativement nouveau (pour moi), j’ai beaucoup appris de cette expérience.

Q : En tant qu’expert .NET, quelle est votre opinion sur les langages de programmation pour .NET ? Le C# étant le langage principal de la plateforme, que pensez-vous de VB, F#, Nemerle ?

R : L’évolution du framework .NET et des langages construits dessus est vraiment une œuvre d’art. C# est devenu l’un des langages de programmation les plus utilisés et les plus appréciés au monde, tandis que VB.NET est très accessible aux nouveaux programmeurs qui souhaitent apprendre à coder. En tant que langage multi-paradigme, C # prend en charge certains concepts de programmation fonctionnels, mais des langages comme Nemerle le portent à un tout autre niveau, avec des fonctionnalités telles que la métaprogrammation, une correspondance de modèles forte et des macros incroyablement puissantes, toutes utilisant le même framework .NET. Je suis très heureux que ces langages de programmation puissants (et pratiques) soient créés et adoptés par les développeurs .NET du monde entier.

Q : Des langages aux outils. Quelles sont les fonctionnalités les plus importantes de votre IDE de choix (VS) ?

R : Les IDE sont des outils pour aider les développeurs à convertir leurs idées en code, et dans l’espace .NET, Visual Studio est le meilleur outil pour le travail. Cependant, la plupart du temps, le code sera lu plutôt qu’écrit, et malheureusement, la capacité de Visual Studio à aider les développeurs à lire et à naviguer dans le code fait un peu défaut. C’est là qu’interviennent les modules complémentaires de productivité tiers, tels que ReSharper.

Q : Qu’en est-il de ReSharper ? Quelles sont les fonctionnalités de ReSharper que vous admirez le plus ?

R : L’un des aspects les plus puissants de ReSharper est quelque chose que beaucoup de gens ne réalisent pas au départ, et c’est que ReSharper est capable de comprendre votre code mieux que le compilateur, et il vous permet d’écrire, de refactoriser et de parcourir le code qui n’a pas n’est même pas compilé ! Ceci est inestimable lors de la pratique du développement piloté par les tests (TDD), par exemple, où les tests sont écrits avant le code de production réel. Visual Studio ne serait pas en mesure d’appliquer l’une de ses refactorisations intégrées, telles que Rename et Extract Method, jusqu’à ce que tout le code soit compilé. Ce n’est pas un problème pour ReSharper – vous pouvez renommer, encapsuler, déplacer et naviguer dans le code, même s’il n’est pas encore écrit !

Q : Pourriez-vous nous parler de votre propre développement : le plug-in AgentMulder pour ReSharper ? Comment vous est venue l’idée du plugin ?

R : L’un des principes d’une bonne conception de logiciels orientés objet est la Principe d’inversion de dépendance (le D dans SOLIDE), où les composants de niveau supérieur sont découplés de leurs dépendances de niveau inférieur. Malheureusement, cela « interfère » avec l’analyse de ReSharper, et certains types peuvent être marqués par ReSharper comme « non utilisés ». C’est là que le Module d’extension de l’agent Mulder entre – il analyse ces conteneurs et aide ReSharper à trouver et à naviguer vers les composants « câblés automatiquement ».

Q : Quels sont les autres outils qui, selon vous, sont indispensables pour un développeur .NET ?

R : Je crois fermement à l’utilisation du bon outil pour le travail, mais les outils ne peuvent être bénéfiques qu’à ceux qui savent quand et comment les appliquer. C’est pourquoi je pense que l’outil le plus important dans la boîte à outils de tout développeur est son cerveau, et comme dans toute autre profession, cet outil doit rester très pointu. Ceci est réalisé en apprenant constamment de nouvelles choses – un nouveau langage de programmation, une nouvelle technologie, ainsi que la plupart des principes de base de la programmation, comme les algorithmes et les structures de données, les expressions régulières et plus encore.

Q : De l’outillage aux processus. Avez-vous une recette pour devenir un meilleur développeur ?

R : Je crois aux gens plutôt qu’aux processus. Les problèmes typiques des équipes de développement de logiciels ne peuvent pas être résolus par une seule méthodologie « taille unique », agile ou autre. Les développeurs ne peuvent devenir de meilleurs professionnels que lorsqu’ils réalisent qu’il ne suffit pas d’écrire du code. Être un meilleur développeur signifie ne pas sacrifier les bonnes pratiques de développement, même lorsque les temps sont pressés. Il s’agit d’essayer d’améliorer le processus et les personnes en partageant les connaissances, et de savoir quand demander de l’aide et l’offrir aux autres.

Q : Quelles sont, selon vous, les pratiques agiles essentielles qu’un développeur doit apprendre dès le premier jour de sa carrière ?

R : Un bon conseil que j’ai reçu d’un collègue au début de ma propre carrière professionnelle était tiré d’un livre intitulé “Comment le résoudre» par un mathématicien George Pólya, où il suggère ce qui suit lors de la résolution d’un problème mathématique :

Tout d’abord, comprenez le problème
Après avoir compris, faites un plan.
Exécutez le plan.
Revoyez votre travail. Comment cela pourrait-il aller mieux?

Je crois que ces étapes simples s’appliquent à peu près à tout, mais surtout au développement de logiciels. Essayez toujours de le rendre un peu meilleur. Validez toujours vos hypothèses. Valorisez toujours les opinions des autres. Rechercher une amélioration continue. N’arrêtez jamais de vous poser des questions !

Q : Pouvez-vous suggérer un livre inspirant pour devenir un meilleur développeur ?

Je peux certainement recommander deux livres incroyables : Code terminé par Steve McConnell et Le programmeur pragmatique : de compagnon à maître par Andrew Hunt et David Thomas. Deux livres remplis de conseils en or et de meilleures pratiques pour tout développeur de logiciels. Je recommande aussi fortement Nettoyer le code par Robert “Oncle Bob” Martin.

Q : La dernière question : quel est votre film préféré ? 🙂

Grande question ! 🙂 Mon film préféré est Arracher! J’ai vu ce film presque 100 fois et je ne m’en lasse pas (même si je peux le réciter par cœur).

Q : Merci, Igal ! Au plaisir de travailler avec vous à la JetBrains Development Academy, et bonne chance !

Development Source

Related Posts

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Clés Redis dans la RAM |  Redis

Clés Redis dans la RAM | Redis

No Comment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *