Alex Johansson - tRPC, Zart

Durée: 57m34s

Date de sortie: 07/01/2022

This week's episode features Alex Johansson creator of tRPC. tRPC enables you to create end to end typesafe APIs with ease with no code generation!


Tooltips

Andrew

Justin

Alex

Si vous utilisez TRPC, vous pouvez, comme vous utilisez un
«mondarepo» architecture, vous pouvez juste
vous infaire à l'envers de votre autre app,
soit c'est une app mobile, ou une app internal admin,
ou votre site public, ou autre.
Bonjour, bienvenue à la DevTools FM podcast.
C'est un podcast de la DevTools, et les gens qui les font.
Je suis Andrew, et c'est mon co-host Justin.
Salut tout le monde!
Aujourd'hui, nous sommes jointes par Alex Johansson.
Alex est le créateur de TRPC, il s'agit de CAT,
un peu de KATT, en ligne.
Bienvenue à Alex, c'est super de vous avoir ici.
Vous voulez prendre un moment pour nous dire un peu
votre chose?
Oui, bien sûr. Je suis Alex, un software
d'entreprise, j'ai fait un site depuis que je
était un enfant professionnel pendant 15 ou soeurs.
J'ai été dans le monde entre front et bas,
et mobile depuis ma vie, j'ai travaillé un peu
avec tout.
Je me suis réveillé un peu sur votre background,
et je vois que vous avez vécu un business
en fonction des services de counter-strike.
J'ai joué beaucoup de counter-strike en high school,
donc je me suis dit que c'est super.
Comment vous avez appris?
Je me suis dit que c'est comme ça que j'ai été
en train de faire un service en front et bas.
En tant que teenager, j'ai aussi joué
beaucoup de services de counter-strike,
et quand je suis 13, on avait un break-in
dans notre maison, et j'ai perdu mon computer

Et puis, mes amis étaient en ligne,
donc j'ai été plus en plus en codant,
je suis partie de ma team, j'ai fait des websites,
j'ai fait des services de counter-strike,
et tout.
Et puis, je suis approché d'un ami,
comme un ami internet de la même temps,
qui a un bref et un service que il n'a pas utilisé
dans cette compagnie,
et on a eu l'idée d'une site de counter-strike
où vous pouvez vous envoyer un service.
Donc, ça a commencé comme une forme
où vous sortez vos détails,
vous envisagez des murs sur le wire,
et puis ça a gradually développé
un système complètement automatique
où vous allez, vous configurez votre service,
et vous achetez,
vous utilisez le service chaque mois,
vous pouvez l'extender,
vous configurez le service,
vous faites tout ce que vous voulez.
C'est génial.
C'est la foundation de mon web,
mon tout de la compagnie de développement,
que j'ai commencé à 16 ans.
C'est super impressionnant.
Tout ce que j'ai codé à 16 ans
et j'ai créé un site en jocs,
je ne pensais pas même à commencer un business.
Je n'ai pas vraiment appelé ça un business.
J'ai fait de l'argent sur ça.
Comme un jeune enfant,
c'était bon d'argent,
mais il n'était pas assez de vivre.
Oui.
Je vois beaucoup de histoires
sur les gens.
J'ai commencé à programmer quand j'étais 14,
et j'ai eu un business en faisant ce truc.
Je n'ai pas essayé de me faire apporter
mon programme,
et c'était juste grec.
Je ne comprends pas ce que j'ai fait.
Ce n'était pas jusqu'à la collège
quand j'ai eu mon premier programme.
Il a juste cliqué et c'est comme,
oh, je vois ça.
Mais avant, je ne sais pas.
C'était malheureusement que je n'avais pas
un programme de compagnie,
ou quelque chose à la haute-école.
J'ai eu beaucoup d'électroniques,
j'ai eu une classe d'électroniques
et une classe de robotiques,
qui, ironiquement,
a fait de l'argent
dans notre classe de robotiques,
ce que nous avons fait en plus de temps.
C'est un petit coup de couche.
Oui, bien sûr.
C'est drôle.
Je pense que tout le monde
a des différentes manières.
Je ne peux pas apprendre
la code pour
avoir été déclaré par une professeure.
Je dois en prendre ma main
en pleine d'électronique.
Je ne sais pas.
Je pense que
je sais que le seul programme
que j'ai,
c'est
les paroles de JavaScript
par Douglas Crockford.
C'est le seul programme que j'ai acheté.
C'est comme, ce grand.
Oui, je l'ai fait.
J'ai pas d'accord avec ça.
Je ne pense pas que je l'ai jamais
fait pour un programme de programmation.
Tout nouveau programme que je rencontre,
la première chose que je dis,
c'est de faire un truc.
D'arrêter de apprendre le programme,
juste faire un truc
et apprendre plus.
Exactement.
J'ai appris comment un four-loop
fonctionne.
C'est pointé.
C'est pointé.
Je l'ai appris
par le fait
que c'est la seule façon pour moi,
en tout cas.
Cool.
Peut-être que je parle
de la PC TRP.
Un petit peu.
Vous pouvez vous dire
aux listeners
ce que la PC TRP est
et ce qui vous inspire
à créer.
Oui.
La PC TRP
est un set de tools
pour faire
des types safes
des APIs.
Ça semble très
curieux
ou complexe
quand vous le dites.
Mais,
c'est essentiellement
ce qui vous permet
de faire,
c'est de faire votre
basseur
et le front-end
dans un plus
intégré de façon.
Vous avez des fonctions
sur le basseur
et vous pouvez
faire tous les types
sur le front-end.
Donc, vous n'avez pas
à prendre du temps
de faire un schema Swagger
ou un schema GraphQL.
C'est un alternatif
pour le GraphQL
pour les APIs
internes
et ça fonctionne
pour tout le type
script.
Ça
permet de
avoir des types
sur les deux côtés
pour avoir
l'awesome
de la type inference.
Vous pouvez
faire un app React
ou un app React Native
et ce n'est pas
en fait
le type React itself.
Vous pouvez l'utiliser
dans d'autres frameworks.
Et quand vous étiez créé,
que sont les alternatives
à la période
et pourquoi vous choisissez
de créer quelque chose de nouveau
en invité
à ce que vous avez déjà été là?
Donc,
je
j'étais en fait un contributaire
à Blitz
avant que je
commençais à travailler
sur la thérapie.
Et le problème,
j'ai eu des issues avec Blitz
mais la main
chose était
que la seule magie
de Blitz
que j'ai vraiment voulu
était ce sort
d'apprentissage
pour importer
votre code
de la back-end
à la front-end.
C'est la seule chose
que j'ai voulu.
Et puis j'ai
étendu un concept
d'un début de proof
de thérapie
qui a été
créé par Colin
et j'ai oublié
ce dernier nom.
Mais il a aussi créé
un autre library
de Blitz
comme Zod.
Et j'ai été
super émaisé
que cette inference
est possible
de la back-end
à la front-end
et qui a été
complètement obssessed
avec la construction.
Donc,
j'ai pris le projet
en janvier
et j'ai pris le premier
projet
en janvier
ou quelque chose comme ça
et j'ai été
éterré par ça.
Une grande partie
de ma inspiration
est comme...
J'ai mentionné que
j'ai été
borné
comme un stack de PHP.
Et en bas
vous pouvez
faire
votre
sequel
ou votre database
qui s'appelle
la front-end code.
Donc, vous avez
écrit
html et vous avez
appellé votre database
et vous pouvez
utiliser ce data
pour le faire.
Et
depuis la mobilisation
de NoJS
10 ans
j'ai toujours
mis la productivité
que j'ai
quand je pouvais faire ça.
Et la TRPC
sort de
vous donne
ce sentiment
que c'est juste
une grande
connectée
de votre front-end
et de la back-end
et vous pouvez
bouger très vite.
Oui, c'est
vraiment comment j'ai appris
la TRPC.
Donc,
les listeners,
si vous n'avez pas
appris,
Blitz.js
est un projet d'open source
qui
sort de

C'est comme si
vous étiez en train
de faire
une environnement
plus
d'environnement
pour le système de note.
Et
l'un de leurs
sortes
de features
comme Alex
m'a dit,
c'est l'objet
de
vous
importer votre code

et l'utiliser dans votre code client.
Et
ça
juste
fonctionne.
D'autres
sont en train de


construction
pour
l'utiliser
dans votre code client.
Et
ça
peut être
bien pour nous
parler
de ce que
l'on
a
conceptuellement.
C'est important.
Mais
oui, c'est
en
même
le même.
J'ai
l'impression
que je
m'aime
et j'ai
l'impression
rotardie.
C'est
une
Korean
érieure !
J' Convenissais
TRPC est une partie de l'équation, mais c'est plutôt facile de migrer à la frontière.
TRPC, le GraphQL, si tu veux ça, tu peux faire du copiant sur les résolvers.
Il n'y a pas de lock-in ou d'autre.
Donc, je vais en remercier un peu.
Pour les listeners, vous ne savez pas ce que l'RPC est.
Ou ce que c'est ?
Oui, oui.
Oui, donc, l'RPC est pour un call de procédure réplique.
Donc, je pense que dans la forme de l'on, c'est juste un moyen de donner des fonctions dans un autre système
comme si tu es partie du système, mais que tu es en dehors.
Donc, dans le contexte de TRPC, c'est comme si, quand tu es à la frontière,
tu te sens comme si tu es dans le bac, même si tu n'es pas.
Et tu peux utiliser la fonction de la back-end, comme si tu es dans le système.
Mais tu es en train de chier un call de procédure réplique à la back-end quand tu es en contact.
Ce serait peut-être la meilleure explication de l'RPC.
Peut-être que tu peux remplir des liens dans ma explication.
Oui, je pense que c'est bien.
L'RPC est conceptuellement, probablement, l'une des plus anciennes,
si pas les plus anciennes, comme le mécanisme de l'application des procédurs réplique.
C'était comme cette idée que tu as quelque chose que tu veux te donner d'autre.
Donc, l'RPC a évolué comme ce mécanisme.
Et c'était comme, à mon avis, les choses prédétendues, comme les procédurs répliques,
et des choses comme ça.
Avant, c'était vraiment formelés. On avait des procédurs répliques.
Il y a beaucoup de systèmes qui utilisent le RPC XML,
qui est comme le RPC XML protocole, qui est un peu nard.
C'est une bonne technologie.
Mais les gens souvent choisissent pas de l'utiliser.
On a eu tous ces mécanismes d'application qui ont évolué pendant les années.
Donc, peut-être que nous parlons de comparer et de contraster,
en particulier, le RPC t-RPC avec une autre technologie.
Le RPC t-RPC t'aiment les habilités,
ou c'est comme, c'est fortement type sur les deux côtés,
parce que tu utilises un texte sur les deux côtés.
C'est comme, tu as un type de type close entre les deux côtés.
Mais, théoriquement, tu peux aussi avoir quelque chose
via la tournage sur GraphQL.
Pourquoi tu choisirais quelque chose comme le RPC t-RPC avec GraphQL,
ou que sont les traitements entre les deux?
Oui. GraphQL est incroyable.
J'ai été un avocat massive et utilisé pour offrir GraphQL
pendant 5 ans.
J'ai beaucoup de l'amour pour GraphQL.
La seule chose avec ce que tu as mentionné,
c'est que tu peux acheter toutes ces choses avec GraphQL.
Mais, la tournage est assez hérieuse,
c'est beaucoup de choses à apprendre.
Tu as des générations de codes qui créent
ces types de saves à l'avant.
Tu dois rédécurer tes schémas plusieurs fois,
parce que tu as un schema database,
tu as un schema GraphQL,
tu as des resolvers,
et tu as un schema de front-end qui utilise des choses.
La différence entre GraphQL et T-RPC
n'est pas la même chose,
mais c'est beaucoup plus de travail
pour travailler avec un API GraphQL.
C'est beaucoup plus long pour faire un tournage,
les cycles de régions sont plus longs.
Mais, quand tu as un API GraphQL,
tu peux aussi publicement exposer ça.
T-RPC n'est pas tenté d'être une solution
pour des appels publics.
Parce que, naturellement,
la seule garantie de la forme de schéma
est dans son type,
qui est juste transgé en temps de construction.
Il n'y a pas de concept d'appels publics,
parce que c'est juste que
ceci est le data que la fonction s'étend.
Si tu déploies une autre fonction de ça,
et si c'est un API public,
tu vas avoir des breaks, etc.
La main chose est que
c'est beaucoup plus facile de travailler avec T-RPC
et GraphQL.
Tu peux bouger beaucoup plus vite.
Avec GraphQL, tu as beaucoup plus de sécurité.
En termes de, tu as des résolverses
de field-based, etc.
Tu peux faire une grande authentication
et une offertation sur un niveau par field,
et un peu d'autres choses.
Mais oui, c'est aussi...
C'est vraiment difficile de faire un scale en GraphQL,
parce que c'est tous les requêtes postes
qui sont tous en un unique de façon.
Avec T-RPC,
les requêtes sont les plus élevées.
Tu peux mettre un HTTP
en front de ta back-end.
Bonne journée.
Avec beaucoup de ces stratégies,
c'est souvent,
je pense,
quand tu es essayant de décider
ce que je dois utiliser pour un produit,
c'est important de comprendre
comment l'appel est optimement consommé.
Tu as dit que le constrain de T-RPC
est pour un API privé.
Tu es communiquant directement
entre un système de back-end
et un produit de front-end.
C'est comme un 1-to-1,
si tu es en train de construire un back-end
pour un produit de front-end.
Est-ce que c'est un cas de utilisation ideal ?
Ou est-ce que c'est des interfaces
d'internautes internes
où tu peux avoir une app mobile
et une app web,
en communiquant
avec un système de back-end privé ?
Oui, tu peux avoir
5 front-ends et 1 back-end
ou des services bespôts
pour le architecte de back-end
et tu peux les conclure
en un expérience de front-end.
C'est un grand différenciateur
de Blitz.
Si tu fais un API de Blitz,
tu peux seulement utiliser ça
dans ce projet.
Si tu utilises T-RPC,
si tu utilises
un architecte de front-end,
tu peux l'infure
en bas de tes autres apps,
soit un app mobile
ou un app Admin interne
ou un site public,
etc.
Oui, c'est comme si T-RPC
s'est fermé dans ce domaine privé.
C'est comme si c'était un API interne.
GraphQL sort de la ligne.
Je ne suis pas
un proponent
de public GraphQL
parce que je pense que
la complexité de
management
d'attacks d'attacks
de la complexité,
de la authorization de handling,
il y a un tout de la salle
de problèmes, de caches,
tout ce qui fait ça très difficile.
Et puis Rest in Point,
c'est HDP, c'est assez facile
de faire ça en public.
C'est toujours intéressant de savoir
où il s'agit.
Oui, GraphQL a
beaucoup de ces issues.
Ce n'est pas des issues.
Il y a beaucoup de challenges
que tu dois devenir
vraiment bien, si tu as choisi
d'adopter GraphQL.
J'ai écrit une complexité de complexité
sur GraphQL, des backends,
et tu es sortant de la façon
pour que tu aies un bon benchmark.
Il y a juste beaucoup de problèmes
qui t'inherit
quand tu as choisi GraphQL.
Ce n'est pas de dire que c'est mal.
Je pense que c'est bien.
Mais oui,
surtout quand tu fais un service public,
ça se fait vraiment difficile
de se faire avec ces problèmes
quand tu dois penser
sur les secteurs d'attaque et tout.
Ça semble que la compétition de votre API
avec TRPC
semble beaucoup plus naturelle
que de se faire
dans un genre de GraphQL,
où tu dois
apprendre ce nouveau langage,
juste pour écrire des queries.
Un autre effectif de la seconde order
est que si tu es en train de
écrire des trucs comme GraphQL,
comme mon premier projet GraphQL,
je pensais que je devais juste avoir des types,
mais tu n'as pas de types.
Tu dois utiliser tous ces tools
pour générer les types pour toi.
Donc,
tu vois beaucoup de bénéfices
de la façon dont TRPC fait ça,
et tu as sorti le processus de code Gen?
Je pense que c'est
une vraiment belle feature
avec TRPC.
Tu dois installer un packages
et tu as juste
tous ces tools automatiquement,
parce que c'est partie de l'adaptation.
Je suis installé un tool GraphQL
pour la sécurité type
sur, je ne sais pas, 5, 10, 15 différents projets,
mais c'est difficile à chaque fois.
Je ne suis pas un développeur junior,
donc je ne peux pas...
Je pense que les gens qui ont des services GraphQL
sont desquels ils ont mis
l'aspect de la sécurité type
parce qu'ils ont fini d'écrire
un Front JavaScript et de toute façon
ne sont pas vraiment utilisés
la sécurité type
que l'on voit en GraphQL
parce que c'est trop complexe
de fixer tout ça,
ou de couper le code.
Donc, c'est
un aspect
vraiment bon de la TRPC.
Tu n'as pas de pensée
sur la sécurité type
ou le JavaScript, c'est juste là.
Et si tu as mis un fonction
sans des typescripts
et tu le retiens,
ça va travailler
comme si c'était un JavaScript
et la compagnie vous a dit
que ça fait du mal.
Donc, ça fait que c'est plus facile
d'écrire un JavaScript normal
mais juste avec plus de
plus d'aide.
C'est un bon type script API
que je devrais me sentir
comme je suis en train de faire un type script.
type script, c'est ce qui fait que ça me fait
mieux.
Si tu as un type inferre
que tu as dans le code, c'est
génial.
Si tu as un point de vue inferre
que tu as fait, c'est un grand
peu de DX.
Oui, un type inferre est
beaucoup plus bon de travailler
avec des types déclarisés.
100% de ce que nous avons.
Donc, tu as, comme type script,
beaucoup d'enforces de types
à la construction.
Est-ce que la TRPC
permet d'enforcer
ces types à la construction
depuis que tu peux
savoir les types beaucoup plus
que si c'était juste des types
depuis que tu utilises des types
comme Zod et d'autres types
typescripts déclarisés.
Donc, ça fait que tu as des types de construction?
Non, pas du tout.
Ou bien, c'est un argument d'input.
Donc, quelque chose que tu as envoyé
de l'application à la service
doit être passé par un validateur.
Et ce validateur peut être Zod
ou Yap
ou Joy
ou il y a un peu de différents
supports. Mais c'est un des choses
que j'ai sorti
dans l'architecture
d'enforcer que tu n'as pas juste
dit que l'input est de cette forme.
Tu dois dire que c'est un validateur
et que tu inferres
les types que ce validateur
s'étend à l'autre côté.
Mais sur les outpits que je ne fais pas
dans l'invalidation, tu sortis comme
je crois que la service
me sentait à ce que je n'ai inferné
et je ne fais pas de types de checker
plus que ça
dans le temps.
C'est cool. Je me suis réellement
j'aime comment tu l'as designé
ou tu peux te faire faire votre propre
validation à l'invalidation. Tu n'as pas créé
ton seul bespoke?
Oui, il y a beaucoup de bons des
déjà. Je sais
comment beaucoup de travail c'est
pour Colin
qui a écrit
sauf
pour juste maintenir ça.
Ce n'est pas un problème
pour faire un bon
validation à l'invalidation.
Oui, j'ai utilisé IOTS
pour valider
les types auto-plugins et
c'est fou ce que ça peut faire.
Je n'ai jamais été dans IOTS.
Peut-être que tu peux parler un peu
d'IOTS.
Ils ont tous une appui assez similaire
pour l'appui.
Ce que j'aime de IOTS c'est que c'est
assez proche de ce que tu fais
en type script. Si tu veux
un partial, tu utilises
un TS.partial
ou quelque chose.
Ça se passe très facilement.
Je voulais avoir des messages
riches pour les types
de plug-in.
J'ai dû faire des logiciels custom
pour ça mais ça a été le cas.
Ça a été un peu plus tard pour me faire
un
IOTS et des FPTS.
Ils ont
des API obtuse.
C'est juste difficile de rappeler
votre tête. Si tu n'as pas
rencontré ce type d'API
avant, mais quand tu commences
à comprendre, ça se fait beaucoup plus facile.
Oui, je suis
touché sur le point
de programme fonctionnel
et de la autre chose que je fais.
Mais je n'ai pas fait le leap.
C'est pas un leap.
C'est pas un leap.
C'est assez réel
je pense.
Il me sent pure, c'est pas vrai?
Oui, c'est possible.
J'espère que tu le fais bien.
J'ai une question
un peu changeant
mais une question de
transports.
Tu as mentionné que la différence entre TRPC
et GraphQL
est que avec TRPC, tu fais un
request de GET
en tant que post-request.
Tu peux prendre des avantages
de cacher.
Mais en cas de GraphQL,
rien de GraphQL est spécifique
pour que ça soit fait
sur HGDP.
C'est la complication commune.
Juste en regardant le DOCS,
il me semble
que tu penses un peu
que le transport est un peu sous la coude.
Si c'était pas
HGDP,
could you talk a little bit about that?
Oui,
I've actually gone a step further
down, if you will.
Lower level
RPC layer is like, it's
volume JSON RPC
and I've outlined a sort of spec
on how that works.
And then I actually support two
transport layers. I both support
HTTP and web sockets.
So you can actually do real time
stuff with TRPC as well. And there's subscription support.
It looks
sort of similar to how GraphQL
does it.
But yeah, the transport layer
is not strictly
HTTP. There is a lower level
sort of spec on it.
And you can call it just like
within the server as well.
You don't have to go through the
HTTP layer.
Nice, nice. And that uses a concept.
It looks like that uses a concept called
links.
It reminds me a little bit of Apollo's links.
You want to talk a little bit about that?
Links is a way to customize
how the data flow works from your client
to your server. So for instance
if you have subscription support
you have a real time map, you might
want to have some of the real time stuff
always happening over web sockets
because it changes often
you want to have like a push mechanism
on that. But then you might have some
requests that you want heavily cashed
or whatever. Then you can customize
that data flow with a link
and say that if it's of type query
it should go over HTTP
and if it's of like
mutation and subscription it should go
over web sockets.
So it's very heavily inspired
from Apollo's
links concept. It's just like a way
of saying like, okay when
the data flows goes to the server
it should steer off in this way
or that way
depending on your logic.
And you can add stuff like lockers
and other stuff in there too.
Super cool.
Yeah, it's awesome.
So we've talked a lot about
the things we find interesting
in TRPC but what are your favorite
bits of DX that we might not have
discussed here? One that I saw
while looking through the docs is the request
scratching seems pretty cool.
Like you can either batch them yourself
or
just like do a bunch of requests
and it looks like it kind of auto batches.
Could you talk more about that?
Yeah, yeah. So I was super
excited about that when I first released it
and now I just enabled it by default
and sort of forgotten about it
because it just happens now.
But essentially if you have two queries that happens
at the same time they will actually be put into
the same T-request to the server
and then the client
has to do less work over the
network and the server also has
to do less work because it only gets one
T-request and you can
create like the context object about
that request, once per
request and then it sends
them all back as one big
JSON body.
The main thing
excited about is
I need to get this out to more
React Native developers because
I have not seen anything
similar in terms of
React Native and
the fact that we have like
over-the-air updates and stuff nowadays
makes it so fast
to be able to write like
you're back-end and you're front-end at the same time
and you just deploy it to
your user straight away.
With over-the-air updates you don't really have to think
about API versioning
as strictly as before
and I think when people start realizing
the sort of speed they can work with
if they use React Native and
something like Tier-PC, not necessarily Tier-PC
there'll be a bit of a
shift in that development too.
Because who hasn't
spent countless hours on
either complaining about Swagger Schema
or writing as Swagger Schema
it's just like it's painful
and no one follows them because they're not actually
enforced by the spec. At least GraphQL is
enforced in itself
and self-documenting. But it's just
wasted time.
Does Tier-PC, you just mentioned
self-documenting for GraphQL, does
Tier-PC have a self-documenting
feature? Can I generate
a documentation website for my API
or is that out of scope?
Not right now. You can do it, you can
generate it based on input types
but you don't have any information about the output types
automatically. I've been planning on
doing features like that. I've also
planning about doing like an
automated Swagger Schema
and stuff based on Tier-PC because it was
definitely possible.
I just haven't spent that much time on it. I think
the way I like
to write software myself
is to have descriptive variable
names over having
too much documentation.
So the way
I would advise people when using
Tier-PC would be to have
this bulk input variable names
that sort of self-explain what they do
but yeah, you can't actually
document it unless you
do some sort of custom logic
on that.
Does JS doc work?
Oh yeah,
that you can actually do. If you have an
output and you have
if you have a JS doc
object that you are turning your Tier-PC
back in, that will
actually be inferred straight away to the client
as well. So that works.
I find
JS doc to be some of the best documentation
because it's just so immediate
the feedback loop. You hover, you click
the arrow and you're like oh, that's what it does.
It's definitely my favorite way to read documentation nowadays.
You can do that on the output. On the input
you can't do that
because it goes through a validator.
In TypeScript, you can't infer
documentation
in generics,
unfortunately.
If you merge two types, you lose the documentation.
So you talked a little bit earlier
about React Native
and wanting to share Tier-PC
more with React Native developers.
You have this project template
called ZART Z-A-R-T
which
is a sort of a React Native
stack with Tier-PC.
Would you like to talk a little bit about that?
Yeah, so that's just
a starter project for
sort of React Native.
It's like a monolithic project
where you have, if you clone it
and start it, it automatically starts
an extra AS app,
a React Native app through Expo
and a backend
with Tier-PC.
You can see that you get all of the types
in your React Native app
inferred straight from your backend.
I want to do something more
about doing a big push for that
because I really think
this sort of
development will be
really beneficial for
especially smaller startups
et stuff.
Because it really enables
people to jump back
and forth between the front
and the backend a lot easier
than however you choose
to do things today.
The fact that you as a front-end developer
can sort of see what you
get back straight away and be able to
jump over to the backend
and change it and get something else
I think will sort of bridge the gap
between those two
disciplines
que les entreprises sont souvent
des plus s'inspirées.
Je trouve ça super excitant
parce que je pense que les
front-end developers vont réaliser
que le backend est beaucoup plus facile
que les autres casés.
Loring
la barrière de l'entrée est un thème
que nous avons vu dans nos épisodes recentes.
Nous avons recently parlé avec Michael Jackson
de Remix.
Le moyen dont ils sont abstracts
et le moyen de l'appli est
très bien le même.
Il tient à l'enquête de l'enquête
et c'est comme, oh, c'est pas
comme j'ai pensé, c'est juste là,
c'est juste une autre fonction dans le file.
Je pense qu'il y a beaucoup de valeur dans ça.
Exactement.
Et oui, la Remix
fait un autre chose
avec la fonction
en ligne
que vous pouvez exporter.
Mais ils ont aussi les post-receivers,
ce qui est bien.
Avec le project ZART,
avez-vous utilisé cette type d'architecture
avant ?
Avez-vous construit d'autres apps
où c'est un monorepo de React Native
et React ?
Oui, je l'ai, mais pas avec Thierapie
en production.
Mais je sais un bunch de compagnies
qui utilisent
ce stack avec Thierapie
et qui utilisent React Native
et qui ont fait le backend
avec l'aide de Thierapie.
Et je n'ai que de plus de feedback
de Thierapie.
J'ai sorti de mentionner ce concept
avant, mais il y a une notion
d'architecture, de la back-end pour la front-end,
qui est
un système de back-end slimmé
qui est construit, dédicé pour votre
producte, et qui intervient
avec d'autres services.
Les technologies comme Thierapie
permettent de se coller
avec ce système de trivier
où vous pouvez
faire des façades
pour vos autres systèmes
de domaines business
ou des systèmes, etc.
Et c'est plus facile
pour vos producteurs et vos front-end
pour construire
plus rapidement et contrôler
leurs interfaces API.
Sans avoir
un grand API counsel
et tout ce qui change
la décision de
comment on va
faire l'API, ce qui ne se détend pas
de tous les produits.
Si on expose un
facile interface pour intervier
avec vos services productifs
et faire un back-end pour la front-end
et quelque chose comme Thierapie,
vous avez un rapide approach
pour intervier avec ces systèmes
pour ne pas avoir trop de risques
pour le producte de back-end.
Et les calls qu'on a
ont de la carrière, et
ce n'est pas vraiment fait
pour quelque chose comme un pagination
avec ce petit fil qu'il faut.
Et puis vous pouvez bouger
à cette laitière en milieu.
C'est très similaire à
comment j'ai adopté GraphQL
dans les entreprises de poste.
Je ne commence pas par replacer
tous les services.
Si vous voulez utiliser cette technologie,
cette sorte d'API,
vous pouvez le mettre en entre-mêmes
et replacer
tout ce que vous avez en-dessous
pour les consommateurs.
Il y a beaucoup de parler
des gateways GraphQL
et ça se fait un bon moyen
de faire des choses.
Si vous êtes un company
qui a besoin de ça
et de la front-end pour le back-end,
je vais probablement
conseiller à ceux qui ont
utilisé le service GraphQL
pour votre domaine
et à l'utiliser dans tous vos produits.
Donc, on va utiliser quelque chose comme le TRPC.
C'est toujours bon de savoir
quand vous devez utiliser
ce qu'ils ont besoin.
Oui.
Je vais essayer de ne pas être
malade pour que tout le monde
soit utilisé pour le TRPC.
La communauté se fait
fragmenter quand les gens
sont juste
des technologues
qui ont créé
ce type.
C'est toujours
des trade-offs avec tout le monde.
Le TRPC
n'est pas expérimenté
de la façon dont c'est instable,
mais c'est
changé.
Les gens doivent réévaluer
des back-ends
quand ils font une nouvelle version.
Ce sont des choses
qui sont à l'aise de la technologie.
Oui.
Il y a une tension constant
entre hubris et humilité
pour les télés.
Est-ce que mon télégraphe
se réserve tous les problèmes
ou est-ce que je devrais
juste le faire ?
Qu'est-ce que le futur de TRPC
semble ?
La prochaine chose que je suis
très excité de faire maintenant
est une idée que j'ai eu la dernière semaine.
Je vais commencer
à faire un sort de
kitchen sink pour la technologie.
Je pense
que c'est un component
pour beaucoup de
patterns de design
et de la façon dont vous utilisez
TRPC de différentes manières
avec la préview,
comme la frontière et la back-end
et vous pouvez utiliser la code
de copie et paste
pour votre app.
Ce que j'ai envie de faire
c'est de faire un rest-adapt
que j'ai parlé de l'année dernière.
C'est quelque chose que je veux travailler avec.
Il y a des défis
de l'expérience de la technologie
quand vous buildez des appels
très très grandes
avec TRPC que je dois
travailler un peu.
Quand vous avez des procédures
à 100,
ça commence à être un peu
un peu laggé.
Il a de
les types de tout le
type de la back-end.
Le type de la back-end est
incroyable.
Les types de la back-end
et les types de la back-end
sont très bons pour l'expérience

mais c'est très lent
à un certain niveau.
Je dois faire des systèmes pour ça.
Ce n'est pas ce que je veux faire.
Je veux trouver un moyen
de monétiser la technologie
maintenant que c'est un peu d'adoption
parce que comme aucun source d'open source
de maintenance,
ils ont eu beaucoup de temps
pour ne pas avoir
plus de monnaie.
Je suis en train
de faire des engagements
sur TRPC.
Le pays de la consultation
s'est fait 200$
par mois
maintenant.
Oui.
Oui.
Probablement
le premier moyen que je pense
est d'avoir un service host
qui est le default
pour les choses.
Oui.
Je ne veux pas faire ça.
Ou
il pourrait être consulté avec TRPC.
Oui.
Je fais ça.
Je veux dire que j'aime ces projets
où je peux
impliquer la TRPC
et les gens impliquant
pour voir que j'ai le plaisir
de faire des développateurs.
Oui.
C'est toujours cool de voir les fruits de votre laboratoire.
C'est vraiment
difficile de monnerer
l'open source.
C'est intéressant de savoir
que l'année dernière
Rich Harris
s'annonce qu'il allait rejoindre Verso
et c'est
un peu de la thème
de l'open source
pour les entreprises comme Verso
et c'est pointant pour cette conversation
parce que
souvent,
c'est un tool
qui est libre et que les gens peuvent utiliser.
Mais pour les entreprises
il y a
une marque
qui vous donne
une marque pour dire quelque chose
et pour construire une perception
de qui nous sommes.
Donc, la prochaine JAS pour Verso
est plus un tool de marketing
que l'autre.
Et je pense
qu'il y a un
thème, il y a un nugget
d'indicatif pour
faire un peu
de la

d'en faire
ce projet d'open source
qui est un peu de marketing
pour se faire monnerer
d'un autre angle.
Si c'est comme une consultation,
c'est comme une création de contenu,
je construis ce tool
pour générer l'intérêt
pour
servir ce marché.
Je suis commencé la thérapie
pour me couper mon hôpital
et j'ai eu un start-up
l'année dernière et j'ai eu
mon VC fondé de start-up
et je m'ai mis le tooling
et j'ai commencé
à faire ça en soirées et weekends
mais je n'ai pas
partagé de cette compagnie, mais je ne peux pas
utiliser la thérapie pour promouvoir
cette compagnie pour
promouvoir la thérapie
mais c'est intéressant
la toute la hiver de Rich Harris
comment la récentre
était derrière ça
et je sais que Svelte est
incroyable et j'adore
pour
avoir plus de fonds et avoir plus de temps
mais le business angle
je ne comprend pas
plus que le marché.
J'ai beaucoup d'opinions sur ça
mais
Versel est une plateforme de hosting
c'est vraiment
leur monstère
ils ne sont pas dans le business réact
ils apportent
beaucoup de tools mais ces tools
ne font pas de monnaie
ils sont essentiellement marketing
et le plus grand que ils veulent
c'est qu'ils veulent vous donner
les tools qui vous donnent le plus d'inroad
dans leur plateforme et maintenant
ils ont fait un très bon travail
avec Next.js
dans le réact ecosystem
mais
avoir Rich en bord
et pour faire cette histoire
plus facile pour Svelte
ça signifie que 2 de 3
ou peut-être 2 de 4
les joueurs de l'account Angleterre
sont dans
ce space
et si ils peuvent
donner cette première classe
ils commencent à
faire la plateforme
pour hoster
leur stuff
et je pense que c'est
leur grand joueur
oui
comment pensez-vous du futur
réact vs Svelte
etc.
ça fait un bon question
nous allons vous demander
je pense que Svelte est une grande technologie
c'est une
très belle innovation
et je pense que ça va continuer
à
développer et evoluer
dans les manières que
les autres plateformes
vont combattre
réact est très complexe
mais c'est
très bien fait et le team
c'est incroyable
et c'est très bien
donc comme les components de la service
sont plus robustes
les interfaces sont en train de
faire des choses comme
une meilleure surface-seller
qui réacte de la vie
je pense que ça va
aider l'écosystème
je vois tout les choses
continuer à développer
et si quelque chose de plus grand change
Facebook se débrouille
ou le team réact
se débrouille
ça serait dévasté
car réact est
une technologie
très complexe
mais
je pense que Spelt est
plus
approachable en fait
si vous voulez contribuer
à l'autre, ce n'est pas
rien contre réact
je pense que le team est incroyable
et ils ont fait leur best pour le faire
pour contribuer et beaucoup de gens
contribuent à ça
mais pour vous faire
tourner
ce que vous pensez de la future de la web ?
comment vous êtes-vous
excités ?
la future de la web
je
suis très bias
mais je me sens
que la shift est en train
de retourner au monolithe
on a
broken up micro services
comme un trend de 10 ans
je ne pense pas
que c'est une opinion révolutionnaire
mais nous nous
nous sommes en train de
changer les expériences de développement
et ça me excite
car ça vous donne un boost de production
et vous devez
prendre moins de temps en infra
et des services de stitching
mais en termes de la développement de la web
ce n'est pas le plus grand
je pense que je ne crois pas que Spelt
comme une technologie, tout ce que j'ai vu
me semble que c'est un sens
et si
l'une des choses qui est très difficile
c'est que
c'est difficile de réacter bien
il y a 100 millions de façons
de réacter d'accord
et il y a
quelques façons de faire ça correct
et c'est difficile de faire ça correct
et Spelt semble avoir trouvé
une manière de faire
une manière de réacteur de la web
en
manière très approachable et facile
et vous avez moins de chance
de faire votre code
je suis très excité
à ça
je l'ai réacté mais
l'effectif de l'algebraie a
mis mon cerveau dans la flèche
il est juste difficile
c'est
comme une réaction avec des dépendances
que vous devez avoir
et parfois vous devez m'en soulever
c'est complexe
et le proche de la drilling est aussi difficile
et si vous ne voulez pas faire le proche
de la drilling, vous devez faire
un proche de contexte
et c'est difficile
il y a beaucoup de choses
qui sont en difficulté de faire
un réacteur correct
c'est comme un réacteur de la vente
j'ai utilisé ça pour 7 ans
mais je l'ai toujours l'aie
et je me sens que depuis 7 ans
avec la technologie je ne devrais pas l'aider
il devrait être comme l'air
une chose basée que je voudrais dire
c'est que quand je pense au futur de la web
je pense que les compilers sont au futur
et que ce que j'ai fait c'est partie de cette histoire
vous pouvez dire
des langues domaines
mais pas forcément les compilers
qui sont une histoire centrale
les assemblées de web sont un truc
plus grand
mais tout le tooling
qu'on a
est en train de l'envers
et maintenant on est en train de faire un JavaScript
pour avoir une meilleure performance
pour les compilers
donc il y a
Lee
de la prochaine team
qui a écrit un article
sur Rust
comme le futur de la web
je pense que c'est tout
c'est un testament
que nous faisons plus de compilers
pour utiliser la web
comme un target
moins que les choses
on doit faire toutes ces choses
je pense
on peut utiliser ça comme un target
je pense que les compilers sont vraiment intéressants
je suis vraiment
attentionnée pour ne pas
faire un compiler
mais je vais en arriver

et je suis super excité
de l'assum
je ne peux pas attendre pour le jour où
tout est en place
en Rust
ou les langues
qui me donnent cette expérience
qui fait un type script
j'adore le type script
je vais le faire
jusqu'à
qu'il y ait quelque chose qui peut remplir tout le type script
ce n'est pas
ce que l'on compile
à un library
ou un horde
mais je veux
avoir
la même langue
jusqu'à un bon reason
pas toujours
toujours plus sur type script
je suis
un grand bet
oui
ok, avec ça
je pense que c'est un bon moment pour transiter
les outils de la tue
donc mon premier outil de la tue
n'est pas vraiment un outil de la tue
c'est juste de parler de nouveaux outils de type script
qui sont
une longue période et vraiment
très bien
donc la première up est le type de la tue
j'ai voulu faire ça beaucoup
beaucoup de fois
j'ai coupé le type fest et les
des réponses de copies et des réponses de
des réponses de stack
enfin, il y a un nouveau type
de type script qui s'est appris
qui s'arrête, qui promet
même des promesses de l'extrait
qui est assez cool
donc vous pouvez avoir le valeur
que le promesse va rétablir
ça fait que c'est beaucoup plus facile
d'extracter les valeurs de la fonction
récent j'ai eu une fonction
que je suis rétourné à un objectif jason
et c'était un promesse
et ce type de type fait que c'est vraiment facile
d'extracter l'interface d'objectif
de la type de retour
donc j'ai été super excité de voir ça
un autre cool qui
beaucoup de gens ont complété
c'est que quand vous upgradez type script
vous aussi vous portez
tous les upgrés de l'alibre
et ça a le potentiel
de break your builds
donc de la version minorite
de type script peut souvent resulter
un peu de choses qui ne sont pas break
parce que ces libraries sont changées
maintenant ces libraries
sont publiées à MPM
et vous pouvez les imposer directement
donc même si vous upgradez votre version
de type script, vos types d'alibre ne doivent pas
l'upgrater donc c'est
un grand bon de productivité
et puis il y a un bunch de cool stuff
l'un que je suis excité de c'est le top level de weight
parce que chaque fois que je jure les scripts
je dois toujours créer une fonction main
dans ma JavaScript
plus de plus, maintenant vous pouvez juste un peu de weight
si vous vous réélisez de la back
ils ont ajouté type imports
mais le truc qui est chiant
c'est que vous avez dû créer un deuxième importe
statement
où il était le seul type importe
maintenant vous pouvez juste mettre
ça directement dans le statement importe
et ça marche
donc ça va faire un peu de code
parce que je ne veux pas voir des lines multiple
importées dans le même module
c'est assez cool
oui
mais
les modules ES
ont plané être dans ce
mais ils ont poussé le pour 4.6
ce que je suis triste de voir
parce que je pense
que c'est bloquer
pour moi le soutien de la vue
pour la thérapie
oui, le module ES est un
bâtiment de la courte
oui
j'ai eu un jour battu avec l'interopposéité
entre l'e-s et l'E-s
et les modules ES
quelques semaines auparavant
c'est un peu par la parallel
avec le Python 2 et Python 3
c'était un truc terrible
pour nous c'est
le module ES
comme l'E-s
il y a des choses que vous ne pouvez pas utiliser
maintenant
comme la faute de la faute
oui, ça s'implique quand vous upgradez la dépendance
et puis c'est comme
oh, ils ont décidé que l'ESM était maintenant
et maintenant je dois ajouter
tout ce que je peux faire pour les configurations
pour se faire des dépendances de l'ES
ou juste rester sur l'old version
oui
donc mon premier tourneur de la journée
est un tourneur appelé T.L. Draw
donc ce tourneur est de Steve Ruiz
donc je suis suivi Steve sur Twitter
pendant un temps
son feed Twitter est
juste un delight
parce qu'il a montré ces petits gifs
de
Helm
avec des experiences UX
des expériences tinyues
oh, qu'est-ce qu'il faut remettre
ces groupes de choses
ou comment se comportent ces choses
quand vous les movez
c'est un joyeux de voir T.L. Draw interpréter
et il a finalement sorti
il y a une extension de code
que vous pouvez utiliser
pour avoir T.L. Draw en bas de votre browser
vous pouvez penser à
T.L. Draw, comme
oh, je voulais juste aller blanc
qu'est-ce que l'autre...
Excalidraw
vous pouvez penser à T.L. Draw comme Excalidraw
il a un peu de similaires
c'est comme une application très simplitaire
juste pour faire des choses
ça marche bien sur mobile
mobile web
c'est bien
j'ai un multiplayer, c'est une expérience
très delightante
et si vous allez au feed Twitter
et regardez
toutes les petites
iterations qu'il a fait
pour faire des choses bien
je veux dire, c'est un travail très bien
Steve est excellent,
cette libraire est excellente
et si vous avez vraiment, vous devez
le soutenir
la même chose, c'est comme si vous avez
beaucoup de gens qui travaillent sur ce
très excellent, tout le temps
vous devez le soutenir
c'est comme si c'était un T.R. PC
vous avez l'air, vous devez le soutenir
je ne sais pas ce que c'est
mais je suis sûr que c'est assez
sur le podcast, un couple de fois
déjà
Prisma, j'adore ça
surtout si vous travaillez avec
T.R. PC ou Graphical
type safe stuff
Prisma est un ORM pour
MySQL et Postgres
et je pense que c'est un support
mais c'est pas vraiment un
conventionnel en ORM
parce que chaque query que vous faites
vous vous donne un objectif pour que vous ne
ne puissiez pas performer des opérations
donc c'est un build-up en query
mais ils le n'ont pas, parce que c'est plus facile
et ils ont beaucoup de bons outils
pour faire votre modelling de data
et automatiquement
générer un SDK pour votre database
c'est vraiment bien à utiliser
avec T.R. PC
vous vous devez retourner à cet objectif
et vous pouvez utiliser ça en frontage
et si vous changez votre database de migration
vous pouvez mettre un REST à l'avant
et tout le temps
c'est une bonne expérience
pour travailler avec Prisma
mon préféré
c'est les migrations hassle-free
parce que nous ne avons
pas ça dans notre code base
et je dois vraiment faire un down
pour migrer
et parfois le down est
très intense et je ne suis pas
le plus versé dans ce sequel
vous pouvez le faire aussi
je l'ai écrit un complexe
postgres, migration
et comme...
c'est le grand chose
mais Prisma
vous n'oubliez pas comment faire le sequel
parce que
vous n'aurez jamais
pu faire un outil de ce qu'ils ont fait
de l'autre côté, qui je n'ai jamais fait
avec un autre ou...
les meilleurs outils que vous ne vous devez pas
un autre gros shoutout
à la Prisma Team
ils ont un bon service
ils ont leur own schema
où vous vous disiez
les relations
si vous avez une relation
si vous avez un type
qui a
de l'autre type
ou si vous avez un type
de relation
il va automatiquement
se remplir
c'est magique
c'est si cool, j'adore
oui, l'expérience édite est si forte
j'adore
c'est juste le travail
j'ai eu très peu d'issues
avec ça
mon dernier outil pour le jour
est NextAuth
Auth est
un peu de pain et un hâte de setup
mais j'ai fait un tour de la bibliothèque
de temps pour ajouter
l'authentification de mes applications
et c'est juste si facile
maintenant j'ai une app
Pitchforkify
qui fait des reviews
et connecte-la à Spotify
c'est facile de l'écouter
j'ai eu un provider Spotify
j'ai eu mon auth en 10 minutes
comparé
à la fin de l'authentification
si vous avez besoin d'authentification
j'ai eu de la suite
NextAuth
un autre type qui a été élevé
par Bercel
d'ailleurs
ça fait du sens
c'est tout le monde
c'est le plus facile de l'authentification
de la mobilisation
de Bercel
oui exactement
je me demande
et j'espère
que plus de compagnies en YOKISOSM
suivent la suite
parce que l'une des meilleures ways
d'amuser les gens qui ont l'authentification
est de l'assurer
d'avoir le droit
de leur faire le travail
pour que ça puisse devenir
une relation non exploitative
et qu'ils puissent continuer de faire leur chose
j'aimerais voir plus de ça
c'est mieux que de donner
10 000 $
parce que le dernier jour
c'est super
mais pas beaucoup
je dois vivre
si c'est monthly c'est bon
si c'est monthly c'est bon
oui
il y a des gens qui font
un bon bank sur l'open source
c'est possible
mais l'amount de gens est très petit
tout ça
par name
quelqu'un comme Evan Yu
qui peut sustainement vivre
où il y a des gens qui ne peuvent pas
ils font des paupers
oui on peut pas être syndrome
je sais que si je voulais
j'aimerais construire des outils
parce que j'ai un choc
un choc pour quelque chose que je veux utiliser
donc je n'ai pas besoin de utiliser le tour
d'une ou deux
oui
ça dépend de tout ça
ok
mon dernier tourneau de jour est
un library qu'on a étendu
c'est un co-share
c'est essentiellement
une application qui fait que c'est vraiment facile
d'être en synchronisation
d'un client
c'est un problème difficile
il y a beaucoup de libraries
qui ont été en cours pour se résoudre
et en fin de jour
il y a des shares
je ne sais pas si quelqu'un l'a utilisé
mais il y a beaucoup de research sur les rdt
et tous ces mécanismes
pour faire ce genre de choses
c'est vraiment très difficile
un co-share library est bien
parce que ça donne une interface
relativement facile
pour juste le faire
et faire ça en front de l'app
et faire ça
encore une fois
si vous avez un système de temps en temps
il y a toujours des trahées
et des constraints
pour que ce soit pas solide
tout ça
il y a des applications
de interfaces networking
par exemple
un interface de Socket I.O
qui a beaucoup de gens qui font des jeux multiplayer
et le système de note
et qui ont été utilisé comme Socket I.O
donc
il y a des complexes
mais c'est un
un bon moyen
pour faire un multiplayer
pour faire une collaboration en temps
c'est un truc qui vous intéresse
vous pouvez le voir
ce package de 2 simples pierres
ça semble intéressant
c'est très cool
je veux le voir
plus de tutoriels
c'est ça pour cette semaine
c'est un épisode de DevTools FM
merci beaucoup Alex pour votre commentaire
on tend à parler de la front-end
c'est très bien de parler de la back-end
merci
c'est vraiment plaisir de vous en être
j'ai vraiment aimé
si quelqu'un veut
parler de la tutoriel
je vous aime
j'espère que vous allez bien
et si quelqu'un veut parler de la tutoriel

je vous appelle juste
Twitter DMs
ou Twitter public
j'ai hâte de vous aimer
c'est moi
la nature online de tout le monde
c'est tout pour cette semaine
merci pour l'alimentation
merci

Episode suivant:


Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

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
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere