Evan You - Vue, Vite
Durée: 46m50s
Date de sortie: 27/08/2021
Join us as we talk to Evan You, creator of Vue.js, Vite, VitePress, and a host of other tools.
- https://vuejs.org/
- https://vitejs.dev/
- https://vitepress.vuejs.org/
- https://www.meteor.com/
- https://v3.vuejs.org/api/composition-api.html
- https://github.com/vuejs/rfcs/pull/78
- https://vueuse.org/
- https://vue-loader.vuejs.org/
- https://astro.build/
Tooltips
Andrew
Justin
Evan
Le challenge est, évidemment, qu'il est assez grand de la shift du paradigme
comparé à l'application d'options.
Et aussi, il y a aussi des attailles fortes
pour les API existantes, pour certains utilisateurs,
parce que les gens ne veulent pas voir
ce qu'ils sont familles avec être considérés
comme un déprocateur ou un second classiste
dans leur frameworks.
Bonjour, bienvenue à la podcast de DevTools FM.
C'est un podcast sur les tools de développeur
et les gens qui les font.
Je suis Andrew et c'est mon co-host Justin.
Salut tout le monde, je suis vraiment excité aujourd'hui
d'introduire notre guest, Evan Yu.
Evan est le créateur de VJS,
mais aussi un professeur de la technologie.
Le système de vue est vraiment riche
et de la qualité de la qualité,
de l'envers de l'envers de VIT,
au projet de documentation VEPRESS,
je pense que ce sera VEPRESS.
Evan, est-ce qu'il y a d'autre que vous?
Je ne sais pas, je travaille sur VIE
et les projets de la production.
Je suis un employeur de la technologie
et je suis un développeur d'envers de la technologie.
Je l'ai fait pendant quelques années.
Vous avez fait un envers de la technologie
en plein temps, c'est votre raison primaire.
C'est incroyable.
Comment ça se passe?
Vous avez fait un envers de la technologie?
Ou est-ce que ça a été fait
par le succès de vos projets?
Ça a été fait.
J'ai commencé à travailler sur VIE
quand je suis encore sur Google,
mais ça a été un projet de la production.
Je veux voir ce que je peux faire avec JavaScript,
pour que je puisse prototype mon propre truc plus rapidement.
Mais ça a été créé.
C'est comme un cycle de
« Oh, plus de gens sont utilisés,
peut-être que je devrais prendre plus de temps pour ça.
Et puis, quand je prends plus de temps,
il se crée encore plus tard.
Il y a encore un projet de site
pour peut-être... Je crois que je suis commencé en 2014.
Il y a encore un projet de site
pour deux ans et, en avance,
en 2016,
je travaillais en medium,
mais le vœu a été un peu grand.
Je décidais peut-être
que c'est cependant
de essayer de voir si je peux juste travailler
en plein temps.
C'est une combinaison de
être élevé à l'actualité.
Je me sentais toujours
travaillé pour quelqu'un d'autre.
L'adhd,
si la mission ne s'est pas 100% alignée
avec votre propre
intérêt ou curiosité,
c'est un problème pour moi.
Je ne sais pas si ça catégorise
comme adhd ou quelque chose,
mais j'ai toujours l'air de
travailler avec ça.
Quand le goût est 100% aligné avec mon propre intérêt.
Je me suis dit
que
même si je vais faire
plus de monnaie,
le gain de utilité de pouvoir
travailler sur quelque chose que je veux
absolument faire, c'est énorme.
C'est assez ce qui me fait
faire ça.
Je me sens complètement
complètement. Je n'ai pas d'adhd
et le facteur d'innovation est énorme.
Si ça ne s'est pas aligné avec votre intérêt,
ça peut être très difficile.
Mais, même si quelque chose est intéressant
pour vous,
de maintenir un long terme d'intérêt
et quelque chose peut être difficile,
comment avez-vous pu faire ça ?
Je pense que
parce que
la drive
de faire quelque chose de bon,
ça vous permet
de faire un petit
relâchement
de faire le déjeuner
ou du travail. C'est un processus long.
Il y a des fois où je me sentais vraiment
dégagé.
Parce que,
quand vous vous réjouissez,
il y a des reports de 10 $.
Ou vous avez originalement des plans
que je vais faire ceci aujourd'hui.
Mais, alors,
il y a des reports de 1 bug et vous vous spandre
un whole day fixant le bug.
Et peut-être pas même être capable de fixer ça.
C'est super frustrant.
Mais,
par le temps, vous avez juste
utilisé ça ? Je pense que le bon part
est parce que
ce n'est pas techniquement un travail anymore.
Donc, vous n'avez pas un boss
qui vous dit que vous devez fixer ce bug aujourd'hui.
Je peux me juster
sur la priorité un peu,
juste pour me faire mon
mental.
Si je me sens détenu, je peux prendre un break.
Personne ne va me chier pour faire ça.
Je n'ai pas besoin de
faire ça pour mes managers.
Je me sens beaucoup plus
libre en termes de la manière dont je veux
m'allocer mon temps.
Quand c'est le moment, quand c'est le moment.
Ouais.
Ça m'a aidé.
C'est le rêve.
Quand nous parlions de Dom
sur le livre de la histoire, vous avez mentionné que vous travaillez en métier
et que vous avez aussi fait ça.
Vous avez travaillé en métier et sur ces technologies,
vous avez influencé la façon dont vous approchez de la développement de la software
ou avez-vous déjà fait tout ça ?
Je veux dire que c'est un style de sainte-saint.
Je n'adresse pas de
des rues strictes de comment faire des choses.
Je vais le faire en tant que type de personne.
En tant que métier,
ça me fait un grand
accès à la manière dont
un projet d'opérance
est déjà très grand.
Mais c'est aussi différent
que le sens que le métier était une company
capital bactique.
Le but de la company était de
faire du ménage sur le métier.
Je pense que
ce que j'ai appris quand je suis en métier
c'était que
il n'y avait pas vraiment...
Il y avait beaucoup de choses que j'ai appris
mais certains des plus importants
des takeaways étaient probablement au site de la business
parce que le métier a
initialement été un peu plus attractif
mais c'était comme, on va prendre beaucoup d'investments
et ensuite on va voir comment faire le ménage.
Mais en fait, ils n'ont pas
vraiment fait un bon moyen
de faire du ménage pour le métier.
Ils ont du boucher avec ça.
J'ai été avec eux dans ce processus.
J'ai été aussi en honte.
J'ai été en honte pour voir
aussi des choses techniques
des choses initiales
du métier qui ont
fait un système complet
avec sa propre package de management.
Il a même des bundes de nodes
dans sa propre distribution.
Ça crée beaucoup de hurdles nécessaires
quand les gens sont
used à avoir leur propre node
installé, leurs propres packages MPM
mais ensuite, pour faire tout ça,
travailler avec le métier avec un ménage
qui est très fort,
pour ébriquer le système de nodes
pour réstructure le métier,
pour être un ménage de packages de nodes
mais je pense que
l'architecture initiale
était tellement monolithique
qui a fait ça très difficile.
C'était mon premier point de vue
de la technique. Je l'ai vendu tout ça
en travaillant en vue
parce que j'avais plus de frein technique
pour faire ce que je voulais.
Deux ménages monolithiques
et deux ambitions de la get go.
Surtout pour moi,
comme un developer indy, ça ne va pas
fonctionner, c'est pourquoi je
j'ai intentionné le design de la
termine progressive
donc c'est vraiment facile
d'être integré à un stack existant
et en fait
d'un angular, si vous voulez
utiliser un angular, vous adoptez tout
que je vous ai posé.
Ça commence avec différentes assumptions
sur votre base d'usage. Pour moi,
c'est vraiment comme, je suis
un developer indy, mon audience
est vraiment des gens qui sont comme moi
ou des beginners, je veux vraiment
faire quelque chose qui est facile
pour les gens d'en prendre.
Une chose que j'ai adoré
sur le système de vue,
c'est que vous êtes venus
avoir un bon visage en en achetant
des patterns intéressantes
et en en faire un moyen smooth
pour les intégrer.
J'ai commencé dans le système de vue
en en achetant un visage
et j'ai commencé à faire un peu de travail
sur Virtual DOM, en en mettre
un visage et en en faire des choses
intéressantes. C'est
fasciné de regarder, car il continue
de développer et de développer
comment vous en faites le meilleur de ce qui se passe
dans le système de vue et de l'intégrer.
Maintenant que le visage 3
a été récentement
élevé, quel sont les features
les plus définies que vous sentez
qui ont fait le visage?
Oui, c'est
un API de composition
C'est aussi
inspiré par les hooks
mais c'est aussi
intéressant car il y a beaucoup de misconceptions
sur les gens qui ont vu l'exemple
d'utilisation et qui sont instantanément
disant que c'est les hooks de réaction.
Mais, fondamentale,
la seule similarity
est que vous pouvez extraire
les fonctions reuses
pour contacter un peu de fonctionnalité
mais le modèle mental
est complètement différent car
les hooks sont basés sur la
invocation répétée
et la composition de vue
est basée sur le state
mutable
de réaction.
Un peu de gens ne sont pas
contents de regarder
la similarity superficielle
mais le modèle de réaction
est complètement différent.
Ça a fait un peu de
intéressante différence
en termes de...
Vous commencez à voir
toutes les différences en pratique
mais la composition
en fait
n'est pas tentée d'inventer
une nouvelle chose
pour ce que vous avez déjà eu.
C'est toujours la réaction
dans la vue. C'est la réactivité.
On a pris un objet, on peut le faire réactif
et on peut avoir
réactions
ou effets basées sur
comment cela a été muté.
C'est toujours... la vue a toujours été
travaillée. La composition de vue
est en fait
en taking des fonctions internes
que nous avons déjà en vue 2
et on les polishons un peu
et les exposer pour que les gens puissent
être utilisés pour se détenir.
Ça a fait un peu de possibilités
intéressantes. On a
un projet de vue de vue
qui est similaire à la
barrels de l'étendament principales.
author schemes
c'est ce que l'application original de Views a toujours souffert
c'est la integration type script.
Donc, l'application d'options, quand c'était originalement
designé en 2014,
évidemment, n'a pas été considérée type infernité.
C'était vraiment juste comme,
si ça fonctionne en runtime, ça fonctionne.
Donc, quand nous commençons à ajouter type script support
dans View2, c'était un problème,
parce que la base code View2 était originalement en jalape
puis nous avons ajouté un flow sur le dessus.
Et quand nous avons décidé de poursuivre type script types,
nous avons dû maintenir le type séparatement.
Et les types que nous avons écrit
pour pouvoir inferner le truc
avec l'application d'options, c'est juste...
Si vous regardez les types, c'est comme
le plus ridicule type de gymnastics que j'ai vu.
Je crois que type script a également
ajouté un feature appelé
type de ce type, parce que
nous n'avons pas pu résoudre le problème
type infernité sans ça.
Donc, même avec ça,
il y a encore des cas d'explication
qui ont détenu le type de retour
qui ont été compétuites.
Par exemple, il ne fonctionne pas avec les mixings.
Nous avons réussi à faire ça avec les mixings
dans View3, mais il y a encore beaucoup de cas
qui ont juste détenu.
Parce que type script
n'est pas décédé pour travailler
avec une convention base d'application
d'application d'options.
Donc, l'application d'options
flippe tout autour, parce que tout est
juste des calls de fonction,
des arguments passés.
Donc tout fonctionne
avec type script parfaitement,
sans trop d'efforts.
Et la bonne partie est que
le code de transfert est en train de se
Même si vous utilisez le code de confirmation
sans type script, vous avez
encore un certain niveau de type
par utilisation de code de VSC.
Donc, cet adresse est un autre set de problèmes.
Donc, en général,
le code de confirmation
réagit vraiment de la célébration
en termes de la scalability pour les applications
et en retien de la même réactivité
que l'application a toujours été
faite.
La différence est, évidemment, qu'elle est
assez grande de la shift de paradigme
comparé à l'application d'options.
Et aussi, il y a
des attailles
pour les applications existantes
pour certains utilisateurs, parce que les gens
ne sont pas vus voir ce qu'ils sont
familiales avec les décisions
de la déplication ou de la seconde classe
de la citoyenne dans leur frameworks.
C'est un challenge
de balancer cela, parce
que cela donne
beaucoup d'adjectifs et
beaucoup d'usages aiment
cela, ils préfèrent le code
quand ils utilisent le code V3, mais il y a aussi
des utilisateurs de camp avec des opinions
qui croient que c'est réactif, donc je ne vais pas
l'utiliser. Je pense que beaucoup de cela
vient juste de la communication, et
j'ai récentement réveillé
notre whole documentation,
c'est un balan délicat
de rédesigner les docks
dans un moyen de réveiller
toutes les parts de la template,
qui sont stables et agnostiques, et puis
nous devons donner des options
pour les gens, si vous voulez
apprendre les options, ou si vous voulez
utiliser les options, c'est comme une classe
des compagnons vers des hooks, et je veux dire
que les docks réactifs n'ont pas vraiment
solué ce problème, c'est toujours classé
par défaut, et puis, en plus, en plus,
vous allez dire, oh, c'est des hooks, par contre,
donc je pense que c'est un challenge, je crois
que la réaction
d'une entreprise originale
entre les hooks, c'est que ce sera
un nouveau moyen de faire des choses, mais
ils ne peuvent pas juste dire ça, parce que les gens
vont être malades, ils vont être comme, comment
sur les compagnons de classe, et je crois que
quand les hooks sont les 1res, il y a encore
beaucoup de gens qui disent que c'est le
problème, les compagnons de classe sont plus
meilleures, mais seulement le temps va dire, donc
parfois, comme un maintainateur, c'est
un challenge pour vous, parce que
parfois votre décision est affectée
par le feedback, mais le feedback
n'est pas toujours
au niveau de l'usage
parce que parfois, les gens des
plus vocaux n'ont pas besoin de
le plus représentant, vous devez
gager ça vous-même, vous devez
regarder des sources de données
pour faire des décisions plus informées,
et ce qui est toujours très
difficile, donc, parfois, vous devez
juste croire en vous-même
et croire dans l'intuition
d'un certain extent.
Oui, pour sûr. Je vois
quelques conversations initiales
sur les composations, les APIs,
les RFC, et des gens
sont juste très
édites. Je pense que, oui,
notre grand erreur était,
dans la première rfc de la RFC, nous
indiquons que nous voulons replacer
l'application des options des APIs avec
ça, et les gens ont juste went crazy.
Donc, en regardant de la suite, c'était
un erreur très évident, nous avons
gardé l'application des options des APIs
et ça a été réglé, ça a été
exactement le même manière. Et le
truc est, la RFC 3 est
émettue avec l'application des
APIs comme les blocs de la primitive
et l'application des options
devient une interface alternative
sur le top de ça, et la toute
implementation pour soutenir l'application des
options des APIs était comme des
plusieurs lines de code. Donc,
ça montre comment l'application des
options des APIs est vraiment un
plus haut niveau où l'application des
options sont acceptables et
émettée, si tu n'as pas vraiment
un peu de choses. Et ce n'est pas seulement le tourisme visible, mais il y a beaucoup de choses
comme les plugins webpack. Qu'est-ce que tu penses que c'est le plus
difficile travail pour toi ? Qu'est-ce que c'est le plus difficile à construire dans le
ecosystem de vue ?
Probablement le loader webpack. C'est intéressant. Je pense que nous avons passé
à trois différentes implementations pour le loader de vue sur les années. Je implementais
l'initiel de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'
l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers de l'envers
un module virtual qui s'étendait.
Je dois savoir une façon de faire que l'inside
avec un single loader,
je dois pouvoir passer le file,
puis créer ces modules virtuales
et finalement assembler-les ensemble.
Et ça doit faire l'intégration avec les autres loaders.
La première version,
quand nous supportons ces préprocesseurs,
c'est que nous disons que si ce bloc utilise Sass,
je vais juste vérifier si le Sass est installé,
et que l'appli sass,
je vais pouvoir faire le résultat.
Ça a travaillé pour un moment,
mais ensuite, les utilisateurs ont dit que c'est un problème.
Je dois utiliser des settings pour le Sass.
Je utilise le Sass en vue et aussi en file standalone,
qui signifie qu'ils sont configurés sur le loader.
Et puis ils ont des options spéciales passées au loader.
Maintenant, ils ont de passer les options deux fois.
Un pour le loader, un pour le loader.
Et quand vous utilisez plus de préprocesseurs,
vous devez faire cela avec tout type de préprocesseurs.
Vous devez passer votre convoit de la batterie,
vous devez passer la batterie de la template.
Donc, je me suis dit que peut-on nous faire une nouvelle façon
pour que nous puissions, en fait,
prendre ce côté,
mais mettre le loader sur le loader
que l'utileur a configuré sur le file de Sass
et ensuite le résultat.
Pour un long temps, je pensais que ce serait impossible.
J'ai même parlé avec Tobias,
qui est l'adresse de Webpack.
Donc, Tobias m'a donné des points.
Et ensuite, j'ai réévoit le loader de la batterie.
Encore une fois, cette fois,
j'utilise une stratégie différente,
qui maintenant utilise un plug-in.
C'est en fait plus compliqué,
mais cela fonctionne beaucoup mieux.
Parce que maintenant, il y a un plug-in,
un loader de la batterie,
un load normal,
et la loader de la batterie
essentiellement inspecte les réquies d'incompréhension.
Il réjugle les ordres de loader
pour que,
quand nous envoyons un requiert
pour un certain bloc dans un fil de vue,
nous allons essentiellement
utiliser ce que les loaders
ont configuré pour ce type de file,
et l'injecter dans les requiers de bloc de vue.
Donc, cela donne l'exacte de la même treatment.
Donc, cela était vraiment difficile.
Je ne sais pas même comment
j'ai été venu avec cette idée,
mais cela a travaillé de toute façon.
Et le truc est assez drôle,
comme en plus tard,
quand nous avons construit le plug-in pour la roll-up
et l'extension pour les vies,
tout était beaucoup plus facile,
parce que nous pouvons maintenant contrôler beaucoup plus.
Donc, nous ne travaillons pas dans les constraints de Webpack.
Avez-vous l'expérience de la règle
avec ces constraints
qui vous lead à créer un VIT,
ou est-ce que c'est de la façon différente de la pensée ?
Un peu.
Je l'ai toujours aimé
faire le plug-in de la roll-up
et l'interface plus bien que les Webpack.
Ce n'est pas que les Webpack sont mauvaises,
mais que les Webpack sont,
en fait,
un architecteur plus complexe.
Les Webpack sont créés pour être très flexibles,
et ça, c'est presque trop flexible.
Et pour le faire,
le plug-in API et le système de loader
ont dû être créés
avec cette complexité en main.
Donc, ce complexe explose
quand vous avez tous ces différents pièces
qui se sont alignées.
Mais en roll-up,
je pense que Rich Harris
toujours a le knack
de créer quelque chose
qui est très bien à la pointe.
Je pense que c'est un bon fondament
pour la roll-up et par l'extension pour les vies.
Vies, le plug-in API,
est un super set de roll-ups
qui ont été provenant
de travailler vraiment bien
pour nous, à la fois.
Oui, je pensais que c'était une grande application
pour Vies et c'est un succès
quand Rich a dit,
Hey, en fait,
en fait, on a fait notre propre chose pour la svelte,
on va juste utiliser Vies.
C'est comme, c'est bon.
Oui.
Ils ont originalement utilisé le Snowpack,
mais je pense que
l'intégration avec la roll-up
a certain point
dans les valeurs de la production.
C'est parce que je veux dire,
il a créé des roll-ups.
Bien sûr.
Oui, oui.
Je suis sûr que ça a aidé.
C'est un peu d'un côté,
mais je suis curieux de voir
votre take sur quelque chose.
Vous avez été suivi
par le développement de l'Astro,
la svelte du Snowpack
qui travaille sur.
Oui, oui, oui.
Je l'ai regardé un peu.
Je pense que c'est intéressant.
En fait,
j'ai toujours,
dans mon backlog,
il y a toujours
quelque chose qui est lié
à la hydration plus efficace.
Donc,
un concept de l'Astro
qui s'adresse
à la hydration partieale,
la svelte du Snowpack
fait ça à un certain point.
Et en fait,
techniquement,
parce que l'Astro est un
framework agnostic.
Ça veut dire que
ce n'est pas
quelque chose que ces frameworks ne peuvent pas faire.
C'est plus sur
comment vous pouvez
lever les frameworks
avec un certain type
de setup ou de constraints
pour que vous faites
ce genre de chose naturel.
Je pense que c'est la valeur
que l'Astro est en train de produire.
Donc, c'est là où
le rôle de la métaphore
se fait.
C'est naturellement
un paradigm
qui yield
des résultats
pour un type de certaine
app,
ce qui signifie
que si vous utilisez
le vPress,
en fait,
si vous vous rendez
le page de vPress
et vous retirez
les tags de script,
ça aussi fonctionne.
Donc, si vous voulez
utiliser le vPress
comme un ssg
pure statique,
ça aussi fonctionne.
Mais il y a
vraiment des idées
que je vois
dans l'Astro
des stratégies de hydratie
différentes pour ces
components.
En fait,
j'ai en fait
dans les backlogs
des components de vue
à l'heure de l'aventure.
Nous avons déjà supporté
la co-spliting
durant l'SSR.
Donc, vous pouvez
avoir un component de nacing
et si c'est
bloqué sur le page
ça va juste le faire.
Et puis,
on peut continuer la hydratie.
Mais on peut ajouter
quelque chose de hydratie
dans la stratégie
quand vous avez
defini un component de nacing.
D'ailleurs,
ce component de nacing
devrait seulement
fêcher et hydrer
quand il est
venu dans le port de vue.
Donc,
ça semble
très peu
d'intrusivité
de l'API
pour juste ajouter.
C'est très additive,
mais ça vous
un très bon contrôle.
C'est
vraiment un peu
la hydratie pour frein.
Et puis,
il y a aussi
une stratégie
de différentes
stratégies
où,
dans les files de vue,
vous pouvez avoir
un extra script block
disant,
basically,
comme script client only.
on peut dire,
ok,
ce part de code
n'est que de la client.
Et il n'y a pas de temps
pour le tour.
Vous pouvez seulement
utiliser le script raw,
basé sur le client.
On ne load pas de vue anymore.
Donc, vous utilisez
vue purely
pour le site de service.
Donc,
vous êtes juste
générant
votre whole template
ou votre whole app
de vue sur le site de service.
Et puis,
seulement ces
plus explicites
de scripts
seront mises ensemble
et puis
bundonné pour le site de client.
Donc,
ce,
c'est tout de suite
que je veux
un système de vue
templatisé,
mais seulement sur le site de service.
Donc,
il y a beaucoup d'intérêts
qu'on peut explorer ici,
parce que la vue
est aussi
fondamentale
compilée.
Je pense que
beaucoup de gens
trouvent que
Svelte
est bien connu
pour cette
stratégie
complètement compilée.
Mais,
beaucoup de gens
ne réalisent
que la vue
est aussi
vue 3,
c'est aussi
très,
très compilée.
C'est plus
comme un temps de
ronde et des compilées
travaillant ensemble.
Donc,
on utilise le compilé
pour générer
plus d'efficience
en temps de ronde.
Donc,
si vous avez
vu nos
3.2
des numéros de benchmark,
c'est assez
en part
avec Svelte
et les benchmarks
de la JS.
Et la compétition
de single file,
évidemment,
le set de script
est aussi
très compilé.
On
fait
beaucoup de
transformations
pour
faire
l'expérience
plus
ergonomique.
Donc,
en termes
de la story de
l'héritage de
server client,
il y a aussi
beaucoup de rômes
pour explorer ici.
C'est
super intéressant.
Les frameworks de compilé
sont
définitivement
les futures.
La
feature que vous avez
mentionnée,
où vous avez
des clients
qui ne sont pas
javascripts
comme ça,
c'est un god send
quand vous avez
des applications
pour
les trucs
qui ne sont pas
javascripts.
Mais si c'est
une partie de la
fréquence,
ça serait cool.
Interstant,
Next
vous permet
d'aider
à
les trucs
qui ne sont pas
javascripts.
Je pense
que les remixes
ne sont pas
javascripts.
Il n'y a pas
d'un
genre de
javascript.
Il n'y a pas
d'un genre de
javascript.
Je pense que c'est
possible
pour quelque chose
comme
l'Astro est
l'Astro est
l'Astro
où
je pense que
c'est un
travail de
Astro
que je pense
que c'est
difficile d'évoquer,
même si c'est
partie
ou la
hydration.
Si vous
utilisez
un framework,
vous allez
encore
poursuivre
la
whole
frame
rick.
Il
s'agit
de
en
building
large
static sites.
Si vous
vous
avez un
nombre
d'interactifs,
les
benefits
de hydration
ne sera pas
si
évident.
Je pense
que
ce modèle
est un type
de type
de type
de type
de type
de type
d'interactif,
mais ça
signifie que
le framework
de la
a le potentiel
de
atteindre
la plus
static site
et
de
s'y
un paradigm
mais
vous
pouvez
construire
un site
avec
un petit JavaScript
sur le client.
C'est
génial.
On a parlé
de
Vit
un peu,
mais pour les
listeners qui ne savent pas
exactement
ce que Vit
est,
peut-être
expliquer un peu ?
Oui.
Il
s'appelle
Vit.
Oh,
C'est
un
français
pour
fast.
Vit est
essentiellement
ce que vous pouvez
utiliser
pour répliquer
la app
de Reapp
si vous êtes
familiar avec ça.
Ce n'est pas
strictement
équivalent à Webpack
parce que vous
avez besoin
de configurer Webpack
avec beaucoup de loader
pour pouvoir
construire quelque chose
par
aujourd'hui.
Vit
vous donne
une solution
pour construire un app
avec beaucoup de
conventions
qui sont
des types
de script
qui
sont des
types de CSS
qui
interagent
avec beaucoup de
pré-processeurs
qui sont des
types de
box.
Le
plus important
est que
Vit
soit un
service
ESM
donc
il
load
tous vos
modules
sur les modules
ESM
ça implique
deux choses
1. modules
sont transformés
sur demand
2. code splitting
c'est important
parce que
vous allez
mettre
beaucoup de requises
donc
quand vous
code split
vous allez
transformer
plusieurs modules
durant le développement
et ça
va bénéficier
aux utilisateurs
aussi.
Ça
vous force
à penser
sur code splitting
même
en développement
et puis
le replacement hot module
qui est impliqué
sur les ESM
est très efficace
parce que
le modèle
force
chaque module
pour
être
pu
invalidé
et transpire
indépendant
et
l'un des plus
problèmes
pourquoi les bundes traditionnelles
souvent
ont
un performance
degrés
comme les grosses grosses
sont parce que
le code
il doit
invalider et
les grosses grosses
aussi
mais
avec un modèle ESM
le modèle
transformé
pour le
transformé
pour penser
dans
un modèle mental
donc
il y a plus de chance
pour vous
d'avoir
ces grandes
dégâts de validation
quand
l'un de ces files
change
et
nous
sommes
capable de
faire des assumptions
pour faire
les
nouvelles
que nous devons faire
quand quelque chose change
plus
straightforward
et plus
plus
essentiellement
même quand vous avez un grand projet
un modèle de replacement
avec un projet de v
typiquement
reste constant
c'est presque toujours instant
et puis
dans la production
j'ai mentionné
c'est basé sur le modèle
qui a été
un facteur
de rock
et parce que le modèle
est créé
pour être
ESM
donc c'est un
fait naturel
pour le dégâts
des challenges
quand nous avons
construit le vache
c'est vraiment
de la réaction
des dépendances
des jayes
c'est probablement
le plus grand
que nous avons
à
faire
c'est
que le
build
un
fait naturel
et
très
rapide
et
il est
et
il est
très
rapide
ou
sur la
revealed
et
d'ailleurs
meilleur
PARLES
bravaquista
Le premier drawback est que quand vous avez beaucoup de requests,
c'est à dire 1000 requests,
ça peut prendre beaucoup de temps,
ça peut congester la networks,
même sur les hostes locaux.
Mais, la plupart des apps ne sont pas vraiment à ce niveau,
et si vous avez un app avec 1000 modules,
vous voulez probablement aller au split,
pour limiter les modules que vous avez en train de charger sur une certaine route.
Donc, en pratique,
la plupart des gens que nous avons écoutés,
ont migré de Webpack base stack,
pour apporter des grandes gains,
en termes d'une start-up, de la construction,
et aussi de la remontation de la remontation.
Donc, je pense que, en regardant le loader de vue,
et la webpack et tout,
je pense que vous avez à construire,
rébuilder une integration custom,
pour des plugins de roll-up,
pour les contrôler,
pour les contrôler en single file.
Oui.
Luckily, nous avons déjà eu un plugin de roll-up pour les contrôler en single file.
Il est construit par un de nos team de record.
Donc, j'ai essentiellement pris ça,
puis réconstruisé un peu pour le filmer.
Je pense que la partie spéciale que nous avons ajoutée,
était vraiment la place de l'application de l'application hot module,
parce que c'est v-specific.
Le roll-up n'a pas vraiment le concept de l'application hot module.
Mais le cool chose, c'est que nous avons construit le server de la dev,
dans le sens où c'est compatible avec les plugins de roll-up.
Ce n'est pas vraiment un roll-up,
mais c'est un de nos plugins de roll-up.
C'est assez cool.
Et bienvenue à Jason Miller,
parce que nous avons cette idée de WMR.
Il a impliqué ce type de type de roll-up,
un plugin compatible,
une run-time faite.
Nous avons appelé le plugin container.
Il a déjà fait ça en WMR.
Je travaillais sur
la pointe 0,
et j'ai vu ça,
je voulais utiliser le roll-up pour les contrôler.
Pourquoi ne nous soutenons pas les plugins durant la dev 2 ?
On a utilisé cette idée,
et on a évolué
ce type de roll-up à l'asomorphus.
Je vous ai dit qu'il y a une dernière question,
ce n'est pas un bon jeu.
Où est votre scheme de v-name ?
Tout ce qui est v-name,
c'est ce que j'ai dit.
C'est vraiment random.
Le nom original de la vue,
c'est parce que j'étais en train de nommer le library,
c'était juste un library de vue.
Je me suis dit que c'était un AR,
mais le mot anglais n'a pas le droit de nommer.
C'est un ordinaire.
Je l'ai mis dans Google Translate.
Je me suis dit que le translation français est bien.
C'est un peu mal.
Quand je prends les nouveaux noms,
je me dis que nous pouvons aller au même tour,
donc on regarde le dictionary français,
on regarde les mots v-nommés.
Je me suis dit que...
Vite n'a pas été en place sur NPM.
Je me suis dit que c'était bien.
Oh, c'est vrai.
C'était pas ça.
C'est pas ça.
C'est pas ça.
C'est pas ça.
C'est pas ça.
Je ne peux pas les dire.
Ouais.
Ok, cool.
C'est temps de faire des conseils.
Mon premier conseil de la journée
est un outil de management issues
qui s'appelle Linear.
J'ai utilisé beaucoup de tests.
J'ai utilisé des tools de la fin de la journée.
Et avant Linear, je me suis dit
que c'est le meilleur de la journée.
Je ne veux pas utiliser Jira,
je ne veux pas utiliser tout ce que vous voulez.
Mais en utilisant Linear,
j'ai vécu à l'aide de la manière dont ça marche.
C'est super rapide.
Ça les linker très bien.
Le tracteur de la journée est cool.
J'ai aimé ça.
Et ils ont été très vite
de répondre à tous nos requests de la journée
ici à Descript.
Un grand shout-out à eux.
J'ai fait un peu de travail
avec la team Linear
pendant l'année dernière.
Un des founders est venu
et a donné une cible d'art
où j'ai travaillé.
Mais le team de la fin de la journée
est super,
vraiment, vraiment bien.
C'est un truc super cool.
C'est off-line,
c'est super.
Vous pouvez utiliser ça
sur le plane.
Je ne sais pas. C'est de la qualité.
J'ai entendu que ils ont créé ça
parce qu'ils étaient en retard de des issues de la journée.
J'ai aimé l'évolution.
La jure a été créée
parce qu'ils ont hésité
de utiliser le Jira.
On va dire qu'on a besoin d'un truc
qui est plus de la ligne de la stream.
C'est une évolution
de nous aimer du Jira
pour nous aimer les issues de la journée.
Nous avons l'avion.
Quels sont les projets que vous avez utilisé
Evan ?
J'ai eu des issues de la journée.
Oui, j'ai utilisé le Jira.
Parce que j'ai beaucoup de notifications
donc j'ai pour le plus de
les notifications.
Et je dois
avancer les marques
Je me ciche entre les projets dans les périodes de focus.
Si je suis en train de se concentrer sur Viewnext,
je vais vérifier les ratios de Viewnext chaque jour.
Mais je vais ignorer les repositions de l'autre.
Si je ne suis pas au point d'en concentrer sur quelque chose,
je vais juste se concentrer sur ce repos.
Sinon, il n'y a pas de chance de faire de la travail.
Ouais, il y a beaucoup de fires à travers.
C'est une bonne chose.
Je me suis rendu compte d'une chose que je n'ai pas pu partager.
Je me suis rendu compte d'une autre chose que je n'ai pas pu faire de la travail.
Et comme Evan m'a dit,
il y a une langue de la méda,
qui s'appelle imba.
C'est un genre inspiré par le syntax rubanique.
C'est assez clean, j'aime ça beaucoup,
et c'est très rapide.
C'est une langue qui est spécialement
créée pour construire des applications frontières.
Je me rappelle un peu d'une autre langue
qui s'appelle ment,
une langue créée pour des applications frontières.
Je ne sais pas, je n'aime pas seulement les langues,
mais leur site et comment ils présentent la langue.
C'est vraiment bien.
C'est donc la combination de toutes les parts
de la développement web et de l'une language unifiée.
Il me rappelle un peu l'album,
mais il semble être moins
sur les paradigmes fonctionnels,
mais plus prématiques.
C'est vraiment poli,
car je sais ce projet depuis très longtemps.
En fait, ils sont les founders de Scrimba,
qui est une plateforme de screencast.
Et nous avons topé dans le passé,
ils ont des screenscans de vue sur leur site.
C'est un projet très impressionnant.
C'est un projet qui a été dans 7 ans.
C'est un projet qui a été dans les espaces.
7 ans, c'est très bien vu.
C'est un très intéressant syntaxe.
Oui, c'est presque 2 terres en quelque cas,
mais j'imagine que si vous vous êtes très familier avec ça,
la predictivité est probablement très belle.
En fait, quand j'ai commencé à utiliser vue,
j'ai utilisé un style, un pug,
un script de café, en fait.
Ok, donc V-Press,
j'ai promis mon propre truc ici,
mais si vous avez utilisé V-Press,
vous devriez probablement considérer
que vous êtes en train de voir V-Press.
C'est encore plus tard, mais V-Stocks est construit
avec V-Press, et ça se démarre.
C'est un projet qui s'est promis très bien.
Je me suis inquiétant, je me suis checké sur Astros-Docs,
et ils comparèrent des performances
de différents sites de stats générés,
les websites, les scores de Lighthouse.
J'ai réunit sur les V-Docs, et ça se démarre.
Il se prononc très bien,
même si nous faisons une complication de vue,
c'est une application single-page de vue,
mais sur Emoto G4,
qui est amulé avec 4X CPU,
c'est à peu près 98,
en termes de performance de Lighthouse.
Mais oui, il y a des choses intéressantes.
C'est un power de vue de stat,
mais c'est très léger.
Il vous donne tout ce que V-Tas,
donc vous pouvez construire tout ce qu'on peut apporter.
Mais le thème doit être de vue app,
donc c'est la limitation.
Si vous utilisez le vue,
c'est ce que je recommande
pour les stats de stats générés.
Des choses très uniques,
vous pouvez mixturez des compagnons de vue
ou des syntaxes d'un point de vue,
parce que le point de vue est converti en HTML,
donc le point de vue est converti en MP5.
En termes de marque de vue,
vous pouvez utiliser des tags de script
pour importer des compagnons,
comme des MDX.
Mais le défi de MDX,
c'est que quand on comporte,
le compagnon de vue
va séparer les parts de la marque de vue
et les compagnons de la dynamique.
On peut utiliser des types de cartes,
donc sur la page de hydréation,
les parts de stats sont automatiquement éprouvées.
Vous avez des hydréations sélectives
par défaut.
Si votre file de marque de vue n'est pas dynamique,
il n'y a pas de hydréation à faire.
On a aussi des opagnons intéressants.
Quand vous utilisez la page,
vous utilisez des HTML générés
et des réactions de rendition
générées par le file de MDX.
Vous l'avez éprouvé deux fois,
mais en V-Press, vous l'avez éprouvé.
Nous avons éprouvé deux bundles,
une version de la page
qui a toutes les parts de stats.
C'est seulement les bits dynamiques.
Sur la mode initial, vous ne faites que le statique HTML
et le JavaScript pour les bits dynamiques.
Sur les navigations sequins,
nous ferons une nouvelle page
de la version différente de la page JS
qui contient le contenu statique
comme des strings JavaScript.
Vous avez l'idéal de la performance de load
sans duplication le même contenu.
Vous avez l'idéal de la performance de load
En même temps, vous pouvez mélanger
les trucs dynamiques dans votre breakdown.
C'est vraiment important pour les démarches
que vous avez interviendues dans votre contenu.
C'est comme une extension naturelle
sur la vue que vous avez déjà éprouvé.
MDX, comme ce nouveau truc,
a été créé pour le tout.
C'est un truc qui me fait partie
de beaucoup de situations.
C'est un truc qui est un peu dupliqué.
Un des problèmes que j'ai eu
pendant la maintenance des repos
c'est que, avec le type script,
vous pouvez avoir deux versions de types réactifs
dans votre repo tout à l'heure.
Le problème est que,
comme vous avez ajouté des dépendances
votre lock de yarn est un peu de la même
entreprise que la même dépendance
qui peut être satisfait par une dépendance
mais par la façon dont le lock file
fonctionne, le lock est le premier et le second.
Ce tool vous permet d'avoir
une commande terminale
où vous pouvez dire, hey,
vous pouvez dupliquer le file de yarn
pour que les versions ne soient pas multiples
et vous vous arrêtez de fixer des problèmes
avec typescript et babel.
C'est un des problèmes de la main-gothée
qui est de fixer des problèmes de dépendance.
C'est un truc qui est de faire juste
les dépendances de babel.
C'est super utile et très vite.
Je pense que c'est plus vite que de retirer
les modèles de note et le lock de yarn
et de réinstaller tout de scratch.
Avant ce tool, je serais en train de faire
mes files de yarn et de dire que les deux sont
évidemment les mêmes et les mêmes
de la même dépendance.
Mais c'est beaucoup mieux et plus vite.
Nous avons utilisé ceci en artsy pour
faire de l'image de la carte d'image.
Vous serez surpris de ce que la carte d'image
est en train de faire des dépendances
et nous avons eu une reduction
de la carte d'image.
C'est un article
mais aussi un livre.
Jason Longster,
qui a la carte d'image
et j'ai oublié le nom.
Il a écrit un article
en bas de la carte d'image
en utilisant un type de data
pour synchroniser les clients
et les services de state.
C'était un article très intéressant
et j'ai suivi un peu d'un moment.
Il a juste écrit un article
sur le futur de WebSQL qui décrive
un database SQLite
dans le browser.
Il y a un livre qui s'appelle
SQLite.
Il a componcé un WebAssembly
et il a fait le code SQLite.
Mais généralement, il est en train de
Il n'a pas de manière de persister
dans le database.
Mais il a aussi
créé un
db storage
pour un interface adaptateur.
Il peut avoir d'autres providers
Mais ceci
était plus rapide
que d'une autre.
Il a été très intéressant
de voir ceci.
Si vous avez besoin,
vous pouvez vous envoyer un peu de data
dans le browser.
Vous ne pouvez pas travailler avec un db
parce que c'est un plan roil.
C'est un très intéressant approach.
Le library est un
code de SQLite.
C'est un grand nom.
C'est très intéressant.
Le WebAssembly change.
La dernière chose
est la chose de la vôte.
C'est aussi un
GitHub
qui est construite par le team
de Nuxed.
Ils ont construit un de ces
et ont utilisé le
Nuxed 3.
C'est un autre tool d'issue
pour les maintenance.
C'est un status beta.
Je n'ai pas utilisé ça pour
donner un assaison propre.
Mais c'est intéressant de
faire un assaison.
C'est un espace
que beaucoup de maintenance
ont fait.
Nous avons complété
comment la vôtre de la vôte
est difficile de naviguer.
Les navigations ne m'a pas aidé.
Je pense que l'attente
est très importante.
Je vois des types d'icons.
Il y a des talons.
C'est cool.
C'était notre dernier tip pour le jour.
Merci Evan pour votre conversation.
Nous avons passé toutes les vétales.
C'est un succès.
Je pense que c'est aussi un vétal.
C'est un succès.
Ils ont continué avec votre nametage.
Je l'ai Google-t-en très vite.
C'est très bon.
Je n'ai pas compris le français.
Je pense que ça fait du sens.
Je pense que c'est un mot actuel.
Vous êtes encore en train de
utiliser des noms animaux
pour les releases.
On fait ça.
C'est un succès.
Qu'est-ce que c'était?
Une pièce.
Je suis surpris que vous avez fini le développement.
Nous avons fini avant le tout.
Il y a des gens qui ont
un repos en Github.
Je pense que le nom de la prochaine code
va être...
C'est génial.
Il y a des trades insiders.
Je ne parle pas d'un autre.
C'est ça pour cette semaine.
D'ici pour l'épisode de DevTools FM.
Faites attention à nos vidéos.
Merci pour l'alimentation.
Bye.
Episode suivant:
Les infos glanées
devtools.fm:DeveloperTools,OpenSource,SoftwareDevelopment
A podcast about developer tools and the people who make them. Join us as we embark on a journey to explore modern developer tooling and interview the people who make it possible. We love talking to the creators front-end frameworks (React, Solid, Svelte, Vue, Angular, etc), JavaScript and TypeScript runtimes (Node, Deno, Bun), Languages (Unison, Elixor, Rust, Zig), web tech (WASM, Web Containers, WebGPU, WebGL), database providers (Turso, Planetscale, Supabase, EdgeDB), and platforms (SST, AWS, Vercel, Netlify, Fly.io).
Tags