David Khourshid - x-state, stately.ai

Durée: 42m59s

Date de sortie: 14/10/2022

This week we talk to David Khourshid, the founder of stately.ai, a company that is building a state machine visualizer and debugger. David is also the creator of x-state, a JavaScript library for state machines. We talk about the history of x-state, how it works, and how it change your code. We also talk about the future of state machines and how they can be used in the real world.

Join our patreon for the full episode.

Twitter
GitHub
Stately
xstate


Tooltips

Want to hear use talk about our tooltips? Join our patreon!

Andrew

Justin

David

L'une des nos plus grands goals et visions est de faire l'application logiciel et collaborer.
Parce que, franchement, maintenant, ce n'est pas ça.
C'est un silo entre des projets de design, des management et des développeurs.
Et il y a une très grosse communication entre les trois silo.
Hey, avant de commencer, on va vous dire à notre store merch. Vous avez des cool tools
FM merch ou même ce type de script hoodie.
Je vous montre comment près de la main, vous êtes avec celui-ci.
Si vous vous souvenez de notre patron, vous avez un code 20% discount.
Maintenant, on va le voir avec David.
Mais, vous vous souvenez, le tout épisode est seulement disponible pour nos membres de notre patron.
Bonjour, bienvenue au podcast de la devtools FM.
C'est un podcast sur les tools de développeurs et les gens qui les font.
Je suis Andrew et c'est mon co-host Justin.
Salut tout le monde, je suis vraiment excité aujourd'hui à vous accueillir David Corscheet,
le founder de Stately et le créateur de X-State.
David, merci beaucoup d'avoir regardé.
Je voulais parler de l'X-State sur le podcast pour un moment,
donc ce sera un épisode vraiment fun.
Avant de nous le dire,
serait-ce que vous voulez nous dire un peu plus sur vous-même?
Oui, bien sûr.
Et merci beaucoup d'avoir regardé.
Je suis vraiment excité d'être ici.
Mon nom est David.
Je suis très récentement travaillé en Microsoft.
J'ai été un développeur pendant 12 ou 20 ans.
J'ai perdu la track à ce point.
Et je suis aussi étudiant au PNO à l'université.
C'est la dernière partie de ma PNO de David.
Un username que vous verrez tout le monde en ligne.
C'est probablement mon principal hobby.
Mais oui, je vis en Florida.
Et maintenant, je travaille en temps entier de Stately.
C'est génial.
Donc peut-être que nous allons le faire.
Vous avez créé ce library appelé X-State.
Les gens ont probablement entendu le truc.
Et c'est un library pour construire des machines de financement
et des cartes de state.
Vous pouvez expliquer ces termes un peu pour les listeners?
Vous ne pourrez pas être à l'aise avec eux.
Bien sûr.
Et ils peuvent sembler vraiment intimidés.
Mais c'est en fait plus facile que vous pensez.
Donc en virtuellement, chaque application,
il y a beaucoup de choses qui peuvent arriver,
comme vous pouvez cliquer un bouton
ou vous pouvez soumettre un formule ou avoir une réponse
d'un API appelé.
Et donc ces choses sont appelées.
Les événements sont des choses qui se sont mis en temps.
Mais ces événements ne sont toujours les mêmes.
Par exemple, quand vous soumettez un formule
et le formule est invalid,
ou il a déjà été soumisé,
cela devrait se dépasser différemment
que de soumettre un formule valid.
Donc ces événements que nous pouvons referer
comme « loader » ou « pendent » ou « soumettre »
ou « invalid » sont appelés « finite states ».
Et donc un événement peut causer
un des états finitifs
pour transporter à un autre.
Donc, par exemple, si j'ai un formule valid
et je clique le « submit » button,
qui est un événement,
maintenant c'est dans le « submitting state ».
Donc, un machine de state finite
représente tous ces choses,
événements, des états finitifs et des transitions,
et cela représente dans un diagramme visuel concis.
Et des états finitifs,
ce qui vous permet de créer un état finitif,
ils ont des machines de state finitif
pour le prochain niveau.
Donc vous pouvez exprimer les actions,
les états finitifs, les histoires parallèles,
les états finitifs et beaucoup plus.
Et donc les états finitifs,
je veux que tous les gens aient compris
que c'est techniquement des machines de state finitif,
mais ils vous permettent aussi
de représenter l'hôpital visuel
qui s'étend à tout niveau de complexité,
ce qui est un limiter des machines de state finitif.
Les machines de state finitif
ont bien sûr de résoudre le problème de la scale.
Donc, c'est en comparaison
à probablement comment les gens
approchent leur état et leurs applications.
C'est un état plus formalisé
que de le faire.
Donc, comment vous arrivez
aux machines de state finitif
ou la solution
pour comment je devrais construire mon app
plutôt que un peu d'états de utilisation
ou quelque chose de similaire.
Oui, donc je n'ai pas fait...
Je prends quelques courses de sciences de computer
en collège,
mais ce n'est pas quelque chose
que j'ai étudié profondement.
Et beaucoup de gens me disent
que je suis réveillé des machines de state finitif
à l'université
parce qu'ils nous ont forcé
à apprendre, etc.
Ce n'était pas le cas pour moi.
Je suis un développeur junior
et je pense que vous pouvez le dire
mon premier développeur de plus grand.
Nous travaillions sur le startup
où nous étions en train de faire
toutes ces compliquées
des workflows et des formes multistapes
en utilisant le PHP,
le JQuery et les quantités
de condition de logication.
Et sur ceci, les requises
ont été changées.
Donc,
nous avons juste
cette logique très compliquée.
Nous étions sûrs
de ce qui était correcte
et ce qui n'était pas correct.
Nous étions en train de
mettre en place un code
pour notre équipe de QA
et ils nous demandaient
que ce n'était pas correct.
Et c'était très difficile,
surtout pour moi
comme développeur junior
à comprendre
tout ce qui était en train
et à mettre les requises
au code.
Donc, j'ai commencé
à regarder les visuels
de représenter cette logique
et après, j'ai réunit
les machines de state
et les cartes de state.
Et c'était
le moment de l'invité pour moi.
Pas seulement le fait
que c'était visuel,
comme tout le monde
en faisant les caisses et les cartes,
mais aussi que tout ce que
nous faisons
dans l'application de logique
peut être représenté
dans les trois choses,
les événements, les études
et les transitions.
Oui, je pense que c'est
vraiment intéressant
et que
ce qui est en train de
l'inviter
est comme quelque chose
que nous serons allés
tout le temps
de se faire
un peu d'impérative
et des conditions
et nous essayons
de
se débrouiller
le state
à l'extérieur
les événements
qui mutent le state
et tous les logiciels
qui vont dans ce genre de things.
Donc c'est intéressant
que nous
nous avons une tendance,
surtout si les gens
ont des applications
de réaction
particulièrement
à penser à la question
« oh, ici est mon
petit unité de state
ici »
et ici sont les autres
choses qui impactent
et ils sont très
dévorsés de l'un de l'autre.
Mais ça fait plus de
un approche centralisé
à
exactement
le système de state.
C'est cool.
Right.
Donc
quels sortes
problèmes
penses-vous
que les gens
sont bien
à les machines de state
et aux cartes de state ?
Donc je dirais que
en général
quand vous vous rendez
avec des codes d'événement
c'est un
très bon
premier step
pour
réaliser
que cette app
pourrait faire
l'utilisation de la machine de state
qui, comme vous en avez parlé
centralise
les
événements et les transitions
des States.
Et
il y a aussi une réalisation
que toutes les app
ont des codes d'événement
qui sont
explicitement
codes pour ces événements
ou pas.
Même si on
met en place
l'hôpital
dans un
handling d'événement
comme on
est encore
handling d'événement.
C'est juste

l'hôpital
vit.
Dans le
component
vers un
endroit centralisé.
En tant que
des dates de fin de la nuit
je dirais
que
par exemple,
des formes multistep
ou quand
votre application
a des
comportements différents
en temps
comme les modes
les appareils
sont un bon exemple
de ce
vous savez
si vous
en
en dessous
vers si vous
en pannez
la scrie
alors que
vous en bougez
votre mou
va faire
quelque chose
d'un peu
si vous
en dessous
d'un mode
où ça
pourrait
en dessous
mais oui
donc
la code

vous savez
où vous avez
une
séquence d'événements
ou sorry
une séquence
de les deux
qui ont besoin
et
surtout
si
ces
séquences
des
séquences
n'ont pas
ligné
donc
vous
avez
une
séquence
qui
peut
faire
une
chose
ou
peut
faire
une autre
chose
selon
des logiques
des conditions
qui
sont
ou vous
avez
une
séquence
qui
doit
aller
retourner
à une autre
séquence
et
faire
ce code
vous
pensez
comme
je vais
être
fancien
et
utiliser
une liste
et
puis

un
directe
pour
cliquer
et
puis
vous
réalisez
non
je n'ai pas
besoin
de la machine
qui
m'a
pour
juste
représenter
toutes
ces logiques
dans
un
simple
graph
mais
oui
donc
je dirais
les applications

c'est
vous avez
beaucoup d'événements
beaucoup de transitions
et
beaucoup de
des
choses
qui
se

typiquement
les applications
qui
sont
plus
trivées
que
juste
vos
applications
même
que
ceux
qui
utilisent
les machines
aussi
tous ces
types
de
app
peuvent
faire
une
utilisation de les machines
hybr personalities
pour




tout
laby
m
du



t


g

Le
g
r
d
Le plus difficile est qu'on n'en 좋아 pas ÔноfMER, maisкое.

Lui called ?


Et donc ça semble qu'il y a beaucoup d'adolescentes.
Donc, vous savez, être capable de décrire votre système et les interactions,
et spécifiquement les choses qui changent le pays et comment les transitions,
et aussi de pouvoir isoler tout cela dans une manière très testable.
Donc, quels sont les sujets rouges et les challenges que les gens ont faits
quand ils tentent de convertir un code base pour utiliser des machines de pays ou de pays?
Je dirais que le plus grand est la curve de la apprendre.
Et je dirais la curve de la apprendre, parce que, comme je l'ai parlé,
il y a vraiment seulement trois choses principales que vous avez besoin d'être démarrées,
et c'est votre transition des pays finaux et des pays finaux.
Mais, en pensant en termes des machines de pays,
il peut être commonly un bloc de la vie des développeurs
qui sont plus utilisés en des manipulations de bouillons
ou en pensant en termes d'impérative logique.
Donc, surtout quand il s'agit des cartes de pays,
il y a aussi une barrière de terminologie.
Vous devez apprendre beaucoup de termes.
Quels sont les pays parallèles et les pays finaux et les pays finaux
et les événements et les événements et toutes ces petites choses.
Et c'est très facile de se faire se faire s'il vous plait,
quand vous avez tout fait en même temps.
Mais je vous recommande de commencer simple,
avec des pays et des événements.
Je dirais aussi que l'un des spots rouges que les gens ont fait
c'est de savoir comment les machines de pays modèles sont les plus bons.
Et c'est vrai, c'est plus de l'art que de la science
parce que vraiment, vous êtes tentant de être créatifs
comme un développeur, vous êtes tentant de dire
que c'est pour ça que je peux mieux modèler mon logiciel
dans un moyen ordinaire,
plutôt que d'être juste un free for all.
Et souvent, on pense que, vous savez,
juste modèler notre logiciel en utilisant les variables boulevres
et juste les states et les logiciels,
où nous sentons que ce qui est le plus convenient
serait le plus facile.
Mais je dirais que, en long terme,
ce sera plus difficile de maintenir,
où votre code arrive à ce state de ne toucher rien,
c'est en train de travailler, je pense,
et je ne sais pas pourquoi c'est en train de travailler,
mais on va juste le laisser seul,
si vous remouvez ça, tout le monde va se cacher.
Donc les machines de state vous forcent
à modèler explicitement,
en un moyen qui est beaucoup plus maintenable.
Et ce modèlement explicit
peut être plus difficile
que de coder le manière dont vous normalement codez.
Donc, en short, le curve de la appareil
et je pense que le aspect de modèlement,
mais le modèlement devient plus facile
juste comme tout le monde,
art-related.
J'aime faire l'analogie de l'art,
car comme un pianiste,
le piano n'est pas un instrument facile,
mais le plus vous pratique, le mieux vous le prenez.
Et donc, c'est pareil avec le CSS,
c'est pareil avec les machines de state et les cartes de state.
Oui, en quelque sorte, c'est juste
comme un code scalable.
J'ai trouvé un problème,
ou le problème que j'ai étendu
en première exploration des cartes de state,
c'est la tension entre
un charte de monolithique
où vous avez un système complexe
et que vous modélisez tous les sites du système complexe
versus de la détruire
dans les systèmes plus petits
que vous utilisez indépendamment.
C'est un truc intéressant
de travailler.
C'est là que vous avez plus
dans l'art model actuel,
où ça t'aide.
Mais, c'est un acte balancier.
Vous ne voulez pas
faire vos applications
en architectures micro-servicées
juste parce que vous êtes comme,
oh, je peux faire ça plus simple.
Et c'est un truc
que j'ai aimé plus que les développeurs
de la construction de la construction.
Il n'y a pas de la même façon
de faire ça.
Il n'y a pas de la même façon
de faire 500 lines de code,
de la séparation de la construction
de micro-servicées.
C'est plus d'art
que de la science.
Oui, mon approach
à l'externaire de ma hâte
est très petite.
Je me dis que je ne veux pas
apprendre ça.
Mais je vois que c'est un acte
de travail,
un component de tréviu,
un tréviu accessible,
un code incroyable.
C'est un component de réacte,
mais c'est
2000 lines de code.
À ce point, je suis à
ce point où je suis en train de
faire des applications,
et je l'ai entendu
beaucoup de fois,
où les gens me disent que
ma hâte est si simple
que je ne veux pas de la machine de la state.
Je me dis que c'est bien.
Et puis, après, ils vont dire
que je l'ai vraiment vécu
à la machine de la state, mais
maintenant, c'est à ce point où
il me semble trop tard.
Et, encore, je pense que c'est
partie de la peur que les gens
pensent que c'est un grand tour de
wok de c barriers méritard
et son

au Smaord des
s introduction critique.
des machines de state ou des cartes de state dans votre application, c'est juste comment exactement ils sont expériments.
Depuis la complexité, il y a un peu de différentes manières de expliquer ces choses.
Et vous avez ce grapho qui est presque multidirectional avec des nodes,
comme les nodes pointés, et c'est comme une sorte d'application complexe.
Description de cette code peut être très difficile.
C'est la première fois que j'ai répliqué avec X-Date, ce qui n'est pas unique à l'ex-state,
mais j'ai eu un peu de des objets nestés, et ça a été difficile de voir la code qui se démarre.
Je peux le faire avec un visualiser et régler la charte.
C'est comme, ça fait du sens.
Mais en regardant les objets nestés, c'est comme une sorte de chose difficile à croquer.
Mais, encore une fois, ce n'est pas unique à l'ex-state.
Et aussi, l'ex-state en particulier, et puis beaucoup de ce space
a été en train de faire des tristes grand, et de mettre des outils de meilleure qualité,
et de différentes manières de approcher.
Et je suis super content d'y voir.
Exactement.
Et, c'est pas le cas avec les objets syntaxes,
comme les objets nestés,
mais en tant que les graphes nestés et directes en code,
j'ai hâte de dire que, quoi d'autre que ça ?
C'est l'une des meilleures manières de faire, même si ça ne ne se sent pas le plus visuellement.
Et vous avez donné une clé à l'endgame,
où c'est cette représentation visuelle.
Comme pour le plus long du temps, j'ai eu l'ex-state visualiser
dans les idérations différentes.
Et maintenant, nous allons le autre de la façon dont le visualiser vous permet de créer
ces visuels, qui sont beaucoup plus beaux,
pour voir des objets nestés et très bien nestés.
Et aussi, le visualiser en objectif
permet de faire des choses comme l'édition bi-directionnelle,
et l'analysation statique,
et aussi de visualiser aussi,
parce que vous pouvez le couper et le remplacer,
et en fait, vous pouvez même
convertir cela dans différentes formes dans le futur,
ou même évoluer cela en différentes langues,
parce que c'est assez jason à ce point.
Donc, on a parlé, je me sens,
surtout dans le contexte des endgages frontaux,
mais les machines de state,
comme les scales à travers le stack,
c'est le meilleur endroit pour les endgages frontaux,
ou peut-être que je les utilise à quoi je veux?
Oh, je dirais,
les endgages frontaux et les backends.
Quand je l'ai créé,
c'était principalement les développeurs de la frontière,
donc, bien sûr,
la plupart de mon intérêt était de les utiliser
en les frontières,
surtout pour des compétences complexes,
des formes multi-stêques,
des logiciels routiers,
et des choses comme ça.
Mais le plus j'ai vu la state de la frontière
être utilisée,
à travers le monde web,
j'ai vu cela utilisé dans so many different places,
including le backend.
Les gens utilisent cela pour les workflows,
pour les chatbots,
j'ai même vu des utilisations pour la formation de la maison,
les projets web3,
des choses comme ça.
Et plus recentement,
j'ai compris que
honnêtement,
beaucoup de logiciels que nous faisons en la frontière
sont les mêmes logiciels
qui ont été créés
milliers et milliers de fois
par beaucoup d'autres développeurs,
vraiment,
ce n'est pas rien que nous faisons sous le sol,
nous sommes tous en train de faire la même chose.
Mais quand vous vous rendez en logiciel,
c'est où la histoire change beaucoup,
où tous les compétences,
les workflows collectives
que elles ont dans le backend,
soit ils sont explicités ou pas,
ils sont tous différents,
et ils sont différents pour des bonnes raisons,
parce que ces compétences ont leur propre logiciel,
leur propre besoin,
et elles ne veulent pas nécessairement
partager ces workflows
au public pour les autres personnes
pour les copier,
parce que c'est essentiellement
ce qui fait leur business unique.
Et c'est ce que j'ai compris
que les workflows dans le backend
sont les plus grands places où
les machines de date et les cartes de date
sont extrêmement utiles,
parce que les machines de date et les cartes de date
permettent de vous expérimer
les workflows dans une compétition plus grande
que les plus grands machines de la date.
Oui, c'est assez cool.
Et je pense que
quelque chose que nous avons parlé beaucoup
sur le podcast,
et quelque chose que j'ai très intéressé
dans,
c'est la notion de programme visuel,
ou juste de programmes visualisés.
Et
part de ça,
comment vous représentez
la cohésion logique,
comment vous parlez de
les États que le système peut être,
et je pense que ça ne s'est pas dit
que les cartes de date sont
la façon de défactoformer
ce que vous faites.
D'un perspective industriel,
je ne sais pas
que nous avons quelque chose
qui a un spectacle
de manière similaire
pour vraiment décrire
la forme de ces choses.
C'est comme
les cartes de date.
Parce que
l'ex-state est en fait
basée sur un standard,
c'est vrai.
C'est vrai.
Donc l'ex-state est basée
sur le W3
des cartes de date
de date,
ou des specifications de date

qui ont été créées
en 2015.
Et je pense que
l'utilisation principale
était dans les
voies de systèmes,
comme les systèmes de l'IVR,
où il y a un pressé
pour obtenir
cette prochaine menu de options.
Mais c'est utilisé
dans
beaucoup d'autres choses.
La cause de l'ESCXML
est,
comme le nom implique,
de se battre
en plus
aux cartes de date,
qui ont été créées
par Harold
et David
Harrell
en 1989.
Et aussi formulées
dans le spec de UML,
mais elles ne sont pas
exactement les mêmes.
Donc,
oui,
et je pense que
l'utilisation de la notion
de la specification
pour définir ces cartes de date
est vraiment utile.
Et ça a été l'une
de les
influences
sur l'escalier
comme un API.
Oui,
je le trouve amusant
dans vos cartes
comment vous vous dites
que ce sont des
plus de 30 ans
de la specification.
Ce n'est pas votre
nouveau machine de state

Exactement.
J'aime dire
comment
ce sont les
cartes de date,
où nous sommes
créées
de nouvelles
tools et frameworks
et des choses
où c'est
comme
Hey, c'est brand-new.
Je n'ai pas d'idée
de ce que ce soit
de la scale
ou si c'est
de la test de la bataille
ou pas.
Nous allons
l'experimenter
parce que c'est
de la base
et de la fresh
et de la nouvelle.
Je n'aime vraiment
de la facture
que la technologie
que nous utilisons
est extrêmement
d'olde.
C'est basé sur les cartes de date
depuis 1989
et même les machines de state
de manière
plus électorale.
Les machines de state
préviennent les compétences.
Donc,
oui, et je pense que
ça a été
réfléchissant
pour beaucoup de gens
parce que
je pense que ce sont des
nouvelles objectifs
qui sont

des des des des des
donc
avoir quelque chose
qui a
d'ailleurs été
testé
et utilisé
dans
beaucoup de différentes industries
comme
automotives,
impétudes,
électroniques,
aeronautiques,
juste
en développement de jeu.
C'est
c'est huge
pour les machines de state.
Il y a
il y a
d'ailleurs
d'évidences
que les machines de state
et les cartes de state
sont
très utiles
pour beaucoup de
différents cas de utilisation.
Et donc
c'est pourquoi
j'ai
d'ailleurs
le plus excité
de juste
le faire
pour
webdev.
C'est un exemple intéressant
de l'old is new
comme
un autre que je pense
de les
systèmes de design
comme les systèmes de design
sont en train de

pour toujours
mais
on est maintenant
en train de
utiliser
ces codes
et c'est comme
oh,
c'est un bon idea.
Exactement.
Donc
quand
tu sais
quand tu as commencé
à travailler
dans la prochaine
state
ou sorti avant
ce point
à cause
que
ce
ce
ce
spectacles
et les ideas
sont
pas
neuves
c'est-il y a
des choses qui existent
dans le système de l'éco
qui a
fait des machines de state chargée
et sorti
ce qui était
ce sorti
d'impétence
pour créer
l'exstate
en-dessous.
Ouais,
il y a quelques choses.
Je veux dire
le principal impétence
était
c'est-à-dire
moi
en s'arrêtant
un autre
et voulu
utiliser ça
dans mes projets
et mon
emplois.
Il y a quelques
libraires existants
des uns de eux
qui étaient
assez populaires
à la fois
mais ils se fassent
juste
sur les aspects de la machine
donc ils ne sont pas
plus
plus

et je me souviens
comme
après la
éco
et la

par le
spec
je voulais vraiment
quelque chose
qui a
capturé
toutes les
features
dans
son
papier original
et
la
s'est

aussi quelque chose
qui était
facile à utiliser
dans mes projets
et
et donc
je n'ai pas vraiment
trouvé
quelque chose
comme ça
donc
c'est pourquoi
j'ai
tourné
avec
j'ai
en fait tourné
avec
Peg.Js
qui était
un moyen pour vous
pour vous
faire vos
langues
pour vous

donc
j'ai créé
une très simple
DSL
pour les machines de state
j'ai évoqué
vous savez
c'est le premier version
de l'ex-state
et pour l'année première
j'ai eu
toutes les 7 stars
ça ne m'a pas fait
quelque sorte de
un splash
jamais
et puis
j'ai présenté
à une conférence où
c'était
un rallye réacte
je pense
en 2017
et
je pense
dans ce talk
ça a donné
ce moment
que j'ai senti
beaucoup plus de gens
où c'est
comme
hey
ça pourrait être
un meilleur moyen
de représenter mon logic
et aussi
je peux visualiser
ça aussi
c'est drôle que vous commencez
comme DSL
parce que
autres gens
ont maintenant créé
des DSL pour l'ex-state
comme Lucy
de
Math UCP
oui
oui
Lucy est un expérience
vraiment intéressant
il a aussi
créé robots
et robot
est un autre
machine de state
library
et
j'ai honte
j'adore le fact que
tu sais
il y a
ces
tu sais
plus petit
les libraries de state
machines
qui sont
influencées par l'ex-state
mais ils veulent changer
autour de l'API
comme
je
j'ai juste vraiment apprécié
que les machines de state
sont en train de gagner
plus de prominence
lentement
mais sûrement
tu sais
dans le space web
de WebDef
mais oui
Lucy est
certainement
un intéressant DSL
il y a un autre
qui s'appelle
state ML
c'est un autre
intéressant DSL
à regarder
je pense qu'il est
encore
sous active
développement
mais
oui
maintenant
nous
nous savons
qu'il y a un point de
friction
quand tu as introduit
comme un custom DSL
à
la communauté web
ils ne veulent pas
un autre
step de compilation
ou un autre
tool de construction
ils veulent juste
copier et payer
quelque chose directement
dans leurs apps
JavaScript
et utiliser
directement
oui
je pense
que c'est
incroyablement valide
je pense que
l'interstance
pour DSL
c'est comme
quand tu es expérimenté
au-delà
de l'application
de l'application
je pense que tu es
tu sais
Hey, ici, on va
avoir une langue commune
que tu sais
en bas en front
de l'enquête
ou comme
à tout le monde
c'est la parole
des DSL
et
importantement
ce que je veux
faire
les visualisations
sont incroyablement
importantes
donc peut-être
on va
changer les gérants
et commencer
à parler
de l'estatelier
donc
tu es le founder
de l'estatelier
qui est
une sorte de
une compagnie
derrière
l'estatelier
tu veux parler un peu
de
ce qu'est
le but
de
former
une compagnie
autour de ça
et
ce qui est pour ta vision
c'est
oui, sûr
donc
XT
était principalement
une
matin,
nuit
et
week-end
projets
mais
eventually
la communauté
a été
large
assez large
que je réalise
que
ce est
trop important
pour juste
être un projet
donc c'est pourquoi
je décidais
juste
aller
tout les
les steppes
de
former
une compagnie
au-delà
et
je réalise
que
tu sais
il y a beaucoup de
grands goals
que je veux accomplir
avec l'estatelier
et donc
une somme de
l'estatelier
est que
c'est une plateforme
visuale
pour l'application
logic et
les workflows
donc
dans une très très
petite élevée
de la pêche
tu pourrais basicement
penser à un peu
comme
Figma pour le logic
en termes
de
visualisation
de votre logic
de pouvoir collaborer
avec les teams
sur votre logic
et aussi
juste à vous
des outils pour
faire votre logic
correct
donc
oui
c'est
mon grand goal
avec l'estatelier
intéressant
donc
que
que
t'a-t-il aidé
pour vous faire correctement
donc
avez-vous
en fait
nous posons
une question
de façon différente
que les outils
que tu utilises
quand tu es
tu sais
juste
en parlant
par l'architecture
ou les flows
comme
quel genre de
outils de diagrammes
que tu utilises
comme Excalidraw
ou
Deodor
ou quelque chose comme ça
exactement
oui
il y a
il y a beaucoup de bons outils
dans ce space
qui est nommé
Excalidraw
j'aime
TLDraw
aussi
Miro
même
Figma
FIGJAM
Wimsicle
c'est un bon outil
juste
tous ces outils
qui vous permettent
d'améliorer
juste les outils de flow
ou juste
ces diagrams architecturaux
mais
c'est un problème
quand tu as des outils
ils sont
seulement en artefacts
ils sont juste
comme un JPEG
ou PNG
ou
tu sais
SVG
et
tu peux copier et les payer
en documentation
mais il n'y a pas de garantie
que ce diagramme
représente
ce que l'académie est en fait
en fait
et donc quand tu changes
le code
le diagramme pourrait se faire
de la date
si tu changes le diagramme
encore
le code
comme ça
ça ne peut pas se matcher
avec le diagramme
donc
tu penses
en state
comme un tool de diagramme
ou un set de outils
pour
créer ces diagrams
qui sont en fait
en sync avec ton code
et donc
de cette façon
le tout correct
à ce point est
sort de 2 fold
pour l'instant
ça vous permet
de vous expérimenter
votre logique
en utilisant
les machines de state
et les cartes de state
qui vous permettent
de
vous analyser
votre entire logique
parce que
si tu sais
tous les événements
et les transitions
comme on l'a parlé
de votre application
alors tu peux
ça devient possible
de juste
lister
tous les paths
dans lesquels
l'utilisateur peut utiliser
l'app
et donc
il n'y a pas de plus de travail
tu sais
tous les features
qui peuvent être faits
tu sais
tous les événements
qui peuvent être sentés
et
en utilisant le model actuel
tu sais même
tous les services
que ton app peut connecter
et c'est un diagramme visuel
complet
qui signifie
que ce n'est pas
que d'un hommage
ou une logique

c'est tout
l'infrontement
là-bas
et donc
tu peux
analyser
ça
simuler
ça
etc
et donc
la deuxième partie
est
en fait
à un niveau plus high
où tu peux prendre le reste de ton équipe
qui n'est pas techniquement
comme
des designers,
project managers
et autres députés
et
c'est pas
que ce soit pas
ce sont les gens
qui sont en fait
plus aidés
en regardant
ces chaussures
que tu as créées
et
baladé
cette behaviour
en disant
Hey
ce n'est pas supposed
à arriver
ce héros
devrait vraiment
aller là-bas
pourquoi est-ce
cette feature
ici
etc
comme ils peuvent acte
ou ils peuvent même
poser des questions
clarifier des questions
pour faire
les modèles
encore plus
donc
je pense que c'est
deux manières
de juste
assurer la correcte
dans votre application
logique
oui
vraiment
ça fait que
le hurdle
de
oh je ne veux pas
apprendre
l'API de l'exstate
parce que c'est comme
ça juste génère
l'exstate
c'est pas
pour maintenant
oui
oh pour maintenant
tu as plané
sur
en générer
d'autres choses
oui
oui
donc
quand on parle
de l'application logique
évidemment
l'exstate n'est pas
la seule façon
que tu pourrais représenter
tu sais
ta logique de management state
et
surtout quand tu es
en train de parler
d'autres langues
c'est
tu sais
l'exstate ne peut pas
être disponible
pour cette langue
et donc
tu pourrais penser
de l'exstate et
les tools de l'exstate
que nous sommes construits
comme
eventually
en train de devenir
ce
directe graphe
de la
donc
tout ce que tu pourrais représenter
dans le graphe directe
qui
surprise
il y a beaucoup de choses
qui pourraient être représentées
comme le graphe directe
tu devrais être able
de
expérer
et
et
créer
dans le studio state
on le appelle
donc
je me rappelle
une de mes préféres tweets
que j'ai lu
c'est quelqu'un qui a dit
hey
je
mon Q18
absolument l'a aimé
ou je pense que c'était un Q18
mais l'a aimé
l'éditer state
pour basicement
faire des flows
et l'application model
logique
et pouvoir
avoir une photo très claire
visuelle
de
ce que l'application logique est
et
quelqu'un dans les commentaires
tu sais
juste le tweet
le bâtir
comme
oh, cool
tu as utilisé
l'exstate dans ton app
et il a dit
non
et ça a vraiment été très excité
parce que
tu sais
il a choisi
l'utilisation de ces tools
sur l'exstate
donc
même pour
créer
ceci
les workflows
ou
juste les workflows en général
parce que
ceci est plus choisi
pour être
un édite directe
graphe
édite
l'exstate
devient
juste
un de les outils possibles
de ça
c'est cool
mais est-ce que
le goal de l'in est
encore
la génération de code
en ultime
pour faire ça
comme un
réel
intégré de graphe
ou est-ce que
c'est juste
comme un goal de l'aise
le goal idéal
est
en fait
l'élection de la génération de code

qui
vous savez
nous avons accompli
à un extent
donc
vous savez
vous pouvez éditer
votre code
et ça
updates le diagramme
vous pouvez éditer
le diagramme directement
et ça
updates le code
donc oui
c'est cool
comment
comment ça fonctionne exactement
comme quand j'ai ouvert Stately
je fais
quoi je fais
ou comme l'opposite
comment
ce que
ce biais
le part
comme
ça me
me fait un peu confus
oui
donc ce sont
quelque chose que vous pouvez jouer
avec maintenant
il y a un extension de code
pour Stately
et l'exstate
et donc
le moyen que ça fonctionne
je ne peux pas vous dire exactement
comment ça fonctionne
parce qu'il y a des gens
plus smart que moi
en travaillant
mais
le moyen que ça fonctionne
c'est que
si vous avez des machines de state
et maintenant bien sûr
ce n'est qu'il travaille seulement pour l'exstate
mais si vous avez un machine de state de state
dans votre application
vous allez le noter
et ouvrir un éditor
un petit bouton de leaflet
sur le top
donc vous cliquez sur ça
l'éditor ouvre
à la droite
et donc
ce qui se passe
est juste une série de transformations
de st

juste de mapping interne
qui vous permet
de
prendre
ce
JavaScript
ou code type
de type
code
map
c'est
à un digraph
représentation
que l'éditor peut comprendre
et pendant que vous éditez
le
le digraph
c'est de la commande
de la code de vsc
dire
hey
ce sont les partenaires
de la code
qui ont besoin de changer
pour rester en sync
avec le
avec le diagramme que nous avons créé
donc c'est des opérations
où vous allez dans l'éditor
et vous updatez
le graphe
en itself
sans avoir des codes de vsc
ouvert
et puis ça
peut-être un commettement
pour le repos ou quelque chose
ou est-ce que
c'est juste
est-ce que c'est de la code de vsc
c'est
ça va venir dans le futur
oui
on travaille sur une integration github
donc
dans les prochains quelques mois
j'espère qu'on va avoir
quelque chose pour ça
mais
c'est
c'est essentiellement
ce qu'on veut faire
et donc ça va évoquer
les gens
pour dire
hey, cette logique est
faite
ou on va devoir fixer
ou peut-être
ajouter un nouveau
feature
qui pourrait juste
être ajouté
des événements
et ou des transitions
et donc vous devrez
pouvoir faire
ça visuellement
presser
sauver
et avoir le sync
à votre repos de github
et avoir ça
juste comme un code de vsc
commettant
c'est vraiment cool
donc
souvent quand on parle
des entreprises
en relation
à l'open source
et
vous savez
surtout dans les libraries
c'est comme
en parlant de la modernisation
et comment vous faites
une compagnie sustainable
est
une question intéressante
il semble que votre
votre path forward
avec Stately
est probablement
plus clair
quand vous avez
un élément de collaboration
parce que c'est
des choses comme Figma
et d'autres outils
dans ce space collaborat
ont vraiment
mis le modèle clair
mais quand vous pensez
en faisant Stately
un business sustainable
c'est comme
que est-ce que votre mind
va faire
et comment vous pensez
sur ça
ou
juste comme vous avez dit
notre mind
va exactement
vers collaboration
et c'est parce que
l'un de nos grands
goals et visions
est de faire
l'application logique
collaborer
parce
franchement maintenant
ce n'est pas
c'est un silo
entre
design
project management
et développeurs
et
il y a une très
lossée communication
entre
chaque de ces trois silo
donc
on veut basicement
évaluer
collaboration pour
la partie la plus importante
de votre business
qui est
ce logiciel
et
et c'est
où nous le

ils sont
comme ça
que le modèle de modernisation
parce qu'on veut
construire un
tool collaboratif
et des features
que les équipes
auraient pour
et que les équipes
auraient de valeur
de
donc ça
inclut
les choses
comme
en bien
pouvoir
définir les équipes
dans le studio
avoir des visibilités

des settings
version de vos machines
avance
analytics
la integration de GitHub
que nous avons parlé
de plus
d'options exportées
et d'options embêtées
et
la liste
va sur et sur
on veut
tous nos outils
être utiles
pour les développeurs individuels
surtout si vous travaillez
dans l'open source
donc on veut
avoir
ce
libre
modèle open
pour
ces développeurs individuels
mais on veut
les équipes
pour payer
nos outils
donc
donc un truc
que vous avez dit
quelques minutes
il y a un peu
qui a piqué mon intérêt
que
sur le front
au moins
nous avons écrit
ces machines de state
qui sont
basically
les mêmes machines de state
sur et sur
encore
depuis que vous avez
comme un plan de cloud
qui est
est-il l'opportunité
de les faire
les gens
publier leurs machines de state
et puis
les forcre
comme
parce que
en regardant
mon exemple de traînage
comme
il y a un spec
pour le traînage
comme
ça devrait avoir
une manière standard
de machine de state
que je peux juste
impliquer
mon truc
sur le top
vous avez des plans
pour ça
oui
nous faisons
et c'est en fait
quelque chose
que nous travaillons activement
et nous
on a
assez de version
de ça
déjà
donc si vous
allez
à
l'aie
slash
registre
vous allez voir
une
entière collection
des machines
que vous pouvez
prendre un look
à
fork
export
comme Jason
qui vous pouvez
inclure directement
dans
une machine de state
pour
externe
et utilise
ce logic
directement
mais oui
c'est l'un de nos vies


est
l'obligation
de
avoir ces
machines communes
et
avoir ces
représentants
juste
des
logiciels de application
de
quelque chose
comme simple
comme
des compagnons
comme des
components de toggle
pour
quelque chose
plus avancé
comme
l'authentication
et l'authentisation
et donc
vous savez
on veut que les gens
puissent
pouvoir fork
ces machines
les tweaken
pour
vous savez
comment ils veulent
et
et puis
utiliser
dans leurs appes
de
comment ils voulent
un des les plus grands problèmes
que je vois
avec la façon
que nous
nous le faisons
aujourd'hui
est que
si nous voulons
comme
un
spécifique
vous savez
un petit
logiciel
que
nous ne existons
parce que
vous savez
que les apps
ont la même logique
mais on est
comme
on n'a pas le temps
pour le faire
pour nous

c'est trop compliqué
pour nous
pour nous
pour nous
nous
vous
vous avez vraiment
seulement
il y a quelques options
vous devez
regarder
pour un
package
que c'est pour
votre
spécifique
framework
et vous devez
faire sure
que ce package
est
bien supporté
bien documenté
et a
tous les noms
que vous pouvez
faire
pour que vous
vous recevez
votre exact logiciel
et si vous
besoin
de n'importe quoi
change
vous êtes
au
qui
qui est
le maintien de
ce projet
vous savez
vous pouvez
faire un
PR
vous pouvez
filer
un issue
et vous pouvez
rassurer que le meilleur
et eventually
vous savez
vous avez
votre use case
satisfait
par
leurs changements
et
je ne pense pas que
ce soit le meilleur
de faire
les choses
je pense vraiment que
cette application
logiciel
devrait être composable
comme legebrics
et juste comme legebrics
si vous besoin
pour
faire
n'importe quoi
le logiciel
vous devez
pouvoir le faire
juste par
faire les choses
en partie
mettre les choses
ensemble
et bien sûr
avec les
tools analytiques
que j'ai parlé
d'assurer
que le logiciel
est encore correct
d'aider
à simuler
générer
les tests
même
générer
la documentation
pour ces choses
donc
oui
c'est l'un de nos
très belles idées
c'est l'obligation
de
partager
et
remettre
cette logique
c'est super cool
que ça va même
faire
l'extérieur
de la
documentation et le test
aussi
c'est
un
grand goal
merci
c'est super
c'est super
j'ai hâte de le faire
je veux dire
c'est un
c'est un
secteur
que
tu sais
chaque programme
ou
jamais
va
passer
par ce
hurdle
de
avoir
à construire
large
conditionnel
comme
des flows
que
sont
réacteurs
et comme
mettre
votre système
votre système
dans différents états
et c'est comme
ce qui est
juste sort de
la nature
du business
donc
tu sais
c'est
c'est bien de voir
le direct
tout le monde
de la construction
sur ce
c'est des outils
que
nous voulons exister
comme
nous et la whole
équipe
que nous voulons exister
quand nous sommes
premiers
développeurs
tu sais
pour les dernières
10 ans
ou
ou
et
c'est pourquoi
nous sommes super
excitées
pour les construire
oui
un
intéressant exemple
qui vient de
moi
est
T.L. Draw
comme
tu as
Steve
Steve Ruiz
là-bas
comme
littéralement
voyant
par
chaque
design
des
outils
qui
vont
comme
comment
ça
comment
ce line
envers
quand je fais
x, y,
et z
et il est
c'est
juste
faire un grand machine de state
pour
un édite de canvas
base
et
comme
c'est
ça c'est
le très grand
partiel
de T.L. Draw
comme ici
en descript
nous voulons
utiliser
T.L. Draw
pour
comme
notre
renderer
mais comme
notre canvas
est en fait
rendu un
vidéo
donc ça a
comme le concept
de temps
aussi
donc
on ne peut pas
utiliser
comme
T.L. Draw
en-même
on peut seulement
prendre l'inspiration
de ça
mais si
T.L. Draw
c'est logique
c'est une machine de state
que nous pouvons
faire
comme
pourque
et remise
ce serait
comme
chef de la fête
comme
c'est
facile
et
oui
comme vous avez dit
c'est
c'est
une série de
machines de state
je pense que Steve Rous
est
vous savez
en utilisant
ses
libraries
pour
créer
ces machines de state
mais
oui
c'est
vraiment
intéressant
et
T.L. Draw
c'est
comme l'un des
les
les
les les
je pense
poster
des exemples
de
une application
que ça
serait
vraiment bon
de l'utiliser
les machines de state
et
cette logique
éventuelle
que
peut
se faire complexe
vraiment
facilement
et
ça
utilise les machines de state
oui
oui
il a
il a
sa propre
sa propre
source
dans la
fête
il a
le problème
avec les développeurs
nous aimerons
faire notre propre
chose
oui
aussi
un
non-trivile
non-trivile
le
c'est
sureté
David
sait
tout
sur
le
diggons
le
x
de state
est
même
le même
même si la spécification
est
bien
défendue
il y a
juste
il y a beaucoup
de aspects
à
ça
nous en parlons
de la

la
imprimer
quelque chose
correctement
est
c'est
non-trivile
c'est
c'est

c'est ça pour
cette semaine
la paix de la
épisode
si vous voulez
entendre la
conversation
avec David
allez au
sur notre Patreon
et se rendre un membre
pour juste 5 dollars
un mois
vous pouvez
aider
le show
et nous aider à
nous faire
nos
pour
délivrer
le contenu
week-le
merci pour l'entraînement

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