Zack Jackson - Module Federation
Durée: 75m43s
Date de sortie: 13/05/2022
This week we dive into a fascinating new concept in web development: Module Federation.
Join us with Zack Jackson, the creator of module federation, to discuss where it started, how it works, and all the cool uses cases it unlocks.
Tooltips
Andrew
Justin
- https://github.com/facebook/lexical
- https://blog.maximeheckel.com/posts/the-power-of-composition-with-css-variables/
- https://shop.vectorfinesse.com/
Zack
- https://github.com/module-federation/module-federation-examples
- https://app.privjs.com/buy/packageDetail?pkg=@module-federation/nextjs-mf
- https://app.privjs.com/buy/packageDetail?pkg=@module-federation/nextjs-ssr
Je pense que la fédération est purement un système de distribution.
Je vais toujours construire mes applications comme si elles étaient monolithiques.
Donc, la façon dont j'utilise la fédération et la façon dont j'ai vraiment créé c'est de créer des systèmes polylythiques.
Donc, c'est micro à la construction, mais c'est monolithique à la run-time.
Bonjour, bienvenue au DevTools FM Podcast.
C'est un podcast sur les tools de développement et les gens qui les font.
Je suis Andrew et c'est mon co-host Justin.
Salut tout le monde.
Aujourd'hui, notre guest est Zach Jackson, un ingénieur principal à Lululemon,
un entier de Webpack et co-createur de la fédération module.
Aujourd'hui, nous allons prendre un petit coup de feu dans ce qu'est la fédération module et comment vous pouvez utiliser ça dans vos apps.
Zach, vous voulez dire à notre audience un peu plus sur vous-même et comment vous avez créé le tooling de développement ?
Je suis commencé à faire plus ou moins, c'est juste un ingénieur de front-end.
Je suis commencé à faire le stuff de front-end.
J'ai commencé à faire originalement, je n'ai pas eu de background de coding.
J'ai vécu à la high school, j'étais un peu plus grand dans la sécurité de la météo.
Et j'ai été en train de faire un développement de Web, c'est le plus facile de la fédération pour faire le code.
J'ai été en train de faire un peu de WordPress, j'ai Google' et j'ai eu un background de CSS.
Et je suis en train de faire un peu de front-end.
Et après quelques années, j'ai eu le feeling que si vous travaillez sur les features de front-end,
il y a un point dans la vie où vous avez sorti le limiter.
Et c'est either going to the back end,
or it's usually transitioning to the back end,
or something.
Et je n'ai vraiment pas envie de aller au back end,
car je suis frustré avec les problèmes que nous avons en front-end.
Donc je suis allé plus loin dans le tooling.
Et comment j'ai, dans un tout de même le centre de la vie,
j'ai trouvé que je n'ai pas de problèmes,
et ça a été des problèmes que tout le monde n'a pas de.
Et j'ai bien entendu que,
j'ai trouvé que, souvent, je peux avoir beaucoup plus de travail à l'organisation
si je fais quelque chose de plus bas dans le stack
pour résolver les problèmes de niveau de haut,
en fait, des programmes ou du processus.
C'est génial, j'ai trouvé la même chose.
J'ai commencé en front-end parce que j'aime mettre des textes sur la table,
et puis, après, ça devolvait.
Oh, je suis en train de faire des tools pour tout le monde à l'enfin de faire.
C'est un thème très commun.
Avec ça, nous allons en faire.
Qu'est-ce que la fédération module et quelles problèmes
vous essayez de résolver quand vous avez créé cette solution ?
La fédération module est,
en un simple manière,
la fédération module est l'obligation
d'intervier les graffes de webpack
et les graffes de compiler, en exécutant.
Pour expliquer,
une autre façon de le mettre c'est
que je peux faire un importe dynamique
pour un fil précis
qui est construit et déployé par un build de webpack.
C'est souvent confus avec la fédération de la page,
mais ce n'est pas ça.
Si vous faites quelque chose comme ça aujourd'hui,
c'est de la fédération de la bundle 1M,
ou d'une autre application réacte,
ce que j'ai voulu c'était
l'obligation de mettre les 5 kilobytes de code
que je n'ai pas installé.
Je l'ai déjà réacte,
je l'ai probablement réacte,
ou d'autres autres,
ce que j'ai voulu c'est le code feature
qui a été révéllé,
comme un MN.
Je veux pouvoir rouler le MN
et juste déployer le code MN,
ne pas déployer, réacte,
ou d'autres.
En même temps,
nous avons des patterns similaires,
comme externes,
comme les passages,
où vous pouvez dire
que personne ne comporte pas,
et qu'on réacte au-delà de la scope
sur la page global,
et c'est comme ça que vous allez voir.
C'est ce que j'ai fait précédemment,
mais je suis arrivé à un point
où j'ai manqué
des micro-front-ends de 150,
où il y avait 30 plus
sur la page à un moment donné.
À ce point,
le managage de la page n'est pas feasible.
Si je dois...
Vous devez savoir
quelles packages je dois déduplicer.
Qu'est-ce qui se passe
si je dois réacter un packages,
comme load-3 et load-4,
et les externes ne peuvent pas le faire.
Si la bundle externe
se perd, vous avez un point de défi,
la page d'un entire site se perd.
Donc, c'était...
C'était pas suffisant,
et c'était trop un issue de risque
pour s'assurer que l'on s'occupe
d'une source externe.
Donc, la fédération est allée,
et c'était vraiment pour nous
donner le meilleur de tous,
où je vais toujours bundler
les dépendances avec ce
piece de code,
et je vais seulement
poursuivre les dépendances
si le système ne le met pas
déjà.
Donc, tout est
toujours un peu self-heal.
Ça peut tout faire
faire du travail,
de ce qu'il faut,
mais c'est
pour essayer
de recycler
ce qu'il y a,
suivre des versions semantics,
quand possible,
et recycler
autant de code
que nous pouvons,
en en offrant
une manière très simple
pour aller en importe
en dehors de
quelque part
de votre application,
sans un grand overhead,
ou, vous savez,
avoir à apprendre un framework
pour le faire.
Je dois juste être
capable de requer le code
et de requer le code
par un nom de team,
et que ça se déroule
juste comme si c'était
un package de NPM.
Donc, vous avez
parlé
précédemment
que c'est interlevé
les bundles webpack
ensemble,
je suis en train
d'y aller assez intelligemment.
Donc, est-ce que
toutes les modules fédérées
sont déjà sorties
et procédées par Webpack,
mais c'est juste que
peut-être que
certains de eux
sont dynamiquement
récourus
vers être
en train de
être récourus.
Oui.
Donc,
donc, essentiellement,
sous la preuve,
comment la fédération
fonctionne,
Webpack
est juste en small core
avec beaucoup de plugins.
Donc, tout en Webpack
est un plugin
sur un plugin
sur un plugin.
La fédération est la même chose.
La fédération est
le nom de ce brand
que je suis venu
avec,
donc on peut google
et trouver des choses
plus facilement.
Dans la preuve,
on a écrit
un plugin de conteneur,
un plugin de profite,
un plugin de share,
un plugin de conteneur.
La référence est
quand je suis venu
pour importer
une fédération fédérale
et ce que nous serons
les hostes.
Le host est essentiellement
le consommateur.
Quand le host
importe un module de remonte,
il doit résolver
quelque chose
durant la fédération.
Je ne peux pas
juste importer un code non existent
et dire que le module
ne peut pas être trouvé,
etc.
Donc,
à la fédération
de consommation,
Webpack va reconnaître
que c'est un,
c'est un importe
spécifique dans le plugin
et il va créer
une petite factory
qui crée
une interface
qui sait comment connecter
à la conteneur fédérale.
Le code qui est importé
ou le module export
dans mon host
est assez
le API de la haute lente
qui serait
Wendoo.remote.initialize
Passand Any Share Dependencies
suivant Git,
qui va ensuite
tirer le choc
et exposer
l'enquête de
l'autre Webpack.
Et sur le
côté de la
provider,
donc dans un remonte,
c'est assez
le plugin
qui travaille
comme,
vous pouvez
configurer le plugin
et vous ajoutez
les files que vous voulez
exposer.
Il crée un point spécial
d'entrée,
qui est le point de remonte
d'entrée
et vous popez
sur une page
et vous pouvez
automatiquement
connecter
et tirer
une fragmence
d'une autre base
de la fédération
de la fédération
de la fédération
de la fédération
de la fédération
de la fédération
de la fédération
GHA
dans quatre
les
And
avec
tout le terrain, vous n'avez pas de changer beaucoup de votre code pour tout ce qui fonctionne,
right ?
Oui, le grand chose, si je regarde les frameurs précédentes ou les moyens de faire ça, ce n'est
jamais un scénario de juste fonctionnement.
Il y a toujours, vous avez besoin d'une petite mousse de l'air assez lente pour faire
un système distribué.
Avec Federation, ce que j'ai vraiment voulu faire c'est dire que tout ce qu'il faut
savoir, c'est de faire, c'est de faire un code.
Et comme installer un package, vos modules fédérés, ou votre plugin de fédération,
ont un nom, donc, on va dire, les équipes, la check-out.
Donc dans le plugin, je vais l'élaborer comme check-out.
Ça va générer un file statique qui est sur le CDN, tout ce que j'ai besoin de faire c'est
configurer ça et dire, Hey Webpack, quand je importe la check-out, utilisez ce file JavaScript,
ce qui est, c'est comme 5 lines de code que nous configurons dans le build, donc c'est
simple de l'utiliser.
Vous dites juste, ici c'est où la check-out doit aller pour les imports pour ça, et puis
quand vous importez la check-out, ça va gérer mon request dans ce container, vous
allez l'enlever.
La seule chose que vous savez vraiment comment faire c'est de require un code.
Au-delà de ça, il n'y a pas de registre ou tout comme ça, c'est tout bête pour que
vous n'avez pas de apprendre ou de changer d'une de votre base de code.
Juste pour que vous portez un code juste comme si vous étiez en NPM et à la fin de la
journée, ça va aller sur la chaine et vous pourrez les mettre en place.
C'est assez magique.
Je l'ai sorti de voir vous parler sur Twitter pour longtemps, et je pense que pendant
un temps, je n'ai pas vraiment compris que c'était une chose qui était construite
dans le webpack.
Parce que j'ai entendu pas seulement la fédération model, mais conceptuellement, l'idée de
avoir des microfront-ends, qui sont des appels de petits appels qui se sont réunis sur
la même page, qui peuvent être achetées par différents équipes, pour ceux qui ne m'ont pas
travaillé dans cette zone.
Ça peut être un problème qui s'envole comme un style, comme une loi de la loi de Conway.
J'ai entendu des solutions comme ça avant, mais ce n'était pas jusqu'à l'heure
qu'Andrew a récemment commencé à jouer avec ça.
Je lui ai dit, où est-ce ce plug-in ?
Et je lui ai dit, oh, c'est en fait construit dans le webpack, ce qui est vraiment cool.
Vous avez fait beaucoup de travail pour avoir ce merge dans le webpack, en fait, en fait,
c'est un peu plus de temps, mais c'est un peu plus de temps.
Et c'est un peu plus de temps, mais c'est un peu plus de temps.
Et c'est un peu plus de temps, mais c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
C'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Et c'est un peu plus de temps.
Mais, vous avez fait un bon tour et vous avez eu beaucoup d'expérience avec ça.
Est-ce que vous avez des challenges de performance ?
J'ai une question immédiate quand j'ai commencé à apprendre.
Une question immédiate que j'avais dans ma tête.
Est-ce que la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question
de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question
de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question
de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question
de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question
de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question
de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question
de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la
question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de la question de
Franchement, ce que j' psicol cheering, c'est quelque chose que je fais tout de suite einen sacrificed, le procès går lorent, la question par woven's ongne, les c Skype ou yools et stuff so et c qu on şeyi über Quran, p
Le browser, si je veux obtenir des codes fédérés, je le injecte à la scruppe.
Si je suis sur le service et je ne veux pas les codes fédérés, je peux toujours le faire,
mais ça doit être sur le système de file.
Je vais pouvoir le faire par require ou par le file de Fs.
Ça commence à devenir un problème où nous avons un grand décentralisé front-end,
et dès que vous êtes à la fin de la fin, les files doivent être collocées au lieu de fonctionner.
En tant que mode de repos, ça ne marche pas bien.
Les samways streaming sont Nicky de laVIE
On doit faire des choses avec Node.
On doit couper nos bases codes et les relier et les distribuer
parce que de Node.
Si c'est un browser, on le met dans le CDN
et le fait que vous venez au front et que vous êtes bon à aller.
Mais on doit avoir toutes ces lois et les règles et les formes
parce que nous bindons l'application et la CPU
à un file zip que nous devons uploader durant le déploiement.
Donc, le couplage de files à un CPU
est vraiment où beaucoup de problèmes vont commencer à croître
et que nous pouvons échanger la plateforme.
Le code streaming nous donne la façon de la base de la browser.
Je veux pouvoir l'injecter et le faire.
Et le faire de l'autre côté de ce qu'il faut.
Donc, ça veut dire que mes servers ne doivent pas avoir
aucun code de application déploiement.
Ils peuvent juste être le Webpack Runtime.
Et le reste de la compagnie peut juste uploader les choses à S3.
Et basé sur la réquestion que l'on met à la Lambda,
la Lambda peut assumer le rôle de l'application de la software
connectée à notre compagnie à un point de vue
sans avoir besoin d'une chose spéciale.
Donc, la même Lambda peut être GraphQL et SSR
entre différentes invocations
parce qu'il n'y a pas d'artifact qui est couplé à ce CPU.
Je veux dire ce que le server était vraiment supposed à être.
Ici, il y a un CPU sur Internet.
Ici, un piece de code.
Je vous ai besoin de l'exécuter et de l'y aller.
Donc, j'ai essayé de l'établir avec le software de streaming
où je peux dire que vous pouvez devenir quelque chose que vous voulez
pour que vous puissiez avoir des codes de webpack
que vous avez besoin d'exécuter sur le demandat.
Et donc, c'est essentiellement pour moi
qu'il me faut qu'il y ait des codes sur HTTPS.
C'est comme Dino fait, mais Dino a des files,
comme des files de pitt,
où Dino fait tous ses imports HTTPS
quand vous mettez au start.
Donc, dès que vous commencez le processus,
il va chercher le fruit et faire des choses
dans le processus, comme ça.
Ça devient un problème où,
comme d'une perspective de startup,
je ne veux pas que le start soit plus long
parce que c'est important tout le possible que ça pourrait.
Je veux cette similar question sur le demandat
comme ça, je veux que je puisse en tirer ce que je veux.
Donc, le webpack me dit que si je ne vais pas
rendre cette page, ne streamz pas le code pour ça.
Mais si cette condition est met et que ça va exécuter,
puis, ne tirez pas le chunk et exécuter le chunk,
mais, vous savez, ne sortez pas le path de code comme besoin.
Ne faites pas de preloads agressifs,
juste que vous exécutez,
hangez un promesse ici et là
et vous pourrez en tirer des choses comme besoin,
comme ça, comme ça, dans le browser.
Ne tentez pas de la grapisse à la base de la base de la base,
et résolvez deux ou trois files,
et puis continuez à exécuter.
Donc, en faisant tout ça sur le service,
c'est le même principe que nous apprenait,
c'est vraiment, comment nous transportons le code
sainement sur la nette?
Et la raison que je suis en train
de faire des transferts de base de nette
est que Dino déjà ne fait pas,
et il n'y a pas de complément,
et en note 18, il y a une support expérimentale
pour un port de port de port de PCTPS.
Donc, si on ne l'a pas,
la code de service sur la nette est venu pour nous.
Donc, pourquoi pas
le faire plus vite et le faire
à un système qui me laisse penser
à la reloadabilité,
ou quand les updates se sont déploies,
comment réfresher la environnement
sans le restarter et sans le rédeployer.
Comment le faire pour la correction d'air?
Si cette version ne fonctionne,
peut-il créer des laitiers de communication
qui disent que le service est allé
à 500 et qu'il soit hot
et qu'il utilise le prévu déployement
de tout ce qui a fallu?
Révissez ça et retraitz-le
pendant la réquestion.
Ça vous donne beaucoup plus de flexibilité
parce que Webpack sait si quelque chose va travailler ou pas
par « try catch » ou « worst case scenario »
vers le dire de votre infrastructure
où si vous avez fait les releases canaries,
vous devriez espérer que, à la fin de la 500,
votre infrastructure pourrait voir que cette note est faite
et que vous revoiterez la trafication
à une autre note.
Vers le dire de la compétition
avec Webpack, où vous pouvez dire
que ce n'est pas fonctionnel,
ne utilisez pas cette version,
retraitez cette importe
avec une autre version de votre CDN
et exécutez-le avec ça.
Ça nous donne beaucoup plus de contrôle
dynamique, comme si je voulais
rééter, je ne dois pas toucher mes services,
je ne dois pas les faire et les restarter.
Ils peuvent toujours rester hot
et je peux contrôler ça avec un centre de contrôle commandant
et les mettre en place en demandant.
Ça nous donne beaucoup plus de liberté
là-bas et ça fait
que le picture est complétée
comme facile que c'est en browser,
ça devrait être sur le service
et ça devrait travailler plus ou moins dans la même manière.
C'est un concept mind bending
qui m'a pris un peu d'un moment
pour me rassembler mon tête
comme l'un des tweets que vous avez
appris à mon intérêt c'est que
votre infrastructure était en train de se faire
et vous ne l'avez même pas remarquée
parce que l'article de la structure self-healing
c'est ça
ce qui est en train de dire que si c'est un error
de 500, il va juste
faire quelque chose de l'air
et que la webpack
réétenirait la chaine de supply
si j'ai toutes les versions
déployées à l'S3
et que vous déployez un Lambda
tout ce que vous faites est prendre un artifact
d'un S3 et
faire un Lambda ou un Lambda
donc tous mes déploies sont en S3
tout ça, je dois dire
que si ça ne fonctionne pas
on va apprendre à réattendre la chaine de supply
donc
ça ne fonctionne pas magiquement
mais c'est quelque chose qui peut être framework
ou en mon cas
j'ai juste écrit quelques extra augmentations
sur la chaine de supply pour le réhabiliter
si ça va pas, on va le prendre
avec une boundary de réacteur
ou un tricatch ou quelque chose comme ça
notification de la chaine de supply
le réhabiliter est très honte
si vous faites un start webpack
ne ré-startz pas le service
ou ne vous faites pas le Lambda
juste re-set le cache
donne-le des nouvelles instructions
et puis le webpack ré-run
et stream des différents morceaux
et c'était vraiment bien
parce que mon service était complètement en train
comme quand j'ai ralenti le site
500 sur moi
mais j'ai eu ça pour une semaine
dans mes environnementes proches
la seule chose que j'ai réjouie
c'était que j'ai pris un extra 150ms
pour répondre
c'est un peu plus lent
mais je n'étais pas assez lent
pour me faire voler
et de le faire ralentir
je pensais que
un des morts était agressif
et pas de caches correctement
mais c'était complètement en train
et je n'ai pas remarqué
pour une semaine
j'ai déployé plusieurs fois
donc j'ai réjoui plusieurs fois
et je n'ai jamais remarqué
que le système était complètement en train
ça peut évidemment être
un défi et un curse
parce que tu veux que tu as des
réponses de savoir quelque chose
tu ne veux pas que ça se défend
donc j'ai eu des réponses de la communauté
mais ma opinion est
que je veux cause de réveillement
ou que je veux que ça soit le bout
et que le système se modélise
donc pour que je sois de la télé
pour dire que tu es en mode de modélisation
le site est toujours en train
mais c'est essentiellement
causer une réponse de 7.1
sans un impact de business
de 7.1
donc parce que ça peut fixer
ça n'est pas gratuit pour pas
monitor comment ça se défend
mais j'aimerais
avoir un système qui peut récover
vers un système qui ne peut pas
oui, pour sûr
c'est assez critique
pour construire un bon produit
pour que ça soit le plus bon
donc sur ce sujet
je trouve ça très fascinant
surtout en pensant sur le cas de
parce que le deployment de lambda
peut être un peu démonstrant
mais en pensant
sur la fédération modélisation
ou sur le streaming de software
sur le point de vue de la back end
je pense que tu devrais penser
à la protection de toi-même
contre les attaques de la main en milieu
et d'autres choses neufs
qui peuvent arriver
tu parles de
Dino en faisant des choses similaires
et de ne pas
regarder des choses similaires
ces problèmes existent
si quelqu'un t'envoie un domaine
et tu ne t'envoies pas
et tu n'es pas cashé
tu exécutes un code arbitraire
t'as-tu mis un peu de thought
à la check-sums
ou à la bundle validation
ou quelque chose comme ça
est-ce que c'est une partie de ce concept ?
c'est
le prochain
je dois
pour avoir le plugin
c'est ce qu'il faut faire
il y a des features que je veux ajouter
mais quelqu'un peut vouloir
avoir plus de sécurité avant que je baisse les protocoles
j'ai créé ce concept
de la fédération modélisation
qui vous permet de faire tout ce qu'il y a
pour valider ce que tu es allé faire
et que le service soit en valeur
tu peux passer le URL et vérifier
les check-sums
en général, je vais vous parler de
un couple de choses
une des des certificates
donc check-sum
une autre des codes
alors que dans un déploiement
tu peux avoir quelque chose d'autre
et créer une signature pour ça
et puis le plus
probablement un peu de performance
mais si tu es vraiment paranoïde
et que je ferais ça
c'est de faire un tour de public
dans un centre-staur
et pendant le build
je ferais un code
de code en crypte
pour le code en crypte
et puis
faire un vault
et pour le check-out
de la public
ou de la public de ma vault
et dire que je vais streamer le payload
et le décrypter
sur le service
et puis le décrypter
pour le résultat
je ne décrypte pas tout le temps
mais je dois avoir le chunk
mais tu peux mettre un gate
comme ça en front de ça
si ça se fait tamper
c'est simplement pas décrypt
si quelqu'un a infecté les variables
si ils ont déjà les variables
ils sont déjà complémentés
si le domain est hygié
oui, il y a des risques
mais si le domain est hygié
sur ma front-end CDN
tout le monde est en train de
faire ma carte de crédit
si tu es complémenté
en avant de complémenter la fédération
tu aurais déjà été complémenté
dans une manière plus faite
je vois ça comme
on a le même risque que nous
on a le même risque que la front-end
moins un couple d'environnement variables
bien sûr, ceux sont importants
mais, encore une fois
Kubernetes a des volumes shared
c'est encore sur la netwerk
avec quelque chose comme FUSI
pour bindir un système de file
pour OSocket
on a déjà des transfers de HTTP
on a déjà le problème de ce problème
on parle de nos APIs
je pense que c'est tout le même
on a besoin de
garantir que ce que nous avons
c'est ce que nous avons
si c'est par la tls certificate
ou en cryptant le texte
comme il vient de l'entendre
ou en signant
c'est tout relativement trivial
pour ajouter un promesse
à voir si c'est bon avant de passer
à Webpack
donc, avoir toutes ces versions
et pouvoir se faire de la suite
c'est cool
mais comment vous le faites exactement
j'ai vu cette plug-in called Medusa
est-ce que vous avez maintenant
management de tout ça ?
donc, maintenant, Medusa a été
déprioritisé plusieurs fois
mais le concept général est
oui, Medusa va faire ça
à un moment, je vais le terminer
où il y aura un single sign-on
multi-tenant, le travail
et le plug-in va évoluer
le Webpack graph
à un database de graphite
et tout le monde qui utilise le plug-in
contribue à la grapette de Webpack
pour Medusa
et maintenant, Medusa peut mettre
votre entire architecture
et dire, hey, c'est qui qui utilise la nav
c'est la file qui utilise ça
parce que maintenant
nous avons un endroit central
où tous les graphites Webpack
peuvent être queryés ensemble
donc, je peux construire qui utilise
qui et où et je peux aussi dire
utiliser cette version de la nav sur cette app
et créer des files de lock et tout
parce qu'on a une façon de voir où c'est allé
et comment c'est allé
comment je les ai managés, je fais le processus de crawlwalk
car c'est beaucoup d'infrastructure
pour inventer et pour avoir un company multi-billion
et ce qu'on a commencé avec
c'est des tests AB
pas besoin de version
des tests AB, j'ai fait le test AB
j'ai fait le test en un de mes ingénieurs
c'est génial, 2 espaces de l'air
et on a commencé par regarder
quelque chose comme le store locateur
pour un nouveau outil de footwear
pour trouver un store
ça s'est fait dans notre nav
et c'est à peu près 100 files
parce que c'est notre page de store locateur
comme un modal avec des sugars sur le dessus
donc plutôt que de bouger 100 files au magasin
ça a fait du sens de fédérer
et donc la façon dont on
essaye de construire des trucs est
qu'on utilise le concept de la loaderité component
l'idée générale est
de faire comme un micro-front-end
juste dans le seul réacteur
donc en fait, pour monter
une autre app pour un div
je vais le rappeler dans l'air boundary
et je vais maintenant le suspenser
sur le serveur, ça m'a aidé plus
mais avant ça, on a déjà eu des moyens
de le faire, mais essentiellement
vous avez besoin de votre propre data
sur le serveur et le browser
vous rappelez en un air boundary
et vous êtes en self-sustaining
donc le data que vous avez besoin de votre app
est vraiment simple, comme ici est le product ID
pas ici, ici est le product data
donc si je construis plus de components
qui mechent micro-front-ends
sans les gros bouts de montée
comme je peux encore accéder au contexte
ou au redux store
mais tout ce qu'il faut est construit
donc il va either work or not work
et si ça ne se débrouille, il n'y a rien que le team de consommation
qui pourrait faire le break-in
c'est seulement le team de procédure qui peut vraiment le faire
parce que tout ce que vous avez fait c'est de la haute
une phrase sur le page
pas de procédure initiale
mais c'est complètement self-contained
donc ça réduit les risques
pour la version et les variants
pour les premiers 6 à 8 mois
puis à un moment vous allez avoir le point
où vous avez besoin de codes frises, versions
etc.
c'est là où Medusa peut venir
ou vous pouvez avoir un JSON file
sur votre ég node
où vous dites que le check-out va utiliser
la version de la version remote A, B et C
à cette version en S3
cette autre app va utiliser un et autre
et c'est comme un package JSON
pour la fédération
qui est disponible pour le webpack
pour les services et les browsers
pour savoir quel ressource je dois mettre
donc vous pouvez le faire simple
ou vous pouvez le faire en un plus complexe
où vous avez des rôles et des graphes QL
et des traces de dépendance
mais au bout de la journée
allez avoir un JSON et vous allez
faire un webpack
et le webpack utilise un commande
je le dis à runtime
le dernier que je voulais faire
c'était votre travail sur le next.js
jsr plugin
donc je veux commencer par
comment ça est différent
et comment c'est différent
que la fédération normale
et après ça
vous avez décidé
de vendre cette offre
qui est très différent de la façon que les gens
distribuent leur JavaScript
jsr JavaScript
je veux voir comment ça va
et si vous voyez ça comme le futur
de votre travail avec la fédération module
alors commençons par
pourquoi est-ce qu'il y a un plugin pour le next.js
le next ne supporte pas la fédération module
tout ça c'est essentiellement
pourquoi le next
je sais je ne veux pas
faire un bash
mais ça
s'en ressent très bien
comme ils sont délibérés de la fédération
pour être comme incompatibles avec la fédération
donc ça
est vraiment irritant mais oui
le next ne peut pas boûter
les remotes correctement
la grande question que ça a
c'est qu'il n'est pas capable de distancier
le système de sharing
le plus important est le next
et c'est un rooter de entry point
la fédération
n'a pas vraiment l'air de l'entrée point
c'est un plus dynamique
et il y a encore un importe async
sur le fil de la file
si je suis en train de le réacte
ne commence pas à s'arrêter
jusqu'à l'acte est en train de se faire
pour savoir qui devrait être réact
c'est ça ce qui s'arrête
de travailler
le plugin le next
c'est un rappeur du fédération
et je dois
avoir un loader que j'ai dans le site
et ce que le loader fait c'est que je dois
connecter à la interface
de la fédération internaite
et je vais plutôt
sideload les choses que tu ne peux pas
partager par le module fédération
je ne peux pas partager le next link
parce que ça pourrait le tirer
et le changer
et le next c'est
synchroniste donc ça ne peut pas le loader
ça cause des choses bizarres
donc je vais patcher le scope de la fédération
le next piece c'est
le version qu'ils sont en train de réacte
sideload le start up
donc quand tu vas
fédérer les choses
mettre sur les choses que le user a ajouté
et puis sideload les choses
pour les choses additionnelles
donc c'est pour le problème de la bout-up
que le next a
où le stuff internait ne peut pas être shared
mais il faut que ça soit shared
parce que c'est un single ten
donc c'est surtout ce que le client
site plugin fait en tout cas
c'est que ça réworkait comment le processus start up
de fédération module
s'en fait
pour que les apps puissent le faire
le plugin de ssr
ça a un peu plus de plus
parce que ça a besoin de tout le code
de la ssr
et les builds de service pour le next
doivent être faits un peu différemment
pour générer une entrée de remonte
et aussi pour que le next
s'élève en externaal
pour que le service soit terminé
donc quand je dois avoir une remonte
je dois faire sure que la remonte
s'élève en externaal
parce que si je le fais
en quelque part
si cette app n'a pas de classenames
mais sur le service
il devrait avoir des classenames
pour que ça soit en externaal
pour que ça soit en fédération
et pas juste de tout le temps
parce que ça va être en fait un peu de plus
donc c'est un des clés importants
qui ont été faits
c'est surtout pour ajuster le Runtime Webpack
et pour quelque chose de software
il devra être un plugin augmentable
et puis c'est
un peu de sugar pour que le next js
soit configs et rematte
pour fonctionner
pour le build fédérant
est-ce que c'est quelque chose que vous avez pris
parce que nous sommes en train
de mettre le next à travail
et vous avez besoin d'une fédération modélale
je suis sorti de réveiller ses updates
de ce genre aussi. Et c'est comme, c'est-à-dire que peut-être que ces choses ne sont pas naturelles
compatibles. C'est très commendable de passer et de mettre en support pour ça, mais
tu es vraiment en train de combattre l'enquête de l'économie.
Oh, oui, 100%.
C'est parce que nous utilisons ça à travail. Et pour tous les problèmes que Next has causé
pour moi, je dirais que en général, ça s'abandonne plus que les problèmes que ça cause. Je n'ai
pas besoin de regarder après le Ssr, je n'ai pas besoin de maintenir tous les libraries de Ssr
comme React Universal que j'avais besoin de. Je peux juste dire que Cold Next fait tout
ce genre de choses et je vais juste travailler sur le top 20%. Donc, je vais plutôt juste
faire un plug-in de Webpack et avoir à maintenir un système de services en sceau de
l'utilisation de la Federation. C'est juste un problème plus facile à se solider.
De toute façon, la beauté de travailler en Webpack et en tournage n'est pas vraiment
quelles limites difficiles sur ce que la fréquence peut ou ne peut pas faire. Si tu contrôles
le compiler, tout ce que le compiler interpare est c'est de la code pseudo. Je n'ai pas
besoin de faire ce que le file dit, mais je peux. Donc, si je contrôles Webpack, ça ne
n'a pas vraiment à do with what the framework does. Je peux avoir un niveau bas
primaire que je peux mettre en place. Donc, comme Next, on ne peut pas contrôler
l'importance federée sur le service. Le plus facile de contrôler ça, c'est que tout ce
qu'on utilise en Next est la function de l'utilisation de Webpack. Donc, si je
change comment la function de Webpack s'accueille, tout le Versal va savoir que
c'est que j'ai tenté de lire le système de file. Mais je peux juste changer Webpack et dire
que le système de file aussi s'include parce que c'est un file de Fs, donc c'est
juste un promesse. Donc, si je donne un string de promesse, c'est bon.
Si c'est Fetch ou un file de Fs, selon le Versal, selon Next, selon Webpack,
ça a un string. Ça ne fait pas vraiment pas le point de où il a le string.
C'est comme ça que tu peux augmenter ces systèmes qui ne sont finalement pas compatibles.
Ils sont tous dépendants de Webpack et si tu contrôles Webpack, ça ne fait pas vraiment
pas le point de quoi ils font ou pas. Ça fait le sens ?
Oui, et avec ça, on va passer à la structure de la price. Tu as vendu ça.
Pourquoi as-tu choisi de faire ça et comment ça a été? Tu as des micros de
l'univers qui ont été achetés et qui ont commencé à payer pour tes plugins?
C'est évidemment un bagu de mix. Donc, le Ssr1 est juste allé.
Donc, je n'ai pas de... Avec beaucoup de ces, c'est comme si nous
travaillions avec des entreprises qui veulent partner avec mon firm d'ingénierie.
Et ils veulent plutôt de la production de retain.
C'est un processus beaucoup plus grand pour quelque chose de grand.
Mais on a probablement eu 60 entreprises engagées dans nos services à ce moment.
Donc, c'est un responsable fort.
Le Ssr1 qui a été out pour environ un an,
il a été obtenu un nombre d'annonces et c'est été reçu bien.
Je dirais que le plus important que c'est que le commercial est le cost de maintenir.
C'est compliqué. Et c'est vraiment ça.
Ça prend beaucoup de temps à faire.
Et je vais bien sûr que je l'utilise pour travailler.
Donc, je peux en faire un peu de plus.
Il y a beaucoup de crossover, donc j'ai eu le temps de travailler sur ça.
Mais construire ceci pour travailler vers construire ceci pour travailler pour tout le monde
est un peu différent de ce que vous designz le software.
Parce que je dois travailler pour tout le autre cas de utilisation.
Et l'une des cas de utilisation est Lululement.
Donc, c'est évidemment beaucoup plus difficile de construire quelque chose comme l'enquête d'open source.
Parce que c'est un travail pour tout le monde.
Ceci doit faire le même.
Et il y a aussi l'aventure de...
Je suis dans un endroit fort et, pour le moins de meilleures mots, c'est un monopoly.
Donc, c'est très simple.
De mon perspective, si vous voulez la capacité,
c'est le seul moyen de le faire.
Surtout que le seul moyen.
Sinon, vous n'avez pas besoin d'utiliser.
Donc, il n'y a pas de choice envers ceci.
Et surtout, ce que je suis targeté pour ces choses sont les plus grandes entreprises.
D'où Build vs Buy,
le buy fait un peu plus de sens.
Donc, le appetite est là.
Et j'ai eu la réputation de l'adaptateur.
Je n'ai pas créé une fédération.
Donc, en général, je suis plus trusté que personne d'autre
qui s'occupe de l'adaptation de l'adaptation.
Je n'ai pas juste eu la trust là.
Et j'ai eu le clout là pour ça.
Et je sais en fait comment maintenir ce truc stabilement.
Donc, c'est surtout pourquoi j'ai fait ça.
Le demandant et la paix est là.
Et puis, il y a d'autres initiatives que je veux faire.
Et je dois avoir un avenir de fondation
pour mettre outir d'autres softwares ou séries.
Si je veux construire cet ecosystem,
il y a de l'aspect monétisé
pour faire fondre tout ce que je veux faire pour le libre.
Ou pour le libre.
Et ensuite, il y a un bon, bon, bon, bon,
où il y a un marché très grand.
La fédération est une grande chose.
Et il y a seulement un set d'outils qui peuvent le faire.
Donc, ça semble juste naturel que je vais monétiser ça.
Parce que c'est un endroit facile à faire.
Et ensuite, faire des modèles pour des modèles
qui sont des plugins de type script fédérés.
Des choses comme ça.
En monétisant ces choses,
ça me permet de faire quelque chose comme
créer un setup de type sémétisé,
maintenant, tous les definitions de type script
peuvent être fédérées.
Et ça va travailler.
Et tout ça, la chose auto-complete,
mais je n'utilise pas type script.
Donc, pour moi de juste faire ça et développer ça
et avoir les ressources en temps pour faire ça,
quelqu'un doit être payé à un moment en ligne.
C'est juste la nature de la bête, infortunement.
C'est commendable et j'ai hâte de vous voir.
C'est cool ce que vous faites là-bas.
Oui, et je pense que c'est important
que les gens puissent charger leur travail.
On ne fait pas assez de ça.
Et je pense qu'il y a un dialogue interne
qui se passe,
qui nous fait sentir qu'on n'a pas le droit
pour charger leur travail.
Ce n'est pas le cas.
Ce n'est pas un problème.
Il y a des choses qui sont compliquées
ou qui sont complexes.
C'est comme de votre travail.
Au bout de l'heure, vous pouvez faire ce que vous voulez.
Réleasing des choses à l'air
est fantastique,
et beaucoup de choses font sens
à être à l'air,
en particulier si vous voulez construire
la communauté.
Mais si vous gardez un truc
et c'est vraiment dur,
ça vous fait beaucoup de temps,
et peut-être pas super fun.
Mais les gens trouvent que c'est valable.
C'est une zone très importante.
C'est de charger le mien.
Oui, et on a vu beaucoup de bonnes
développeurs de la source de l'opinion
qui s'est fermé au bout de l'air
parce que de ne pas avoir des fonds.
C'est un problème que j'ai eu
au cours de l'année,
et je l'ai juste fait à l'aise
parce que le premier réveil
que j'ai fait, c'était l'opinion.
Mais le demandant s'est étendu
et vous vous rendez à ce
state de burnout
où on a l'air de perdre
un grand nombre d'opinions
qui s'entendent
parce qu'ils n'ont pas de fonds
ou on fait un changement.
La communauté générale
n'est pas très open
pour payer des softwares,
mais c'est pas
sustainable de pouvoir
aller tout pour le jour.
C'est comme ça.
C'est juste que
on ne peut pas continuer
à aller comme ça.
Pas tout peut être sponsorisé
par les corporations
et que les choses
sont des choses...
Si je l'ai écrit en Java,
100 000 $ à l'année
et personne ne va faire ça.
Regardez AEM.
AEM est
un terme de licence
de 400 000 $
à l'année.
Ce n'est pas comme que les entreprises
ne sont pas prêts
à payer des 100 000 $
pour le software.
C'est
plus un culture de développement
où nous, les devs,
voulons payer
et si c'est...
si c'est...
pas suffisant
ou si c'est un point de paix
que je peux chercher AEM
pour trouver quelque chose d'autre.
Mais vous ne pouvez pas
vraiment aller à AEM
pour quelque chose d'AEM
ou quelque chose d'autre.
C'est comme
trouver des problèmes
qui nous permettent
de donner la valeur
pour faire payer
des softwares.
Mais
en général,
même si c'est un petit outil,
nous devons
avoir plus de temps
de penser sur Build vs. Buy.
Et vous pouvez toujours
avoir quelque chose
comme un
GPL3 licence
sur ça
et dire que c'est
pour l'utilisation personnelle
mais si vous voulez
utiliser un corporat,
il doit être licence
ou quelque chose d'autre.
Donc vous n'avez pas
de prendre le petit outil
mais vous pouvez toujours
dire que si une company
va faire des millions
de choses que je m'ai maintenues,
il y a
d'autres avenues
pour vous
à moins avoir
le fondament
pour prendre
l'input
de cette piece de softwares.
C'est juste
où nous devons aller.
Oui.
Et juste pour
ajouter ça,
il y a un point
commun
dans le monde freelance
où c'est
un point
qui est
broadly
plus difficile
que pour vos clients.
Et
je ne veux pas
rien mal de ça
mais généralement
dans la communauté
d'open source
vous pouvez avoir
beaucoup de bruit
il y a beaucoup de gens
qui veulent
contribuer
à votre projet,
ils veulent mieux
et ils aiment
l'utilisation
et puis
il y a des gens
qui veulent
faire un problème
pourquoi il n'y a pas de travail
ou quelque chose
et pas de contexte
il y a un peu de bruit
et
je pense
un bon filtre
car
les gens
sont
é expressément
signé
que
oui,
ça donne
la valeur
que vous pensez
et aussi
ce type
de soutien
que vous allez
avoir
va être
plus qualité
et tout
c'est
une option
je pense
que
il y a des plateformes
pour modernisation
il y a beaucoup de conversations
pour avoir
des discussions
et des탁
pour les
gens
qui vont
pouvoir
justement
s'affahir
les bains et regarde à quoi tu as des bains et t'aimes les résolts.
Et ça fonctionne très bien,
surtout sur les projets plus petits où il y a assez d'applet pour quelqu'un qui paye 30, 40, 100$ pour une heure de votre temps.
Si tu es le maintien de ça, c'est un avion très facile,
surtout si c'est quelque chose qui est relativement populaire pour avoir le support direct.
Et puis le autre avion qui a commencé à explorer,
c'est que maintenant, quand tu as un company de 100, 200,000,000$,
tu peux te dire que tu veux 6 mois pour nous réarcheter ce company.
Ce entire company est un système fédéré.
Et ça va être très bien, mais tu peux avoir le challenge de s'améliorer.
Si tu viens avec quelque chose et tu vas moneter sur ça,
la première chose que tu dois faire est de prendre la demande possible pour s'améliorer.
Parce que si tu ne peux pas servir comme 1 ou 2 clients de temps,
tu vas vous couper.
Et si la demande va venir, il ne va pas être une source de supply,
ça va s'améliorer parce que tu es en train de travailler sur quelque chose de grand,
peut-être que tu peux faire 2 ou 3.
Donc, d'avoir une certaine façon de augmenter la capacité,
c'est aussi très important.
C'est quelque chose que j'ai commencé à regarder.
C'est que, si quelqu'un a besoin de 40 développeurs qui spécialisent ça,
peut-il me répondre dans une semaine et dire que c'est ça,
c'est là où tu vas, c'est là où tu as 40 développeurs qui savent tout ça
et peuvent tous aller dans le monde et faire tout ce qu'ils veulent.
Et je peux plus activer comme l'architecture et le design de la software
et modifier le Core Webpack.
Mais avoir cette capacité de dire,
oui, je devrais être plus expensif,
mais j'ai une équipe qui n'est pas aussi expensif que je suis,
poursuivis-moi pour les parts expensives,
et ensuite nous pouvons le transferter au set d'adréniers
qui sont plus vus avec ça, qui travaillent avec moi,
et qui peuvent se délivrer sur les pièces plus vus que six mois,
plutôt que de se retirer dans l'article de l'article
d'une quantité d'exorbonation, qui est aussi un bottleneck
de 1 ou 2 clients.
Je vais plutôt travailler avec 20 ou 30 clients
et avoir des teams, des teams,
un whole lifecycle, des SOWs, des contrats, tout ça,
pour que le balle puisse continuer à bouger
et simplement pouvoir élever la capacité.
Ce sont les trucs qui commencent à arriver
quand tu regardes monétiser.
C'est comme de se passer entre la consultatrice et la non-députée,
et je ne suis pas une consultatrice,
mais je fais beaucoup de ça.
Mais je dois aussi avoir un travail en temps complet.
Devant l'open source, de la commercialité,
de les couper,
tu dois avoir le droit de soutien à ce qu'il puisse faire
pour pouvoir dire, hey, payez-le pour mon software,
tu peux dépendre de ça, et ici,
les garanties sont que c'est pas juste un gars
dans sa base, en maintien.
Je vais charger plusieurs milliers de dollars
pour un code de production,
ce que les entreprises vont avoir
pour garantir qu'il y ait un SLA.
Qu'il y ait de l'accent,
des SLA qui vont commencer à jouer
quand tu as des plus grandes entreprises.
Toutes ces choses doivent être managables
afin de faire ça fausible
et d'être attractives.
Tu dois s'operer comme un vendeur de software enterprise.
Même si c'est pour un petit plug-in,
le procurateur de procurateur
va exploser
sur ce petit plug-in.
Même si c'est 5 dollars par mois,
juste de procurateur peut être une nightmare.
C'est une bonne idée, merci pour ça.
Et avec ça,
on va changer les conseils.
Alors,
la première chose que je veux partager
est une recette
pour les développeurs de JavaScript.
C'est appelé patterns.dev.
C'est utilisé par la team Chrome,
je pense.
Et ça a un tout petit bout
de patterns de design JavaScript
qui sont en train de jouer
des articles très simples,
avec des samples de code et des visuels.
Donc, vous pouvez aller ici
et si vous êtes confus
sur ce que nous faisons
sur les chiffres,
ils ont un whole article
sur les chiffres et vous pouvez
profiter sur ces optimisations
Donc, ils ont des articles très détaillés.
Je peux imaginer un module
d'une fédération peut-être
poppant sur cet appui.
C'est assez fort.
Mon premier conseil pour aujourd'hui
est une libraire
qui a récentement été réellue
par le service de l'execlique
C'est un éditeur riche
qui a été créé
par Facebook, mais
l'ingénieur spécifique
a été sur le team React.
Je pense que son nom est Dom.
Il a aidé à créer
Inferno,
le plus rapide React clone.
Il a travaillé sur ça pour un temps.
J'ai entendu le T-Series
plusieurs mois plus tard.
J'étais super excité.
Les T-Series
sont un pain.
Mais ça a l'air assez cool.
C'est construit pour être semi-genérique.
Mais
c'est un T-Series
qui a réactes de réaction.
C'est assez excitant
parce que c'est de l'un des gars
qui a aussi fait draft.js
et c'est un take moderne.
D'où j'ai lu
draft.js
a eu
un peu de code
qui a dû se faire
avec les issues
que l'éditeur de l'execlique
avait à l'époque.
Mais c'est depuis l'année
que ça a été développé.
Et ça n'a pas besoin
de faire beaucoup de ça.
Ça se fait bien.
La salle de bundle est beaucoup plus petite.
Et quand ils l'ont écrit,
ils l'ont écrit avec l'accessibilité en mind.
Donc ça a aussi
une expérience de la surface de la surface.
Donc si vous regardez
un éditeur de texte
à l'éditeur de l'execlique,
ça serait certainement le premier.
Et comme un bonus,
c'est pas juste de réaction spécifique.
Ils ont construit un corps
pour lexical.
Et puis il y a un plug-in
sur le haut de l'éditeur
qui le laisse utiliser
dans l'application réacte.
Donc nous avons
Zach's Module Federation Examples.
Oui, donc je ne
n'ai pas trop de
outils à l'extérieur de
ce space que je suis
regardé récemment.
Donc, en général,
si vous êtes intéressés
à la Federation, je dirais que
ce repos
servira comme
source officielle
pour tout le module.
Il y a évidemment
la documentation web
de la paix.
Mais je pense que
la plupart des trafics
viennent de ce que je commence.
Il y a des exemples
de l'exemple général
que nous avons disponibles
et des points de start
sur le contenu,
sur ce que c'est,
sur les vidéos
et des présentations
que nous avons faites.
Donc si quelqu'un
veut commencer
avec ça,
je dirais qu'il faut
référer ce que je vois.
Et puis,
il y aura probablement
un bon start
sur où aller
pour trouver
quelque chose
que vous avez particulièrement
regardé.
Oui, je peux seconder
que quand je fais
mon module
de la Federation Explorations,
je me suis rendu
en ce repos
beaucoup en regardant les exemples.
Et tous les exemples
ici sont très bons
et très petits
et vous montrez exactement
ce qu'ils tentent
de vous montrer
plutôt que d'avoir
une whole app
qui est construite.
Oui, la idée
c'est de dire
que vous pouvez faire des choses
ici.
Il y a assez de variations
pour avoir un bon petit picture
de ça.
On a un ou deux
là-bas
qui sont des grands
compréhensibles,
où c'est des rues
et des services
ou des pièces
Mais pour le plus
important,
la idée est
que c'est le minimum
pour comment vous pouvez
mettre quelque chose
sur la page.
Si vous voulez
voir un exemple
de contexte
de partage,
il y a un point
qui est là.
Si vous avez un
réacteur
ou quelque chose
comme ça,
il y a assez
d'envergir.
Et puis,
si quelqu'un
veut mettre
des exemples
pour ça,
c'est un projet
d'open source.
Si vous voyez
un bug
et un bug
qui est un peu
mettre
un peu d'envergir
ou un peu d'envergir.
Si vous voulez
mettre
votre propre
flavor
de quelque chose
que vous avez fait
avec Federation,
puis, en tout cas,
vous pouvez
mettre un nouvel exemple
dans ça
et aller pour ça.
Et le
livre
qui est
dans le Réin-Mie
est aussi un bon livre.
Si
les docks web
sont en train de s'arrêter,
parce qu'ils sont
un peu dents,
ce livre est
une introduction
très belle
à tous les concepts
qu'on a parlé
dans cet épisode.
Oui, le livre
est
très bon.
Je ne sais pas si quelqu'un
ici est
familial avec Jack Harrington,
mais
Jack Harrington
a aussi aidé
créer
Medusa,
comme les premières rounds
de l'un des deux.
Et il a
un code bleu
qui
aussi
recommande
faire un search
sur le chaîne YouTube.
C'est
super informatif
sur un tas de
topics.
Les fédérations
ont été
beaucoup couvertes.
Et moi et lui
ont co-authored
ce livre.
C'est
mon
compétition technique,
mais
sa
présentation
et l'obligation
de vous
une
chose.
C'est
un bon
moyen de
avoir
une bonne
compétition
d'une
On a
patterns
qui sont
les plus
probablement
d'être
réveillées
pour
les
séances
qui
l'on
de
l'on
qui
sont
les plus
écrits.
C'est
plus
écrits
par
des
cas
devoteés
sont
ses
des
owy
Comment utiliser cette capacité responsable et comment j'ai mon cerveau en pensant sur l'installation style de la construction des softwares.
Et quand vous avez vu ces deux cartes, ça commence à faire beaucoup plus de sens.
C'est génial. Merci pour votre attention. C'était une conversation géniale.
J'ai bien répondu à un peu de mes questions sur comment ça fonctionne et comment ça s'amuse.
Merci pour votre attention.
Oui, absolument. Merci pour le temps.
Merci, c'était super fascinant. La fédération module est une très dense chose, mais votre travail dans cette série est vraiment apprécié car ça a fait un peu de fonctionnalités.
Oui, j'espère que ça va être plus simple. C'est déjà très simple.
Si on regarde ça, c'est super facile de faire la surface, mais ce que j'aimerais faire c'est de faire un style de la NX,
ou de faire quelque chose comme la NXJS, mais pour la fédération.
On met des choses dans ce folder et ça va magiquement travailler et vous pouvez contrôler les versions et les contrôles.
Et ça peut connecter à ce service et si ça fait des erreurs, ça va automatiquement fixer.
Je veux faire quelque chose comme ça, où on a parlé beaucoup de la façon dont ça pourrait être cool.
Ce que j'aimerais vraiment faire c'est de construire quelque chose et dire que, hey, c'est tout le biais et les rouleaux, ça juste fonctionne.
Putz votre chose dans ici, si ça va pas, ça va réparer.
Et vous avez des contrôles et des contrôles que vous avez besoin d'une organisation très scale.
C'est ça pour ce week's episode de DevTools FM.
Faites attention à nous suivre sur YouTube et à tous les sites de vos podcasts.
Merci d'avoir regardé.
...
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