Catégories
Plugin et site web

Comment puis-je apprendre à réagir? – Smashing Magazine

Dans cet épisode du Smashing Podcast, nous parlons de l'apprentissage de React. Comment React aime-t-il travailler et comment les développeurs expérimentés peuvent-ils commencer? Drew McLellan discute avec Mina Markham pour le savoir.

Photo de Mina MarkhamDans cet épisode du Smashing Podcast, nous parlons de l'apprentissage de React. Comment React aime-t-il travailler et comment les développeurs expérimentés peuvent-ils commencer? J'ai parlé à Mina Markham pour le savoir.

Afficher les notes

Mise à jour hebdomadaire

Transcription

Drew McLellan: Elle est architecte front-end, conférencière et organisatrice, et amoureuse des systèmes de conception. Son travail sur la bibliothèque de brevets Pantsuit pour la campagne présidentielle Hillary for America de Hillary Clinton a marqué un tournant pour les systèmes de conception dans l'industrie et a été présenté dans des publications telles que Wired, Fast Company et Communication Arts. Comme beaucoup d'entre nous, elle écrit du code pour gagner sa vie, actuellement en tant qu'ingénieur senior chez Slack. Nous savons donc qu'elle est une développeur talentueuse et avant-gardiste, mais saviez-vous qu'elle a déjà été confondue avec Patrick Swayze? Mes amis fracassants, veuillez accueillir Mina Markham. Salut Mina. Comment ça va?

Mina Markham: J'écrase.

A dessiné: Bon à entendre. Maintenant, parfois sur le Smashing Podcast, nous parlons aux gens du sujet pour lequel ils sont les plus connus. Et parfois, c'est amusant de parler de quelque chose d'un peu tangentiel. Maintenant, je pourrais discuter avec vous toute la journée sur les bibliothèques de modèles, les systèmes de conception, le travail incroyable que vous avez fait dans ce domaine particulier, et je pourrais vous parler de sujets dont vous avez peut-être parlé, d'événements, tels que l'événement A part, des choses comme la direction artistique. Et nous pourrions évidemment parler de CSS jusqu'à ce que les vaches rentrent à la maison. Mais vous avez tweeté il y a quelques jours, et je me suis rendu compte que nous sommes en fait tous les deux dans le même bateau, car nous sommes tous les deux des ingénieurs expérimentés et nous avons récemment commencé à travailler avec React. Donc, avant d'en arriver à React, où en êtes-vous arrivé à ce point? Aviez-vous travaillé avec d'autres bibliothèques et frameworks pour le développement JavaScript?

Mina: Non, en fait, je fais surtout du JavaScript vanille depuis un moment. Et avant cela, bien sûr, je suis entré dans JavaScript. Permettez-moi de reformuler cela. J'ai commencé à travailler avec un script Java en utilisant jQuery parce que cela avait le plus de sens pour moi. C'était quelque chose qui m'était très facile à analyser pour comprendre ce qui se passait. Et puis à partir de là, je suis revenu à la vanille, au JavaScript simple, à ESX, et je n’étais pas vraiment entré dans les guerres du framework. Je n'avais pas, comme je n'avais pas de favori. Je n'avais pas de chien dans le combat. Je me disais: «Pour toi, réagis, peu importe. Je m'en fiche vraiment. " Mais les temps changent.

A dessiné: Et dans ce genre de façon de travailler avec du JavaScript vanille, parce que j'en ai moi-même fait beaucoup aussi. J'ai travaillé avec différents frameworks. J'ai fait beaucoup de choses avec jQuery à l'époque. J'ai travaillé avec YUI, Yahoo User Interface Library. Aviez-vous ressenti de nombreux points douloureux que quelque chose comme l'architecture de React tente de résoudre?

Mina: Je ne pense pas l'avoir jamais fait. J'ai passé la majeure partie de ma carrière à créer des sites Web plutôt que des applications Web et des choses de ce genre. Donc, tout ce que j'ai fait était assez statique dans une certaine mesure. Je n'ai donc jamais vraiment eu à gérer la gestion de l'État, des choses comme ça. Donc, les points douloureux que React tente de résoudre, je ne m'étais jamais vraiment appliqué au genre de travail que je faisais.

A dessiné: De manière générale, quelle est la nature des projets que vous avez réalisés avec React jusqu'à présent?

Mina: Ce n’était en fait que le seul projet sur lequel je travaille actuellement et je ne peux pas donner trop de détails à cause de la société publique et de toutes ces bonnes choses.

A dessiné: Bien sûr.

Mina: Mais essentiellement, ce que j'essaie de faire, c'est d'essayer d'utiliser React, c'est un type de produit très interactif où j'ai besoin que les gens puissent entrer et enregistrer des données à un certain état, puis les manipuler et générer quelque chose sinon avec lesdites données. Et c'est juste quelque chose qui n'est pas une simple manipulation DOM à ce stade. C'est vraiment beaucoup plus complexe, la gestion frontale des données et la gestion de l'état desdites données. Il n'y avait donc vraiment pas d'autre alternative que d'utiliser une sorte de bibliothèque qui tente de résoudre ce problème. Je savais que je ne serais pas en mesure de passer le cap avec un simple JavaScript. J'envisageais peut-être de gérer quelque chose du côté serveur, mais encore une fois, en raison de la nature très interactive de ce avec quoi je travaille, cela doit être dans le client. Et donc nous utilisons déjà React at Slack pour diverses autres choses. Et donc je me suis dit: "D'accord, eh bien, nous devrions simplement aller de l'avant et adopter la même chose que le reste de la société mère que les entreprises utilisent et partir de là."

A dessiné: L'une des choses qui me semble toujours être un problème avec les gens qui choisissent React est de maîtriser la chaîne d'outils nécessaire pour faire fonctionner les choses, Webpack étant un éléphant évident dans la pièce. Avez-vous dû faire beaucoup de configuration de la chaîne d'outils ou comme moi si vous aviez le luxe de coéquipiers le faire pour vous?

Mina: Oh, j'adore l'équipe d'infrastructure de Slack the data. L'équipe d'infrastructure frontale de Slack a géré tout cela. Je n'avais pas à y penser. C'était super. Parce que j'ai essayé d'apprendre React avant dans le passé. Habituellement, la meilleure façon d'apprendre est de travailler et de mettre en œuvre des choses. Et nous utilisons React pour construire beaucoup de hillaryclinton.com en 2016. Donc ce n'est pas comme si je n'avais jamais travaillé avec des gens qui l'utilisaient. C'est juste que mon travail n'a jamais eu besoin de moi directement pour m'impliquer. Mais cette base de code était très complexe et très sophistiquée, et il se passait tellement de choses qu'il y a une telle barrière à l'entrée pour essayer d'apprendre quoi que ce soit là-dedans si vous ne saviez pas déjà comment React et Redux et tout cela fonctionnent, ce que je non. Je n'étais donc pas vraiment efficace pour apprendre dans cet environnement.

Mina: Heureusement, ici, j'ai des gens qui aiment en retirer un peu plus des morceaux complexes. Je n'ai pas du tout à me soucier de la configuration Webpack. Cela a été mis en place. Cela a été essayé et testé et prêt à fonctionner. Je suis dans un bateau similaire où nous utilisons également Redux en plus de React, dont je ne savais pas qu'il s'agissait de deux choses différentes. Je ne savais pas quelle partie gérait quoi. Passer dans une base de code comme ça, c'était un peu désorientant parce que je ne savais pas que c'était la même chose. Des gens qui étaient des développeurs chevronnés de React me disaient: "Oh, nous utilisons également Redux, ce qui rend un peu plus difficile pour vous d’apprendre vraiment ce que React peut faire si vous partez de zéro." Et je n'ai jamais vraiment compris ce qu'ils voulaient dire par là parce que je ne savais pas de quoi ils parlaient.

Mina: Pour répondre à votre question initiale, j'ai encore un peu plus de barrière à l'entrée, car il ne s'agit pas seulement d'apprendre React. Je dois apprendre React et aussi comment utiliser la boutique Redux. Donc, ces deux choses en même temps peuvent être un peu trop.

A dessiné: Oui, j'ai trouvé exactement la même chose dans une base de code existante que mon premier projet React qui utilise Redux. Et je pense que, comme c'est la nature de ces types de technologies quand ils sont jeunes, ils itèrent très rapidement, et quelle est la meilleure pratique à un moment donné, 6 mois plus tard a évolué et il y a une façon différente de faire les choses. Et lorsque vous avez une base de code qui s'étend sur plusieurs années, vous pouvez parfois y avoir différents styles d'implémentation. Il n'est pas toujours synchronisé. Et bien sûr, si vous suivez un tutoriel ou quoi que ce soit à apprendre, vous lisez des livres, vous utilisez des ressources, ils seront dans la version la plus moderne de la façon de faire les choses. Et cela ne correspond pas nécessairement à ce que vous voyez lorsque vous regardez un produit existant et mature. Est-ce quelque chose que vous aviez vécu ou avez-vous réussi à garder votre base de code vraiment à jour?

Mina: Je pense que c'est quelque chose que j'ai vécu. Quand j'ai essayé d'apprendre à faire React par moi-même, j'ai regardé divers tutoriels et des choses comme ça. Et j'ai remarqué, ou du moins les gens m'ont dit qui ont travaillé qui ont travaillé avec moi que certaines des choses que nous faisons ou une sorte d'anti-modèle ou pas tout à fait comment les choses fonctionnent maintenant, parce que cette base de code est légèrement, bien nous mûrir un parent, mais il a quelques années. Et donc il y a des façons qui, je suppose, sont plus faciles à faire que la façon dont nous les faisons actuellement parce que cela a été écrit il y a des années. C'est donc un peu un tapis roulant qui essaie de suivre l'heure actuelle et de s'assurer que je veux faire les choses de la meilleure façon, mais je ne veux pas non plus casser une base de code établie parce que je veux jouer avec des trucs.

A dessiné: Évidemment, l'une des choses avec React que des gens comme vous et moi y arrivons, cela peut être un peu discordant avec JSX. Utilisez-vous JSX dans votre projet?

Mina: Nous sommes. J'utilise JSX.

A dessiné: Avez-vous fait la paix avec ça?

Mina: Je tombe comme si un petit petit morceau de moi meurt à chaque fois que j'ouvre un de ces fichiers. C'est toujours un sacrilège de mettre mon code HTML dans le fichier JavaScript. Je sais que c'est une sorte de révolutionnaire et tout le problème, mais je trouve juste que j'écris mon balisage dans un fichier JavaScript. J'ai fait la paix avec ça, mais chaque fois que je le fais, je suis juste comme, "…" Les soucis de séparation, c'est une chose. Je voudrais que ça revienne, s'il vous plaît.

A dessiné: C’est un point valable, non? Mon expérience lorsque je commençais à travailler plus sérieusement avec JavaScript, et c'était probablement lorsque j'étais de retour chez Yahoo, les choses étaient très proches du modèle des pages HTML rendues par le serveur, puis en adoptant une approche d'amélioration progressive, en superposant JavaScript pour améliorer L'interface. Et si l'état de quelque chose dans l'interface devait changer, votre code devait connaître toutes les parties de l'interface qu'il devait mettre à jour, ce qui vous conduit évidemment à une approche étroitement couplée avec ces grandes vues monolithiques où le code que vous écrivez a besoin de connaître tous les autres codes qui l'entourent. Et je suppose que cela ne se prête pas vraiment à une approche composante que vous adopteriez lorsque vous travaillez avec une bibliothèque de modèles ou un système de conception, ce qui correspond davantage à votre domaine d'expertise particulier. Je suppose que React se prête davantage à cette approche, n'est-ce pas?

Mina: Je pense que c'est le cas, en particulier avec la possibilité de coupler le CSS très spécifique à un composant JSX ou à un composant React. Et de cette façon, il est beaucoup plus facile de séparer ou de ne prendre que ce dont vous avez besoin pour la bibliothèque et de laisser le reste, tandis qu'une bibliothèque de modèles ou un système de conception qui tente de faire quelque chose de plus monolithique avec un seul fichier CSS de grand style ou quelque chose comme ça , cela rend les choses très difficiles. Vous devez en quelque sorte tout prendre ou rien. J'apprécie donc que React nous permette de faire un développement plus individualisé et plus composant, même si je souhaite toujours qu'il y ait un moyen pour moi de séparer vraiment ma couche de présentation et ma couche de contenu de ma couche d'interactivité. Mais peut-être que c'est juste que je suis un peu vieille école dans ce sens.

A dessiné: Je ressens définitivement la douleur là-bas. L'idée est que, venez me corriger si je me trompe, je crois que plutôt que de séparer les technologies, le CSS, le JavaScript et le HTML, c'est séparer la fonctionnalité. Donc, tout ce qui est un composant existe tous ensemble-

Mina: Ouais.

A dessiné: … Ce qui, je suppose, est utile si ce composant n'est plus nécessaire. Vous pouvez simplement le supprimer, et il a disparu, et cela ne laisse aucune empreinte autour de votre application. Ce n'est pas toujours le cas avec CSS. Comment travaillez-vous avec CSS avec React? Avez-vous regardé des choses comme des composants de style ou quelque chose comme ça?

Mina: Non, nous ne l'avons pas fait. J'ai entendu parler de composants de style, mais je ne les ai jamais vraiment vraiment approfondis pour être parfaitement honnête. Donc, la façon dont nous travaillons avec CSS avec React est d'écrire Less, et nous avons juste un fichier Less attaché à chaque composant individuel qui est importé dans ce composant. Et puis il est lié via Webpack et servi au client.

A dessiné: Utilisez-vous un système comme BEM ou quelque chose pour transformer l'espace de noms?

Mina: Ouais. Nous utilisons BEM pour l’espacement de noms, bien que l’adhésion à celui-ci varie en fonction de qui écrit quoi. Mais nous essayons d'utiliser un modèle d'espacement de noms BEM pour rendre un peu plus clair le but de chaque classe et composant individuel.

A dessiné: Et cela semble-t-il fonctionner avec succès pour vous?

Mina: Je le pense. Parfois, il a en quelque sorte le même vieux problème de parfois je ne sais pas comment nommer quelque chose. Après un certain temps, les choses quotidiennes ont toujours été et seront toujours difficiles pour le maître. Donc, c'est le seul problème que j'ai avec, c'est que je n'ai parfois aucune idée de ce que je devrais appeler un composant particulier.

A dessiné: Absolument. C’est une bataille constante, n’est-ce pas, comment dénoncer les choses?

Mina: Ouais.

A dessiné: Je me retrouve toujours lorsque je travaille sur une nouvelle fonctionnalité ou quelque chose comme ça, vous donnez un composant et toutes les classes et tout le nom que la fonctionnalité a pour le moment. Et puis au moment où vous venez de lancer, il a été renommé autre chose. Vous avez donc des références à l'ancien nom dans le code et l'interface a le nouveau nom. Et …

Mina: J'essaie de toujours nommer les choses en fonction de leur fonction ou de leur objectif par rapport à des choses un peu plus éphémères, car il est moins probable que l'objectif réel de ce composant change. J'ai oublié de le mentionner, mais en plus d'utiliser BEM, je suppose que nous utilisons des BEMIT si vous le connaissez. Il s'agit essentiellement de l'ITCSS plus BEM, tous deux créés par Harry Roberts. J'utilise donc la notation hongroise pour indiquer si quelque chose est un composant, par rapport à un objet de mise en page, par opposition à un modèle plus grand composé de plusieurs composants. Et puis à partir de là, nous utilisons la convention BEM pour signifier comme l'élément bloc et tout ça.

A dessiné: Et avez-vous dû faire beaucoup de refactorisation et de suppression de composants et de choses dans votre base de code et avez-vous dû faire face au problème du CSS qui est laissé pour compte?

Mina: Ouais. Donc, la partie non React de mon travail, de maintenir slack.com, c'est juste un tas de fichiers Less qui sont compilés pour CSS. Et je vous garantis, il y a beaucoup de code zombie là-dedans, parce que nous itérons certainement beaucoup au-dessus des choses depuis que je suis là. Et nous n'avons pas toujours le temps de revenir en arrière et de faire le nettoyage par rapport à la refonte d'une page ou de quelque chose. Il est donc trop tard pour un audit, je dirai cela.

A dessiné: C'est quelque chose que nous venons de voir dans notre projet React, en regardant comment nous abordons CSS. À l'heure actuelle, nous avons quelques gros fichiers CSS globaux pour l'ensemble de l'application, et nous obtenons cette situation où la taille de notre ensemble ne fait que croître, et grandit, et grandit et ne devient jamais plus petite, même si les choses deviennent supprimé. Nous avons donc étudié des éléments comme les composants de style, Tailwind est également une autre option que nous envisageons sérieusement. Avez-vous beaucoup regardé le vent arrière?

Mina: Je ne l'ai pas beaucoup regardé. J'ai été curieux à ce sujet, mais encore une fois, je n'ai jamais vraiment eu le temps de creuser pour voir si c'est quelque chose que je veux essayer d'intégrer dans notre base de code.

A dessiné: J'étais en fait assez surpris, parce que comme vous, je suis un peu old school avec la façon de faire ces choses. J'aime bien la séparation des préoccupations. Et j'aime écrire mon CSS en CSS, et bien sûr, l'approche avec Tailwind est que vous avez tous ces noms de classe, qui ressemblent un peu aux styles en ligne que vous appliquez. Et si ça fait sale.

Mina: Ouais.

A dessiné: Et j’ai fait du bénévolat au sein de l’équipe, nous avons chacun pris une technologie pour enquêter s’ils convenaient bien à nos problèmes, et j’ai proposé de regarder Tailwind parce que j’étais absolument certain que j’allais le détester.

Mina: Non non.

A dessiné: Mais il s'avère que je pense que cela résout beaucoup de problèmes. J'étais assez impressionné.

Mina: Ouais. J'ai en quelque sorte adopté une façon de penser similaire, car dans le passé, je préférerais de beaucoup qu'une classe comprenne tous les styles dont j'avais besoin pour un composant particulier et non une classe par propriété, comme je pense que Tailwind le fait ou des langues comme ça. Pour les mêmes raisons, cela ressemblait beaucoup à: "Eh bien, je suis juste en train d'exécuter CSS en ligne à ce stade. Pourquoi ferais-je ça? " Mais comme je développe de plus en plus, à l'intérieur de notre système de conception Slack, j'ai créé un tas de ce que j'appelle des classes utilitaires qui font des choses comme ajouter un peu de marge avec un motif. J'ai remarqué que de plus en plus, j'utilise ces classes en plus des classes de composants. Je me dis donc: "D'accord, je devrais peut-être revoir tout cela pour faire un CSS comme une déclaration à la fois." Je ne sais pas si j'irais aussi loin, mais ça vaut vraiment la peine d'être considéré.

A dessiné: L'informatique semble faire volte-face en termes de tendances entre les clients légers et les solutions de gros clients. Nous avons commencé avec les ordinateurs centraux avec terminaux, puis avec l'ère PC avec Windows et Office et toutes ces sortes de grosses applications. Et ils devenaient tous très lents, et puis le Web est arrivé, et c'était juste un navigateur, et tout le travail se faisait sur le serveur. Et tout était à nouveau rapide et rapide. Et maintenant, nous sommes revenus à remettre tout ce travail dans le navigateur avec tout ce qui se fait avec JavaScript, des choses comme React et l'approche JAMstack où nous sommes de retour à une sorte de gros client. Je crains parfois que nous demandions trop au navigateur. Est-ce une erreur? Demandons-nous trop au navigateur d'essayer de faire tout cela dans React?

Mina: Je veux dire oui avec la mise en garde, encore une fois, mon expérience est très limitée aux sites principalement statiques. Je ne fais pas beaucoup de développement de produits. Alors peut-être que dans ce domaine, cela a plus de sens. Mais de mon point de vue, j’ai l’impression que nous utilisons souvent une hachette alors que nous avons juste besoin d’un couteau à beurre. Je ne sais pas pourquoi nous devons mettre tout cela dans le navigateur, mettre tant de travail et tant de pression sur le client. Je pense que nous pourrions faire cela beaucoup plus simplement. L'une des choses qui m'a toujours rendu un peu hésitant à utiliser React, ou je dis hésitant, mais ce que je veux dire quand cela m'a rendu viscéralement en colère et auquel je me suis activement opposé, c'est quand j'allais sur un site Web et littéralement rien ne se rendrait parce qu'il y avait était une erreur ou quelque chose comme, "Vraiment? La page entière est cassée parce qu'une fonction est tombée en panne? "

Mina: Cela m'a un peu ennuyé que bien souvent, c'était une approche tout ou rien. L'une des discussions que j'ai faites à AEA dans le passé et dans d'autres endroits dans le passé portait sur la façon d'inclure l'amélioration progressive et non seulement votre développement, mais aussi la direction artistique et la conception des sites. Et je voudrais mentionner spécifiquement des exemples de sites Web qui n’ont pas fait d’amélioration progressive ou n’ont subi aucune dégradation gracieuse. C'était comme si vous aviez le JavaScript en cours d'exécution dans le navigateur ou que vous n'obteniez absolument rien. Et ce serait comme un simple site qui représente des informations sur l'histoire de la conception Web, qui a été l'un des sites dont on a réellement parlé, l'histoire de la conception Web de 1990 à nos jours. C'était un beau site Web avec beaucoup de chronologies, une animation des choses. Mais il aurait aussi pu être rendu statiquement avec juste une liste. Il y a eu des étapes entre ne rien montrer et montrer cette expérience magnifiquement améliorée qui, je pense, s'est perdue en raison de la façon dont nous abordons le développement Web moderne.

A dessiné: Donc, diriez-vous qu'il existe absolument certaines catégories de projets qui conviennent à une solution comme React et d'autres où elle ne devrait vraiment pas être utilisée et vous devriez utiliser des méthodes plus traditionnelles?

Mina: Je pense que si votre site en particulier est principalement statique, il ne sert qu'à diffuser des informations, je suppose que je ne comprends pas pourquoi vous avez besoin d'un projet comme React pour rendre quelque chose qui n'a pas beaucoup d'interaction au-delà de la simple manipulation DOM. Je suppose que je ne vois pas quel avantage vous en retirez. Encore une fois, je ne travaille peut-être pas sur les projets appropriés. Je n'ai peut-être pas seulement vu ou trouvé ce cas d'utilisation, mais j'ai du mal à voir s'il s'agit principalement d'un site statique, présentant du contenu, pas beaucoup d'interaction, pas beaucoup d'interaction au-delà du DOM manipulé et faisant des animations. Je ne vois pas comment avoir une bibliothèque React vous aide à atteindre cet objectif.

A dessiné: C'est intéressant parce que je ne parle pas mal parce que je ne l'ai pas utilisé, mais je vois beaucoup de projets Gatsby et Gatsby étant un générateur de site statique qui utilise un front-end React. Et je vois que tous les exemples des thèmes et des choses dont ils disposent sont tous des sites basés sur du contenu, ou des blogs, et un site de recettes, et un portfolio, et ce genre de choses. Et il y a quelque chose que je pense en fait que ce n'est pas nécessairement le bon choix pour quelque chose comme React. Pourquoi cela n'est-il pas rendu statiquement, puis amélioré progressivement?

Mina: Ouais.

A dessiné: Ce n'est pas un logiciel.

Mina: Ouais. Je n'ai pas non plus utilisé Gatsby. J'ai entendu beaucoup de bonnes choses à ce sujet, mais c'est probablement l'un des exemples auxquels je penserais: «D'accord, je suppose que je ne vois tout simplement pas pourquoi cet outil est nécessaire pour faire ce travail particulier. " Encore une fois, je ne sais pas. C'est peut-être simplement parce que plus de gens sont à l'aise d'écrire dans React lorsqu'ils écrivent quelque chose d'autre, et c'est juste de fournir un outil qui rencontre les gens là où ils se trouvent. J'ai entendu beaucoup de choses sur les générateurs de sites statiques qui utilisent React pour les gens qui les ont utilisés et les aiment, mais ce n'est pas un cas d'utilisation que j'aurais immédiatement dit: "Oh, ça a du sens."

A dessiné: Il semble qu'il y ait toujours eu cette bataille entre ce que nous appellerions un site Web et ce que vous pourriez appeler une application Web. Et l'abîme entre les deux semble s'élargir, et s'élargir, et s'élargir, tandis qu'une approche d'amélioration progressive tente de combler l'écart en prenant quelque chose de statique et en ajoutant JavaScript et en ajoutant de l'interactivité. Il semble que des choses comme React conviennent parfaitement aux logiciels que vous exécutez dans le navigateur. Serais-tu d'accord avec ça?

Mina: Je serais certainement d'accord avec cela, car on dirait qu'il a été construit pour ce type d'environnement; il a été conçu pour exécuter des logiciels. Il a été construit par Facebook pour Facebook. Il a donc été conçu pour un produit. Il a été conçu pour exécuter tout ce que vous appelez une application Web dans le navigateur et pas nécessairement pour le type de travail que, comme je l'ai mentionné, j'ai l'habitude de faire. Donc, je pense que dans ces scénarios, il est certainement très judicieux de l'utiliser si vous créez un logiciel plus complexe et plus sophistiqué destiné à être exécuté à l'intérieur d'un navigateur. Mais si vous construisez un site de marketing ou autre, je suppose que j'aurais encore du mal à voir pourquoi cela sera nécessaire là-bas.

A dessiné: Donnons-nous donc la permission aux gens de continuer à créer des sites Web décents et rendus statiquement?

Mina: J'aimerais voir plus de choses se produire. J'ai l'impression que ça s'est perdu et que c'est en quelque sorte perdu, si c'était cool ou quoi que ce soit. J'ai l'impression que nous avons perdu cette partie du développement Web. C'est tellement drôle: vous et moi avons tous les deux dit que nous étions un peu à l'ancienne, et j'en ris parce que je fais du développement web depuis, quoi, six ans maintenant? Comment suis-je vieille école? Ça ne fait pas si longtemps pour moi. Et pourtant, je fais partie de la vieille garde qui n'aime pas les choses nouvelles et brillantes. Je ne comprends pas.

A dessiné: Donc, en fait, React existe depuis tout le temps que vous êtes développeur Web.

Mina: Peut-être que j'ai juste une vieille âme. Je ne sais pas.

A dessiné: Je pense que c'est probablement le cas. Je n'ai pas regardé personnellement, il existe des approches rendues côté service que vous pouvez adopter avec les applications React. En avez-vous fait l'expérience?

Mina: Je n'en ai pas connu. Je les ai brièvement examinés pour le projet sur lequel je travaille actuellement, car j'ai l'impression que certaines parties de l'opération fonctionneraient mieux sur un serveur que sur les clients. Mais je pense qu'en raison de mes connaissances limitées et du fait que la base de code est un peu plus compliquée que je ne peux comprendre, je n'ai pas été tout à fait en mesure de comprendre comment faire fonctionner cette pièce. J'adorerais le comprendre finalement, mais j'ai passé une journée à y creuser. Je me disais: «Tu sais quoi? Je ne cherche pas ça, je dois l'être. Je vais donc simplement reculer et prendre un chemin différent. "

A dessiné: Ouais. Je pense que nous avons tous été là.

Mina: Ouais. J'ai emprunté un chemin. Je me disais: «Oh, c'est sombre et effrayant. Inversons. Inversons. "

A dessiné: Éloignez-vous du code.

Mina: Oui.

A dessiné: Vous avez donc été très diplomate et poli à propos de React jusqu'à présent. J'ai l'impression qu'il y a un peu de tension sous la surface. Allons. Dites-nous ce que vous ressentez vraiment.

Mina: J'ai été poli et diplomatique, principalement parce que la base de fans de Reacts peut être un peu méchante parfois, et je préfère ne pas les faire venir pour moi. Alors s'il vous plaît, React est super. C'est merveilleux. Utilisez-le pour ce que vous voulez l'utiliser. Je plaisante, mais même ce tweet que vous avez mentionné au début de ce podcast où je pense que ce que vous avez dit, c'est que je ne le déteste pas. Je ne l'aime pas, mais je ne le déteste pas. Même cette déclaration, j'ai eu des gens, il n'y avait pas de vitriol, mais ils étaient plus prêts à sauter à la défense et à dire: «Eh bien, j'adore parce que X, Y, Z.» Je me dis: «Je n'ai pas dit que c'était mauvais. Je viens de dire que je suis tout à fait d'accord. " Mais apparemment, meh n'est pas bien. Je dois l'adorer.

Mina: C’est pourquoi j’ai probablement été un peu plus diplomate que je ne le serais normalement, juste parce que je ne veux pas que les gens pensent que je suis mauvais, parce que je ne le suis pas. Il a sa place dans plus de développement web. Il remplit une fonction. Il fait bien son travail. Les gens l'adorent. Ce n'est tout simplement pas un outil que j'ai jamais eu ou voulu utiliser jusqu'à présent.

A dessiné: Ouais. Les choses peuvent devenir très tribales, n'est-ce pas, les gens se sentant obligés de prendre parti ou non, et vous êtes soit absolument pour quelque chose, soit absolument contre quelque chose? Et je ne suis pas sûr que cela serve un bon objectif, et je ne pense pas que cela nous fasse vraiment avancer en tant qu'industrie et en tant que communauté pour ce faire.

Mina: Ouais. C'est vraiment bizarre. C'est fascinant à regarder d'un simple point de vue sociologique, mais c'est souvent vraiment bizarre d'observer. C’est comme si je n’étais pas autorisé à être, comme je l’ai dit, neutre sur certaines choses. Je dois avoir une opinion bien arrêtée, c'est-à-dire que je ne pense pas en bonne santé. Quel est le terme, "opinions fortes, détenues de façon vague?" C’est comme ça que je procède. Je ressens fortement certaines choses, mais ce n'est pas comme si vous ne pouviez pas changer d'avis. Là où je me sens comme certaines personnes, leur identité est enveloppée dans certains aspects, que si vous n'êtes pas pour tout ce avec quoi ils ont choisi de s'identifier, c'est une légère personnelle contre juste, je m'en fous de ce sujet particulier, ou un outil, ou autre chose.

A dessiné: Oui. Je ne sais pas si cela est aggravé par le fait que nous avons tous tendance à nous spécialiser beaucoup plus dans des parties particulières de la pile. Et je sais qu'il y a des gens qui sont des développeurs de React. Ils s'appelleraient un développeur React parce que c'est ce dans quoi ils travaillent. Et ils n'écriraient pas nécessairement un script Java vanille ou n'utiliseraient pas Vue ou autre chose. React est leur monde. Donc je suppose que cela ressemble presque à une attaque contre toute leur carrière de dire: "Je n'aime pas React." Eh bien, ils sont vraiment investis pour vous faire aimer React ou quelle que soit la technologie.

Mina: J'admettrai être une de ces personnes dans le passé. En fait, il s'agissait probablement principalement de SASS, je crois. Je faisais partie de l'équipe de SASS en tant que préprocesseur et tous les autres préprocesseurs sont des ordures. Je ne veux pas en parler. Je ne veux pas m'occuper d'eux. Et j'ai réalisé que c'était une façon très étroite de voir les choses. Utilisez l'outil approprié pour le travail. Tout ce qui vous rend plus productif, c'est le bon outil. Peu importe ce que c'est.

A dessiné: Y a-t-il des technologies avec lesquelles nous travaillons qui n'ont pas ce genre de sensation tribale? Y a-t-il quelque chose que les gens sont heureux d'utiliser ou de ne pas utiliser? Je ne pense à rien.

Mina: Sensationnel. En fait, personne n'a d'opinion sur le balisage.

A dessiné: Non.

Mina: J'ai l'impression que personne n'a d'opinion sur le HTML réel et juste le balisage, tout comme «c'est là». Ils l'utilisent. Mais les gens ont des opinions bien arrêtées sur CSS et comment c'est terrible ou merveilleux, et les guerres de préprocesseur qui ne se produisent plus vraiment, et bien sûr, tout le tribalisme au sein des différentes bibliothèques JavaScript.

A dessiné: Donc, vous diriez que votre parcours jusqu'à présent avec React est toujours juste: «C'est un outil. Il fait son travail? "

Mina: Il est passé d'une curiosité à une aversion active et viscérale à cause de sa prévalence et de mon inutilité. Je pensais que cette prévalence était pour moi. Je suis maintenant avec meh, ce qui ne veut pas dire que je déteste ça. Cela signifie simplement…

A dessiné: Je pense que c'est un bon endroit pour être. Je pense que nous sommes probablement tous plus forts en tant que technologues si nous comprenons la valeur d'une technologie particulière pour son objectif. Nous pouvons évaluer ce qui est bon dans quelles circonstances et choisir le bon outil pour le travail.

Mina: Ouais. Et c'est un peu là où j'en suis arrivé à ce stade de ma carrière où je ne m'investis pas vraiment dans une langue ou une technologie particulière, ou quoi que ce soit, parce que c'est comme: «Juste quel outil est le plus approprié pour ce que vous êtes essayer de le faire, puis utiliser cela. " J'ai appris qu'il y a une place pour tout; il y a un temps et un endroit pour tout faire. Et jusqu'à récemment, il n'y avait pas de temps réel ni de place pour moi pour utiliser ce bibliothécaire React, et maintenant c'est le cas.

A dessiné: Je pense que c'est un bon endroit pour être. J'ai donc tout appris sur React récemment, comme vous l'avez fait dans la journée. Y a-t-il autre chose que vous avez appris récemment?

Mina: J'ai en fait appris ironiquement, ce qui est, je pense, une autre langue originaire de Facebook, j'ai fait beaucoup de développement Hack, principalement parce que c'est ce que j'utilise chez Slack, dans mon travail de jour. L'apprentissage de Hack m'a ouvert la voie pour devenir plus à l'aise avec React car ils suivent des schémas très similaires, sauf que l'un est côté serveur et l'autre non. Pour que, de manière générale, j'en apprenne davantage sur le back-end et son fonctionnement pour différentes raisons. Et je me suis étiré au cours des deux dernières années et je suis de plus en plus en dehors de ma zone confortable. Concevoir des systèmes, des bibliothèques, c’est vraiment mon monde et je me sens très bien et à l’aise dans ce monde. Mais je vais au-delà et je fais beaucoup plus de logique côté serveur, de développement d'API, de modélisation de données, et tout ça. J'ai fait beaucoup de choses là-dessus au cours de la dernière année également.

A dessiné: Je trouve que plus je comprends la pile entière des trucs back-end dans les trucs front-end, chacun aide ma connaissance de l'autre. Je trouve que j'écris un meilleur code frontal en ayant écrit du code principal et en comprenant-

Mina: Ouais. Je pense que je ressens la même chose. Maintenant que j'ai une meilleure idée, comme nous l'avons dit, de l'ensemble de la façon dont nous passons des données au client final. I find that I’m thinking about the entire pipeline no matter what part I’m actually working in. I’m thinking about what’s the best way to structure this API so that when I get to the template, I don’t have to do so much manipulating of the data that I receive on that end of it. It’s definitely made me overall a better engineer, I feel like it

Drew: If you, dear listener, would like to hear more from Mina, you can follow her on Twitter where she’s @MinaMarkham and find her personal site at mina.codes. Thanks for joining us today, Mina. Do you have any parting words?

Mina: Have a smashing night?

Drew: Great.

Smashing Editorial(il)

Laisser un commentaire

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