Sabin Adams - Prisma
Durée: 42m38s
Date de sortie: 12/05/2023
This week we talk to developer advocate Sabin Adams about Prisma, an ORM with a focus on type safety and developer experience. We delve into the benefits of Prisma, how it works, and all the cool features it has to offer.
- https://twitter.com/sabinthedev
- https://www.sabinthedev.com
- https://github.com/sabinadams
- https://www.linkedin.com/in/sabin-adams-656261122/
Become a paid subscriber our patreon, spotify, or apple podcasts for the full episode.
Avec Prisma, c'est tout dans un endroit, donc dans un seul repository,
vous pouvez définir ce modèle de données, vous pouvez générer ces types,
et vous n'avez pas à changer de choses dans des zones disparates,
juste pour donner une belle saison.
Hey, avant de commencer, j'aimerais vous rappeler que le tout épisode
est seulement disponible pour nos abonnés payés.
Les plateformes currentes que vous pouvez abonner à nous sur notre Patreon, Spotify et Apple Podcast.
Dans le tout version de cet épisode, nous parlons de la saison et des opinions sur la saison type,
Prisma Studio et, bien sûr, tous nos tips de l'application.
Et avec ça, on va commencer l'épisode.
Bonjour ! Bienvenue au DevTools FM Podcast,
ce podcast est de développeurs et les gens vont les faire.
Je suis Andrew et je suis ma co-host Justin.
Hey, tout le monde !
Aujourd'hui, notre guest est Saban Adams.
Saban est un avocate de développeur à Prisma,
et nous sommes vraiment très heureux d'avoir vous sur Saban.
Mais avant de nous dédiver aux questions,
Would you like to tell our audience a little bit about yourself ?
Oui, sure.
Comme vous l'avez dit, je suis Saban Adams.
Je suis un avocate de développeur à Prisma,
pour un an, un an, un couple of months.
C'est été super, c'est été cool de dédiver dans la communauté
et voir ce qui se passe dans le space.
Quand vous travaillez comme un équipe d'ingénierie,
c'est difficile de voir ce grand public.
Mais c'est cool de voir ce qui se passe.
Je suis content d'être ici avec vous.
C'est cool.
Vous n'avez toujours pas été un avocate de développeur ?
Comment avez-vous été en train d'engénierie
et de la promesse de votre transition
dans l'advocation de développeur ?
Oui, je suis en train de développer le software avec mon père.
Il était un développeur depuis que j'étais petit.
Nous avons vécu des jeux de plus en plus.
Et puis, je suis arrivé à la collège pour la biologie marine.
Et en demi-levé, j'ai décidé de faire un code.
J'ai fini de faire de la collège et j'ai travaillé dans
différentes positions, en faisant front-end,
en bas de la développement de la construction de la construction
de la devop.
J'ai été dans le terrain.
Et après 9 à 10 ans,
j'ai commencé à réaliser
que beaucoup de ce que j'ai aimé
était de passer à la équipe, documenter les processus,
de donner des technologies pour les équipes,
de poursuivre les compagnies,
et de réaliser que la devop est une grande transition
pour faire plus de ça.
C'est de cette façon que je pouvais faire
des trucs créatifs,
et aussi de la technique de la coding.
C'est génial.
Je pense que le fait de trouver
ce genre de naturalité
sur une équipe,
c'est, j'espère, où nous allons tous dans notre career,
de trouver la chose qui nous donne
beaucoup d'énergie.
C'est génial, comment vous et votre père
ont été dans la coding.
C'est génial.
Je pensais juste que le dernier jour,
mes enfants de futur,
si j'avais été dans la coding et leur ai dit
qu'ils allaient aller à la collège,
je leur ferais aller à la collège pour la coding.
Ma réaction de gout
serait de ne pas.
Je pense que vous avez eu la même réaction de gout.
Qu'est-ce que vous voulez originalement faire
avec ce genre de degree?
Qu'est-ce que c'est le final?
Je veux la coding, on va juste aller à la collège.
Je
j'aime les rèvres coraux
et tout ce qu'on a à faire
avec les rèvres coraux.
J'étais en train de faire une biologie marine
pour rejoindre la lab de recherche,
et de faire des effets environnementaux
sur les rèvres coraux.
Et après avoir
une collège pour un peu de temps,
et après avoir dépassé un autre,
le premier partenariat de la department de biologie marine
m'a dit
que vous ne pourriez pas
avoir un travail à la lab
parce qu'il n'y a pas de demandes pour ça.
Vous serez probablement un professeur.
Et à ce point, c'était un peu un bummer,
mais j'ai continué de faire ça.
Et puis, j'ai fait un peu de développement
de la software sur le côté, juste pour le plaisir.
Et j'ai commencé à avoir des affaires
de travail qui étaient déjà
atteints de l'aéroport
que je n'aurais pas pu avoir après des années
de travailler en biologie marine.
C'était un genre de chose
où c'était un choix difficile.
Je me suis dit, je suis tenté de liker
ou je me suis dit, je suis fait faire quelque chose de toujours.
Et je me suis dit, je me suis dit,
après avoir parlé avec un couple de gens,
j'ai décidé de faire le développement de la software.
C'est une décision difficile.
J'ai eu quelques amis à la collège
qui étaient dans la même boite.
Je savais déjà comment faire un travail
à la position de la position d'entrée.
Ils étaient déjà en train de faire
des sciences de computer. Ils m'ont dit,
qu'est-ce que je fais ici? Et ils ont
fini par se dépasser.
On va retourner
à Prisma, le développement de la
advis-casseille un peu plus.
Qu'est-ce que Prisma
et pourquoi je ne veux pas utiliser?
Prisma est un couple de choses.
On s'est révolu récemment.
Cette question est un peu plus drôle.
Dans le passé, on a été primairement
prospérés comme ORM.
C'est encore notre offering primaire.
On est un ORM d'open source.
Notre objectif est de
l'expérience de développement,
ainsi que de la sécurité type.
Ce que nous nous permettons
c'est de vous définir
votre schéma database.
Nous vous permettons de
faire des migrations,
de la query database,
de faire des opérations
contre votre database,
ainsi que des queries rares.
Nous avons
spécifiquement construit
ceci pour que l'on soit
un des choses qui resultent
une expérience de sécurité type
dans une application de type.
Comment est-ce que
vous comparez avec
les choses traditionnelles?
Je suis créé un database
de NoSQL sur Mongo.
Comment est le workflow différent?
Le workflow est différent.
Ce qui fait que
ceci unifie
le whole database
qui est installé.
Avec Mongo,
ce n'est pas si grand-mais
un deal,
il n'y a pas de schéma.
Mais avec un database
traditionnel,
vous devez définir
votre schéma.
Vous devez
définir votre schéma
dans votre application code
en utilisant
un type de langage type
pour définir
ce que votre schéma
semble dans le database.
Si il y a des changements
dans ce schéma,
vous devez aussi faire
des mêmes changements
pour la représentation
de votre code.
C'était nécessaire
pour obtenir
cette sécurité type
précédemment
dans les ORM.
Il y a quelques outliers
qui ont découvert
des choses plus
détails
que nous faisons maintenant.
Mais pour la plupart,
c'est pour ça que vous devez le faire.
Avec Prisma,
c'est tout en un endroit.
Dans un single repository,
vous devez définir
ce model de données.
Vous devez générer ces types.
Et vous devez
changer des choses
dans plusieurs
zones disparates
pour obtenir cette expérience.
J'ai toujours aimé
Prisma.
Le tourisme est vraiment
très bien.
Le tourisme de développeur,
surtout
autour de...
Vous devez
définir
votre schéma
et
un type de DSL,
un type de nade, je pense.
Et c'est...
Je ne sais pas.
Le tourisme de ça
était toujours très excellent.
Je me suis inquiétant.
Qu'est-ce que la culture
pour les outils
dans la compagnie?
Comment pensez-vous
dans...
Je ne sais pas.
Qu'est-ce que la expérience de développeur?
Parce que
la interface type est vraiment bonne.
Il semble que la expérience de développeur
est très importante.
Qu'est-ce que la culture
autour de DX
dans Prisma?
C'est
un extrême, je dirais.
C'est le top de notre
mind
dans ce qu'on fait.
En fait,
il y a des choses
que les gens...
Il peut se faire de l'autre manière.
Il peut être un peu de choses négatives,
parfois.
Il y a des choses que les gens
veulent de Prisma
pour soutenir.
On ne le fait pas
parce qu'on essaie de
faire un moyen de faire
avec une expérience de développeur.
On ne va pas
juste mettre quelque chose
à l'intérieur
pour faire le travail
pour les gens.
On veut être bon.
Un peu de gens
que je travaille avec
viennent de backgrounds
en travaillant en dev tooling.
Si ils ne travaillent pas
en dev tooling,
ils travaillent
sur les outils
dans les plus grandes compagnies.
C'est
quelque chose
que tout le monde
pense
et tout le monde
expecte.
On a
des choses
qui sont
aussi importantes.
On a
parlé de
le schéma database
un peu,
mais c'est
intéressant
que Prisma
ne soutienne pas
un type database.
Comment
ça
fonctionne ?
Quels
databases
peux-ils
utiliser ?
Comment
est-il
influencé
ce schéma ?
C'est
une des parts
de Prisma
que
il y a des
scenarios
qui ne sont pas
correctes.
pour la plupart,
le schéma
n'est pas
effectué.
Quand
tu
sèches
ton schéma,
tu
définis
quel
database
que tu
utilise.
Tu
définis
ton schéma.
C'est
facile
de
changer
le
schéma.
Il y a des
features
d'un
database
qui
font ça.
Notre
tooling
vous explique
quand ça
arrive.
Mais
c'est
la même chose.
On
soutient
Mongo,
MySQL,
Postgres,
et
il y a
une
liste
long
et
pas
les
Ordination
sec
American
outsider
A date
rice
Comment vous vous appréciez à la clé de la consistance de la DSL ?
Vous avez des...
Je ne sais pas, des sortes de...
des guidelines ou des règles que vous avez réveillées.
Nous faisons ce qu'on fait quand nous avons des nouvelles features
ou nous pensons sur la consistance des databases et tout ça.
Oui, oui, oui, c'est certain.
En fait, notre équipe d'ingénierie est coulée
dans un bunch de petits équipes d'ingénierie qui ont des focuses spécifiques.
Et nous avons un entier équipe d'un couple de personnes
qui sont complètement focusées sur les changements de la language de schéma.
Donc si quelque chose ne nécessite pas de changement de la language de schéma,
ça va par là, ils font des spectacles et des spectacles.
Nous vérifiquons que ça ne va pas briser quelque chose qui existe déjà.
Et la forme de ça est quelque chose que nous avons très bien réveillé.
Prisma, si vous voulez,
vient très bien de la background de GraphQL.
Et nous essayons de traiter le schema de Prisma
et de traiter le schema de la même manière que les schémas de GraphQL
étaient traités avant, où il y avait un certain nombre de règles
que vous avez pu garder.
Et vous n'avez pas vraiment changé
si c'était absolument nécessaire d'adresser un nouveau feature.
Donc l'un des choses que j'aime de la schéma de Prisma
est comment est-ce qu'il est automatique.
C'est la première fois que j'ai utilisé ça,
j'ai été un peu détenu,
que comme je l'ai édité,
c'est juste de connecter tous les modèles pour moi.
Vous avez vu des situations où ça fait plus de choses,
je pense,
que ça fait du bon connecteur,
ça fait du bon connecteur,
ça fait du bon connecteur,
ou peut-être que ça a même hâte de se faire?
Honnêtement, je n'ai pas vu ça comme un bon connecteur.
Je n'ai pas trouvé un scénario où quelqu'un a sorti de complémenté
que le tool sous la hood avait fait des choses pour eux.
Il y a des requirements de data qui sont très méchants,
où vous devez avoir des tables de jointes spécifiques,
vous devez avoir des choses en fonction de la façon spécifique.
Et même là,
vous pouvez toujours représenter ces choses dans votre schéma de Prisma.
Ça peut être différent de ce que nous avons dans nos docks,
mais il y a presque toujours une façon
de mettre vos données sur comment vous avez besoin.
Oui, c'est vraiment cool.
Donc,
pas pour aller trop loin,
mais vous êtes en train de travailler sur quelque chose de nouveau,
c'est avantageé sur le site.
Donc,
qu'est-ce que Prisma accélérera?
Vous pouvez nous donner le scoop?
Oui, Prisma accélérera,
je pense que pour quelques contextes,
nous avons ce qu'on appelle Prisma Data Proxy.
Et ça est déjà out et disponible pour les utilisateurs.
Et ce que ça vous donne, c'est
un pool de connecteur,
pour que, d'un service ou d'un environnement de la salle,
vous puissiez connecter avec ça,
comme un service à accélérer
les données traditionnelles et non-scalées
de la salle,
où vous devez aller à l'infinité.
Ce qu'accélérer fait, c'est que
ça s'étend,
pour les gens,
qui travaillent à l'extérieur,
où,
quand vous connectez à l'accélérer et que vous vous rassurez,
vous pouvez définir,
sur une base per-query,
comment vous voulez que la data soit cashée.
Et pas seulement est-ce cashée,
mais c'est cashée globalement,
sur la salle de cloud,
sur la salle de worker.
Donc,
ça vous donne vraiment, vraiment,
des queries sub-10ms pour la plupart,
je le dis pour la plupart,
parce que c'est, parfois,
même signifiquement moins que 10ms,
sur l'extérieur,
qui est,
plus ou moins,
de cette façon,
parce que, nous considérons,
ceci est un cash spécialisé,
où vous ne vous arrêterez pas
tout ce qui se passe
dans et de l'infinité de la salle de query,
mais vous vous arrêterez différemment par la salle de query.
C'est vraiment cool,
ça me rappelle,
je pense que la scale de planètre
a un genre de feature similaire
qu'ils ont fait,
comme un global query optimiste.
Et,
juste,
pendant la note,
quelque chose que j'ai toujours demandé,
et nous avons demandé
beaucoup de tools de salle de query,
surtout ceux qui font beaucoup d'open source,
et quand je pense à Prisma,
je pense à cette histoire riche,
d'open source,
comment se pose Prisma
en position de la salle de query
pour être
une organisation profitable,
parce que ces tools de salle de query
sont tous géniaux,
mais vous avez à payer des gens de salle de query.
Donc, c'est comme,
ce que vous faites pour garder les lits,
qu'est-ce que c'est un ordinateur de product?
Oui, donc,
à l'heure de ce que nous avons été
fondés,
nous avons un ordinateur
de investisseurs
qui ont vu notre vision,
notre vision de nos produits
en passant,
et qui ont traité
que nous allons construire,
et ça a été vraiment cool.
La plateforme de data
que je m'ai mentionnée,
et qui accélérera nos exemples
de produits payés
qui vont être en place,
et c'est là que nous allons commencer
à générer des incomees.
Nous avons déjà été,
parce que c'est vraiment cool.
Nous avons un plan
devant nous
pour élevéter
un couple de différents produits.
Je suis très fort pour les mots,
parce qu'ils sont très secrets
à ce point,
mais nous avons un couple de choses
qui sont en place.
Ce sera
sort de nos moniméras,
nos plus commerciaux,
les offerts,
et c'est très excitant,
et beaucoup de cool choses
qui sont en place.
Je pense que
l'opération serverless
est une grande première étape,
parce que nous avons eu
un peu de services
des gens dans le passé,
et je me demande
qu'est-ce que vous utilisez
pour votre database,
et c'est comme, oh, oh, oh,
et puis ils commencent
à parler de faune,
ou quelque chose
qui est comme,
une nouvelle database,
et c'est comme,
oh, c'est un grand lift.
Le fait que c'est un moyen
d'aider à faire ça
maintenant,
c'est un bon.
Je personnellement
ai un site où je suis comme,
OK, on va essayer le service,
et puis on est arrivé
à la fin, et c'est comme,
oh, non, les connections,
comme, j'avais hâte
de se prévoir pour ça.
Comme un développeur
à la front, je ne savais pas
que c'était un problème
qu'il y avait un limiter de connections.
Donc, des outils comme ça
ont vraiment aidé
les développeurs
avec leur quotidien.
Oui, pour sûr.
Et puis, c'est quelque chose
qu'il n'y a pas de gens
qui pensent que,
comme vous l'avez dit,
si vous travaillez
sur un projet de greenfield,
c'est bien de commencer
avec un nouveau database
de service,
mais si vous êtes
une company existing
et vous voulez
vous mettre en place
dans l'industrie
et vous vous mettre en service,
si vous avez
un database traditionnel
et relationnel,
c'est pas vraiment,
c'est possible maintenant,
mais c'est pas très bon.
Donc, c'est,
oui, c'est un
truc d'excité
qui se fait,
il y a un peu de room
pour le développement
et il y a un peu de room
pour l'expansion,
je pense,
dans cette partie
de l'industrie.
Oui, c'est assez excitant.
Une des choses
que j'aime
sur les outils de dev,
les entreprises, en général,
c'est parce qu'ils se concentrent
beaucoup
sur l'expérience de développement
et ils sont généralement
focussés sur quelque chose
comme ça.
C'est comme,
on va faire ça facile
pour les outils de dev,
mais ensuite,
en tant que
des parts difficiles
sont comme opérations,
c'est comme
l'infrastructure de management
ou comme la set-up
de choses,
on fait des intégrations
et sort de
Vercel a eu
leurs grands annonces
cette semaine,
il y a des sortes
de données,
des options
et des offens.
Et cette intégration
de la tite intégration
est si importante
et comme,
en tant que
d'expérience user,
je pense qu'il y a
encore des opportunités
là-dessus.
Je suis heureux
de voir ce que vous faites.
Oui, pour sûr.
Pour sûr.
Alors,
on va voir
comment Prisma
peut aider
avec votre expérience
et de développement
avec votre base de données.
Donc,
en général,
il y a deux manières
d'avoir des types
de quelque chose
qui n'est pas,
il y a vraiment
une façon
d'avoir des types
des types
qui n'est pas type-script.
Et c'est code-gen.
La
autre
façon que vous pouvez
aller avec ce type
de choses est
d'utiliser un API
où vous
kind de
construire votre
définition de données
avec type-script
et maintenant,
vous n'avez pas
d'une génération.
Donc,
ce que vous voyez
c'est les pros et cons
vers les codes
de génération
vers les
construire un type-script
interface
qui suit la situation.
Oui,
il y a un couple
de pros et cons
et nous avons vu
que les gens
prennent ça en
nos issues de GitHub.
Nous avons pris
la route de génération
où,
quand vous faites
des changements de données,
ça va générer
un client Prisma pour vous
et ça
génère ça
dans notre module Node
pour que vous puissiez
importer
comme si
vous importiez
d'autres libraries.
C'est
bien et malin.
Je pense
que les parts
de la bonne part
sont que vous avez
une bonne expérience
que vous avez
avant
où vous pouvez importer
pas de
un filo-path
dans votre library,
mais vous pouvez importer
directement
en utilisant
le folder de Node
que c'est le default.
Le
consécutif est
que c'est pas
stocké avec votre code.
Donc,
quand vous le
déploiez,
par exemple,
sur Versel
ou si vous déploiez
je pense que
Netlify
a un même issue.
Ils
vont
préemptivement
cacher les modules
pour que
les déploiements
ne soient pas regenerés,
re-déploient,
ce qu'ils ne doivent pas.
Et parfois,
ce qui a été le cas
a des problèmes avec le client Prismat,
car c'est
généré dans votre module Node,
donc vous devez
utiliser
une version ouvelle.
Nous avons récemment fixé ces issues,
mais les choses comme ça
sont
juste
problèmes
qui se sont révisés.
Sur le même
train de issues,
le même chose
se passe
avec des
des
modérations.
Donc,
par exemple,
quand vous utilisez NX,
vous devez définir
une certaine
ouvelle pour que vous soyez
généré,
donc ce n'est pas
généré dans les modules Node.
Donc,
je pense que c'est
une manière longue de dire
que
la code générant
a des compliquations
que vous ne vous espérez pas.
Alors,
si vous avez
une définition
d'exploitation
qui sort de votre base de code,
et que vous devez
ne pas le changer,
ce qui est cool,
c'est que
le système pluggable
Prismat
a été construit
par des générateurs
de la communauté
Prismat
donc,
quand vous générez Prismat,
le client va aussi
automatiquement générer
des types pour vous
à l'aide de tout.
C'est vraiment cool
parce que ça vous permet
de générer ces types
et même peut-être
de les publier
dans un package de
NPM
que vous pouvez
ensuite mettre
dans un client
ou un autre client
que vous utilisez
et de l'utiliser
de cette type de sécurité.
Donc,
il y a des cons pour les pros
pour les deux.
C'est juste
vraiment dépendant de
ce que votre équipe aie
et ce que vos requises
sont.
Oui,
l'un des les plus grands
bénéfices de la génération de code
est probablement
que les migrations
ne pourraient pas vraiment
être possible
si cela a été
défini
par la code.
C'est beaucoup plus simple
que, oh,
on a un schéma
qui est turné
dans le schéma 2,
il faut aller du schéma 1
dans le schéma 2.
Exactement.
Et,
je veux dire,
vous avez explicitement
dû faire de la génération de code
parce que
la
language de la génération
est basée
sur un DSL,
donc, c'est comme
que vous avez à générer
quelque chose.
Mais,
je pense que
ce que je fais
c'est une bonne
traduction,
à moins en mon expérience
de
utiliser
Prisma.
C'est comme
le schéma
qui est assez simple
de rappeler votre tête
autour.
Le tourneur est
assez solide,
comme Andrew
disait,
c'est comme
automatiquement
completé.
C'est comme,
oh,
oui,
ce filtre est connecté
à ce filtre.
Vous avez un
de la plus grande
relation
ou un de la plus grande
relation
ou quelque chose.
Et puis,
le code de
génération
se sent naturel
comme ça.
Oui,
on a vu
quelques différentes fois
où
les discussions
ont dit,
je ne veux pas
de la génération de code
parce que c'est le schéma.
Je ne veux pas de la schéma,
donc je vais
changer
d'autre.
Et puis,
souvent,
il y a des temps
qui vont venir un peu plus tard
et vont dire,
oh, c'est cliqué,
je le fais maintenant,
j'aime.
C'est comme,
c'est la chose où
c'est un shift de mind
parce qu'il n'y a pas
beaucoup d'autres gens
qui font ce truc maintenant
et vous devez vraiment essayer
et travailler avec ça
pour réaliser les
bénéfices que vous avez
mises.
Oui,
quelque chose de toujours,
en regardant le comparaison
avec GraphQL,
quelque chose de toujours
apprécié à GraphQL
c'est que
vous définissez
votre whole schéma
sur le service
ou quelque chose,
et vous avez
cette représentation complexe
de la réalité,
mais ça génère
ce document
vraiment bon pour vous.
Et
il y a des gens qui ont fait
un schéma
en anglais
qui génère
des handlers
et tout,
et ça a été très compliqué.
en général,
je pense que
juste avoir un artifact
que vous pouvez regarder
et très bien
et surtout
sur un
petit réel
de la réalité,
voir ce qui se passe
et voir les relations
entre les choses,
c'est énorme.
C'est énorme
parce que
le code est
écrit pour être écrit.
Donc,
c'est énorme.
Absolument.
avant de travailler
à Prisma,
j'ai travaillé
à une compagnie
et nous étions
des services micro
et
tous les gens
ne rassurant
des typescript
et nous
l'avons utilisé
Prisma.
C'était vraiment cool
parce que
quand les nouveaux développeurs
sont venus
ils pouvaient
juste ouvrir
nos schémophiles
et généralement
voir que c'est
ce sort de data
que ce service
utilise.
C'est comme ça
que ça s'y rapproche.
C'est tout en 1 page
où
vous pouvez faire
ces connections
vraiment facilement.
Donc,
parfois,
nous devons
donner à un
manager
qui veut
voir
quel data
nous avons
accès
dans le service
et ce qui
s'y rapproche.
Et avec
le schéma
et des commentaires
dans le code,
c'était facile
pour même un
non-technique
pour aller
et voir
ce qui se passe.
C'est comme vous vous dire.
Il y a beaucoup de buzz
qui se passe
vers le vers le moment
et surtout
au suivant.
Vous savez,
en faisant
nos soucis un peu
ensemble,
comment
a-t-il
Prisma
pensé
en
type de santé
si et si
et avec
ces
nouvelles
frameworks
ou
nouvelles
frameworks
comme remise
et au suivant.
Ce genre de
prochaine génération
de la
fréquence
l'infopreneur.
Qu'est-ce que votre stratégie
pour l'intégration ?
Oui,
l'intégration
en fait,
on n'a pas
de la
partie de la
région
parce que
même si vous regardez
les stocks
remise,
Prisma
a
déjà
été
en train
de
la
type de santé
qui
fonctionne
par la nature
de la
structure.
Nous avons
dû
faire attention
à ces
nouvelles paradigmes
de
déployement.
C'est
la
partie
les models
de déployement
en
de
ré-définir
les
produits
et
les
programmes.
Quels
types
de
déployement
en train
de performance ?
avez
vu
quelques articles
que j'ai
réellement
sur
comment
nous avons
changé
Prisma
pour
être
plus
performant,
surtout
sur les
co-starts.
Prisma
a été
construit
en
plus
en
de
produits
qui
ont été
réellement
en train
de
ré-définir
les
qui
réellement
de
ré-définir les
produits
et
ré-définir
les
produits.
Je n'ai pas
tout à l'heure.
Oui.
Je n'ai pas
pas
l'air
de
le
temps.
Mais je
m'en souviens
de
l'histoire
de
ce point.
Oui.
Une
piece de
démonstration
de
la
ce
point.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
Oui.
portant plus de delighted quires.
fac next
T
ce
hyper
de trouver la bonne balance et la meilleure de tous les mondes pour que les deux puissent bien.
Je sais que c'était probablement une réponse plus longue que ce que vous avez regardé, mais c'est notre objectif.
C'est toujours un trait de la ORM. Il faut either construire l'interface
comme un quadrice de builder, ou un rappeur thin sur SQL. Ou,
vous devez faire des problèmes de performance, car c'est difficile de les avoir.
C'est intéressant de voir. Juste une question générale,
ce que vous pensez être des choses vraiment intéressantes ou vraiment
underadvertisées aux features de Prisma ? Qu'est-ce que vous vous sentez vraiment
jaz, que vous ne sentez pas que les gens ne le savent pas ?
Oui,
ceci est quelque chose que je pense que les gens savent, mais ne l'utilise pas.
C'est des transactions interactives. Pas beaucoup de tools,
en fait, si vous allez autour et regardez les autres ORMs qui sont en train de se faire
pas beaucoup d'eux vous permettent de faire des transactions interactives.
Et je me sens comme le fait que nous offrons,
ce n'est pas assez, il faut l'adverter plus, pour que les gens s'en réalisent.
C'est pourquoi vous devez avoir besoin de transactions interactives, car ça peut vraiment
vous sauver beaucoup de choses.
Donc, nous allons commencer ici. Je n'ai aucune idée de ce que l'interact de
transactions est. Pourquoi j'ai besoin de ça et comment est-ce cool ?
Oui, donc les transactions interactives permettent de bâtir différents sets de
queries dans une grande query qui peut être roulée si elle ne faise.
Donc, dans cet sens, c'est-à-dire que vous avez un flow de signup,
vous vous envoyez un user, vous vous envoiez un email et peut-être vous
portez un couple de choses, peut-être vous updatesz des analytiques dans votre
arrière et ça va être allé dans une série de différents queries.
Mais si quelqu'un des ces deux défauts ne faise, vous ne voulez pas que ça soit
possible. Donc, ce que vous pouvez faire avec ceci est que nous avons une
function de transaction interactives où vous pouvez passer un callback,
basically, vous pouvez râler un set de queries prismes. Vous pouvez faire
une logique de application dans le JavaScript,
pour évaluer les valeurs, massager votre data et puis évaluer plus dans le database.
Et puis, si quelque chose ne faise, il y a un piece de rollback qui peut être
dit, ok, tout ce que je vous ai dit, ne le fais pas plus.
Donc, ça vous permet de la flexibilité pour bâtir plusieurs opérations.
Et aussi, car ça fait que vous avez un transaction individuel, si vous
faites un massupdate ou quelque chose, et vous allez être évalué beaucoup de data,
vous pouvez râler dans une des transactions, de cette manière, ce n'est pas
un bunch de
un bunch de queries consacrées, en faisant beaucoup de vos IOs. C'est
plutôt juste une grande transaction pour le database.
Ça fait du sens ou est-ce que ça vous fait que ceci est confusant ?
Oh oui, ok.
Oh, ça a fait un peu de sens. Je pense que j'ai utilisé ces deux avant,
dans notre code base. C'est juste un tas de postgres.
C'est ce que je les ai mis.
Oui, je vois comment ces sont super utiles.
Si vous faites un bunch de choses dans un rôme, il y a une grande chance
que les choses vont changer d'une certaine façon.
Est-ce que vous vous donnez des outils pour aider à me faire
me faire couler dans cette direction ?
Comme une rôme de l'ESLint qui est comme, oh, vous avez appelé le database 3 fois dans un rôme.
Utilisez une transaction pour moi.
Nous n'avons pas, en fait, un petit plugin de l'ESLint,
en fait, c'est en train de faire le travail.
On a un couple de personnes en travaillant sur ça,
et maintenant, c'est dans ma propriété.
Je n'ai pas vraiment fait trop de choses sur ça.
Mais ce que nous cherchons, c'est de vous donner beaucoup de choses.
Un bon exemple est que,
quand vous faites un Create avec Prisma,
par défaut, il vous rétourne tous les fields que vous avez créés.
Si vous travaillez, et bien sûr, vous ne l'avez pas,
mais si vous travaillez dans une compagnie qui a un table
qui a 100 fields,
qui est plus commun que vous pensez,
et vous créez un record,
vous ne voulez pas nécessairement envoyer
tous les 100 fields sur la chaine.
Donc, le plugin de l'ESLint,
que nous avons pour ça,
vous dit que, quand vous faites un Create,
vous devez vous donner un statement de sélection
et vous choisir ce que vous voulez.
Donc, nous avons des choses,
mais rien ne va pas au niveau des transactions.
Nous sommes en train de définir ce que nous voulons faire avec ça.
Ça semble être un bon start,
parce que, comme je l'ai dit déjà,
je suis un développeur de la frontière,
et je ne vais pas penser à n'importe quoi.
C'est un point de vue que nous essayons de faire
quand nous avons des APIs et tout.
Nous voulons assumer que le développeur
ne sait pas ce qu'ils font,
ce n'est pas le cas,
mais même quand vous savez ce que vous faites,
c'est aidant de l'assumer que vous ne l'avez pas.
Oui,
je veux dire,
faire le bon travail par default,
donner des bonnes réponses,
et dans le cas commun.
Oui, c'est cool.
Oui, je pense que
un autre fonctionnement
qui est plus ou moins prismatisé,
mais je pense que ça me fait vraiment exciter
est nos extensions prismatis.
Ça sort de l'expérience sur ce que le mode de mode
était pour le client prismatisé,
et vous permet de l'extender à l'écran.
Donc vous pouvez ajouter vos fonctions,
vous pouvez ajouter vos propres séries.
Dans le passé,
vous pourriez avoir des fonctions
qui étaient définies dans notre API,
mais maintenant vous pouvez intercepter
ou ajouter à ces fonctions
et créer de vos propres.
Je pense que c'est un feature vraiment cool.
On a vu que les gens ont déjà utilisé
pour créer des trucs cool.
Nous utilisons pour créer
nos extensions accélérées,
c'est tout de même
une extension prismacline
qui est vraiment glorifiée.
Donc ces sont les extensions de runtimes,
à l'écran prismacline.
Donc,
en plus tard,
vous parlez de la construction
des adapteurs
sur le code Gen pour Prisma.
Est-ce que c'est un système de plug-in
pour les mettre dans le generator
ou est-ce que vous faites
votre propre chose ?
Oui, donc,
ce que nous vous permettons
c'est de construire vos propres générateurs.
Le file de Prisma
peut avoir plusieurs blocs de générateur.
Et, en fait,
si vous définissez votre propre générateur
qui correspond à
nos
je pense, les requérements
de notre système de générateur,
ça va automatiquement
passer par tous ces blocs
et générer votre code pour vous.
Ce n'est pas très documenté
maintenant,
c'est pas super bien documenté.
Nous avons un couple
de
vraiment,
je pense,
d'advances à des utilisateurs
qui ont sorti
et ont sorti
comment le système fonctionne
et ont figuré.
Nous devons en avoir documenté
plus.
Je pense que nous sommes
sorti de juste
attendre l'engineering
pour faire sure
que les choses sont
comme,
vous savez,
vont être bonnes
et vont rester les mêmes.
Mais,
oui,
c'est certainement possible
maintenant.
Il y a des ressources
pour vous aider à commencer.
Ce n'est pas
encore dans nos blocs officiels.
Je suis surprise.
C'est comme,
il y a en fait
beaucoup de générateurs.
Oui,
et nous avons
si vous allez sur prisma.io
slash écosystème,
ce serait bien où vous êtes
regardé maintenant.
Il y a un truc
pour soumettre
vos propres générateurs
et les packages
et les extensions
sur le top.
Nous avons beaucoup de choses
dans la pipeline
là-dedans
que nous n'avons pas encore
ajouté
parce que nous sommes sorti
en regardant
à eux.
La communauté est vraiment
comme
en train de prendre
ce futur
et juste l'envoie
comme des places
que nous n'avons pas
à attendre.
C'est vraiment cool de voir.
Est-ce que
il y a des exemples
que vous avez vu
et que vous avez dit
que je ne peux pas
faire ça?
Oui, oui.
Il y a un couple
en fait.
L'un des gens
qui me fait
le plus excité
est que
quelqu'un a
un tour
et une extension
basically
qui vous aide
à générer
le scaffold
pour votre propre générateur.
Donc quelqu'un
c'est un tool CLI
pour commencer
votre propre générateur
et qui vous donne
des docks
sur comment
faire ça.
Donc c'est vraiment
bien.
Nous n'avons pas
pas de
une communauté
qui a pris ça
sur eux-mêmes
et ça serait vraiment cool.
Au-delà de ça,
pour les tools
avec Prisma,
on a
quelqu'un
je n'oublie pas
ce qu'il s'est appelé
maintenant,
je suis en train de regarder
mais
je vais trouver
un autre temps.
Quelqu'un a
construit
un visual schéma
pour le builder
où vous pouvez
basiquement
drapez
et arrêter
les éléments
sur la table.
Et ça
construit un schéma.
C'est vraiment cool.
Ces gens
font de l'amixem.
Quelqu'un autre
personne a
construit
une entité
ce qu'il s'appelle
je ne peux pas
me rappeler
ce qu'il s'appelle
une diagramme entité
où vous pouvez
quand vous générez
un client Prisma
ça aussi
génére un diagramme entité
basé sur
votre schéma
et ça c'est vraiment cool
parce que vous pouvez juste
passer ça
et mettre ça en place
et les gens
peuvent voir
ce que votre schéma
semble.
Ouais, c'est génial.
C'est cool
de voir ce que les gens
font
quand vous leur donne
des plugins
pour jouer avec.
La créativité est
bien.
Vous ne pensez pas
que je veux mon database
ou un peu de plugins.
Ouais, c'est
intéressant parce qu'il y a aussi
des outils de l'autre
qui sont
qui vous permettent
de créer des databases
et tout.
Et parce que la nature
de ce qu'ils sont
construits
et qu'ils sont
concentrés
ils peuvent faire
un peu plus de
des queries
des gens ont
en fait
construit
un schéma Prisma
qui génére
votre définition de
des définitions de
quiesli
et de types.
Donc vous pouvez
utiliser Prisma
et quiesli
ensemble
maintenant
pour obtenir
cette belle performance
pendant qu'on est
encore en train de utiliser Prisma.
Et je pense que c'est cool.
Les gens sont
juste
en train de
utiliser des
et c'est cool.
Oui, en regardant
quelques autres features
que vous avez
qui sont
en prévu
il y a aussi
une search en texte.
Donc,
quel problème
peut-il se résoudre?
Oui,
donc
cela résoudre
le problème
de, si vous imaginez
que vous êtes
en train de
faire une query
et que vous pouvez
chercher
des sub-signes
dans un grand choc
ou
c'est juste un exemple
mais c'est
le plus common
je pense.
Maintenant avec Prisma
client,
vous ne pouvez pas
vraiment faire ça.
Vous pouvez faire des
contains
où vous pouvez
vérifier
les contains
de certains
sujets.
Mais ce
état
comme
un search en texte
va vous permettre
de chercher
dans différents fields
avec
juste des keywords individuels
je pense.
C'est intéressant
parce que c'est un
feature que vous devez
normaliser,
Oui,
oui, exactement.
C'est la raison
que ça a été
long
c'est parce que
nous nous sommes
en train de
différents gens
sur des différents
databases
pour faire
que c'est
en train de
consistant
across
tous les deux.
En tant que c'est
bien,
c'est en train de
faire
ce que nous pouvons
relier.
Mais
ça a été
un peu
pour faire
que tout ce qu'il y a
en train de travailler
correctement.
Et en train de
faire
tout ce qu'on a
across
tous les databases
que vous soutenez
doit être
comme
le grand
challenge
de Prisma.
Oui,
si vous regardez
à
autres ORM
là-bas
dans
le
je pense
dans l'écosystème
ils vont tous vous dire
Hey,
ne supportes pas
nos sequels
et sequels
juste le premier
ou le autre
comme
tout le monde
pense que c'est
une idée
je l'avoue
on le fait
mais je l'avoue
c'est fait
parce que ça a ajouté
beaucoup
à votre
à votre développement
lifecycle
est-ce que c'est
en fin de compte ?
Oui,
mais ça
juste
ajoute
à
combien de
features
ont besoin
de rester
dans la préview
pour sûr
a-t-il ever
arrêté
vous les gars
pour
pour un futur
vous êtes comme
oh,
on peut
soutenir
ceci
sur postgres
mais
il n'y a pas
de la route
pour soutenir
sur ma sequelaire
oui,
il y a un couple
de ceux qui sont
en fait
et je pense
que les meilleurs
sont en fait
documentés
dans le doc
je dois le trouver
mais
quand vous
essayez de faire
quelque chose
qui est supporté
dans une database
et pas
une autre
chose
Prisma schema
va vous dire
hey,
ce n'est pas supporté
dans votre provider de database
vous devez
utiliser
ma sequelaire
pour faire ça
ou quelque chose
oui,
ça fait sens
je veux dire
c'est une trade-off
que vous devez faire
je pense que
c'est vraiment
fascinant
que vous pouvez
soutenir
beaucoup de databases
de toute façon
comme
c'est un
non trivial
pour faire
oh oui
oui
notre équipe d'ingénier
est
fantastique
c'est génial de voir
eux en travaillant
ensemble
et en travaillant
sur ces issues
c'est aussi vraiment cool
de voir
la collaboration
qui a été élevé
avec d'autres
plus grandes entreprises
comme Mongo
Cockroach,
DB
des choses comme ça
si on trouve des choses
qu'on doit soutenir
qui n'est pas supporté
encore
ces entreprises
ont été
très ouvertes
pour nous
en dire
des choses
et ils vont
simplement
tomber
sur le site
pour nous
donc c'est vraiment cool
qu'est-ce qu'il y a pour Prisma?
Qu'est-ce que vous vous planez?
Comment vous allez changer
l'industrie?
oui,
donc
il y a eu un couple de choses
que nous avons élevé
sur Twitter
vous pouvez voir
des postes très cryptiques
sur le channel Twitter
où c'est comme un
«gif»
ou quelque chose
où nous parlons
de choses qui sont venus
nous avons un nouveau produit
qui devrait être
disponible
en mai
nous pensons
à la fin de mai
mais
le date est un peu
plus foussé
mais
il est vraiment très proche
et on a vu
beaucoup de gens
croiser
sur ce que c'est
et ils sont
en train de se faire
avec
des
change de détection
sur votre database
donc si vous pensez
sur comment
un base-fire
ou un base-super
fonctionne
où vous avez
ces
belles updates
quand votre data change
nous sommes
dans cette direction
nous avons notre propre
spin à cela
et c'est vraiment
vraiment cool
mais
oui
comme
ce tout
nous lead
dans la idée
de distribuer
les services
où nous sommes
où Prisma est
en train de s'en focuster
donc c'est juste un exemple
d'un produit
que nous avons
dans les works
pour
aider
à democratiser
votre data
dans un système
sorti
distribué
c'est
est-ce que
les notifications d'email
sont comme
dans ma app
je suis
notifié
comme
les updates
ou quoi que vous pouvez dire
oui
donc
c'est
pas la notification d'email
donc ça va être dans votre app
c'est en relation
à la query
et à l'accessoire de votre data
ok
donc
pense dans les lignes de
les websockets
comment vous pouvez
comme
basically stream
des données
et écouter
et abonner
à des choses
pour obtenir des changements
c'est dans ces lignes
je suis très cryptique
j'ai l'amuse
mais
vous le verrez bientôt
c'est très
très cool
awesome
j'ai mon journaliste
sur le nom
je suis digne
oui
oui
ok avec ça
on va faire un transition
pour les outils
c'est tout pour la paix
de l'interview
si vous voulez avoir un
plein de conversations avec
saib
et vous devez devenir
un abonné de page
merci pour l'entendre
ok
ça rafle
pour ces outils
pour cette semaine
merci pour venir
sabin
c'était un bon
apprendre
tout sur Prisma
et toutes les nouvelles choses
que vous avez planquées
ouais
ouais merci pour les avoir
c'était beaucoup de fun
ouais
merci pour les rejoindre
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