C'est la plupart des fois que vous voulez trouver la seule partie de la code,
mais c'est vraiment très difficile de faire ça en greppe.
C'est presque impossible, je dirais.
Le code de ASGRAP a un autre approche.
Parce que nous sommes en train de chercher la code.
La code peut être partie de la syntaxe,
alors pourquoi n'est-ce pas juste d'utiliser la code pour chercher la code ?
Bonjour, bienvenue à la podcast de DevTools FM.
C'est un podcast sur les tools de développement,
et les gens vont les faire.
Je suis Andrew et je suis ma co-host Jessen.
Salut tout le monde,
nous sommes vraiment excitées de avoir Harington Dark Home on aujourd'hui.
Harington est le créateur de ASGRAP,
qui est l'un des meilleurs tools favoris.
Je l'ai utilisé beaucoup de fois.
Nous sommes vraiment excitées de l'entendre.
Avant de commencer, Harington,
vous voulez dire un peu plus de vous-même ?
Oui, bien sûr.
Merci pour votre parole, Jessen.
Je suis très honnête de vous être ici,
et DevTools FM est un de nos podcasts favoris.
Je suis Harington,
le créateur de ASGRAP.
Avant, je suis aussi un membre de VUTI.
En fait, j'ai créé un Compiler de RustBase,
et à l'aide d'une inspiration
de la compilée de la base de la base de la base de la base de la base de la base de la base.
C'est cool, j'ai vu que vous avez créé
ou que vous étiez en train de travailler sur un Compiler de Rust pour la vue,
qui a l'air d'être un projet de plus grand.
C'est très invoqué de l'avoir,
d'avoir la chance de faire un Compiler de Rust pour la première fois.
Alors, dites-nous un peu plus sur ceci.
Comment a-t-il commencé ?
Oui, j'ai réveillé la vue de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base.
Oui.
Reprise située à l' Bonjour qui est de quelque chose de l'الTO...
ltm « foie énflammées » dont je bandwidthe des javascripts.
Et ce public de l'experimente,
ce n'est pas...
pas de tout.
C'estbresa d' tongue comme je восpictionze des grenades
et ...
en rapport à unretchakter!
Its loyal..!
On savais qu'il y aurait un finns 沒有���정 것.
l'optimisation que nous pouvons faire pour la passée et la transpiration.
Par exemple, une chose que je fais dans le compiler est de dire
parce que nous partageons de grandes pièces et nous devons
extracter un certain Adam ou des noms de classe de la tente.
Mais cela va généralement venir avec des pièces de l'allocation.
Si vous êtes familial avec le développement de la langue native,
je vais demander des mémoires.
Les mémoires sont très pouces.
Et si vous avez beaucoup de pièces en template,
les mémoires vont être très fréquentes.
Il y a un truc dans le développement native
que nous pouvons de toute façon apporter cette allocation.
Dans le compiler, je fais cela avec un autre base,
quelque chose comme un train de tournage ou Adam,
qui est utilisé dans l'Astublie C compiler,
si vous êtes familial avec ce field.
Mais d'ailleurs, je réuse le train de l'input.
Je dois dire que je dois avoir un code de la langue,
un bon nom, et je ne vais pas dire que je vais couper le train
dans la mémoire.
Mais d'ailleurs, je vais réuser l'input de ce train.
En faisant cela, je ne dois pas maintenir aucune mémoire.
Cela sera juste deux numéros.
Cela sera très fort.
Cela me rappelle un peu la conversation que nous avons avec Jared,
le créateur de Bun.
L'un des choses qu'il a parlé beaucoup de
c'est de la paix de la paix de la string.
C'est une preuve importante pour la performance.
C'est un peu surprise de notre conversation.
Je pensais à un code texte,
et de faire un code de la paix de la paix de la Ssr
par 10 ou 20 fois.
C'est un peu bizarre.
Des choses qui sont élevées dans un code native
qui ne sont pas mal aware de la langue en JavaScript.
Oui, parce que la laver de la JavaScript,
comme la 10,
a beaucoup de lignes de la string optimale pour vous.
En mon avis, la string JavaScript est juste la string.
C'est mutable.
Mais en JavaScript, j'ai l'air de l'air de la string.
Il y a beaucoup de variations de string.
Donc, vous avez fait un projet de compiler de votre vue,
comme de l'envers de la vue,
ou avez-vous fait un projet de la direction différente?
Je suis en train de faire une direction différente.
Ce n'est pas facile de faire
par la forme des scripts.
Donc, dans le code,
nous avons quelque chose qui s'appelle le script setup.
Donc, si vous déclenchez des variables,
vous avez vu la section de scripts.
Et le compiler de la vue, vous les extractez.
Et cette information ou cette variable
est disponible dans le partage de la template.
Mais c'est un compiler base d'organisation.
Donc,
si vous plantez de vue,
il faut analyser des scripts ou de la JavaScript.
Donc, ça va involveir des ASD, de la laver, ou quelque chose comme ça.
Oui.
Et en bas,
quand la laver de la vue,
c'est commencé,
la seule partage de la JavaScript
dans la Russe est la SWC.
La SWC est un peu trop épais.
En fait,
les compilations de vue,
le partage de la vue est assez facile.
C'est juste comme,
donne-moi quelques scripts
et je vais analyser la déclaration.
Et ensuite, je vais faire des patchs,
comme,
OK,
change cette déclaration
pour un port ou un module.export.
C'est assez difficile
de faire la SWC.
SWC est
un projet très bon.
Mais,
pour faire ça,
il y a beaucoup de la learners.
oui,
et beaucoup de choses qui sont appelées de la réel.
Donc,
j'aimerais utiliser quelque chose
de plus en plus.
Donc,
c'est juste un fruit,
c'est comme un fruit.
C'est juste comme,
c'est la meilleure analyse que j'ai voulu.
Donc,
c'est les deux fruits.
Donc,
je peux juste,
et,
en ASD,
je peux
penser à la route
et je trouve des notes d'adresse.
Et,
j'ai commencé à utiliser
pendant 10 ans,
ou plus que 10 ans,
je l'aime vraiment,
je l'aime encore jacquerie,
et je suis encore
très fondé de jacquerie.
Donc,
vous pouvez juste trouver
quelque,
dire,
un selector.
Donnez-le un selector.
Donnez-le un,
OK,
j'ai envie de trouver
des notes ASD.
Donc,
pouvez-vous me mettre
une note en liste?
Donc,
ce sont les points de la start de l'ASD.
OK,
je peux faire le TST,
par exemple,
juste comme simple
et en utilisant jacquerie.
Ce serait très cool.
Nous aimerons remercier
notre sponsor pour la semaine,
CodeCrafters.
Sans nos sponsors,
ce podcast ne peut pas être possible.
CodeCrafters
fait des challenges programmées
pour des engineers de l'experience.
Si vous regardez un projet de week-end,
ou si vous êtes sérieux,
un projet de multi-week-end
qui vous attaque
aux capacités de programmation,
des choses comme
construire votre propre bâtiment,
construire votre propre gât.
Je suis allé par la
construire votre propre gât challenge
et,
pour vous me dire,
c'est un challenge.
Ça me fait remercier
à mes jours en collège
où j'ai besoin
de cares de Hex
et de binary
et de pouvoir
débarquer ces choses.
Ce que j'ai fait
en currently
essayer de conquer
est le
GIT clone challenge.
GIT clone fait
beaucoup de choses.
J'ai été passé
à la negotiation
pour les choses que j'ai besoin.
Maintenant, j'ai
passé à
faire des choses par
la passée
et de la faire des choses avec ça.
Je dois impliquer la résolution de Delta,
mais je pense que je peux le faire
quand on a toujours les sponsors.
Je suis déterminé.
Ainsi que de l'espoir,
même les expériences des utilisateurs
sont targetées
pour expériences d'experts
et d'ingénieurs.
Par exemple,
en tout cas,
mises en code online,
que l'on utilise,
on les fait tout
sur votre
votre computer.
On utilise l'ID qu'on veut
ou un éditor texte
et une ligne de commande
et vous êtes au racisme.
Pour essayer de faire des codes pour vous-même,
visitez codecrafters.io
slash devtools-fm.
Vous allez y avoir 40%
et vous aussi vous soutenez le podcast.
Et avec ça,
on va retourner au épisode.
Oui, je pense que c'est quelque chose
donc on veut avoir un
quel est le Grip AST
et pourquoi vous utilisez ça
et comment ça s'est passé.
Mais je pense que
je suis en train de travailler sur un projet.
Il y a un projet
appelé TS Query
par le même gars qui a fait
mieux.
Je ne me souviens pas
d'avoir parlé de ça
en passant.
On a parlé de ça beaucoup.
Oui, il y a un projet
qui était exactement ceci.
C'est un style CSS
de type scripts,
AST nodes.
C'est vraiment cool.
J'ai écrit un projet CLI
pour pouvoir le faire.
Mais le problème
que j'ai toujours eu
avec ça
c'est que
pour les listeners
qui ne savent pas
quel AST c'est,
c'est un syntaxe abstract
et un texte texte.
C'est le moyen
que le code s'est représenté
dans une structure
quand il est passée.
Quand vous utilisez
une libraire de selectorat
à la base,
vous devez
connaître
les names
des nodes AST.
Il y a des projets
comme AST explorer
qui est une app
où vous pouvez mettre
des codes source
et ça vous va
vous montrer
les ASTs.
Vous pouvez donc
utiliser ça
pour savoir
ce que votre selectorat
devrait être.
Mais ça était
toujours la chose
qui était très difficile.
C'est que
vous devez avoir
tout ce qu'on connaît
sur ce que les ASTs
sont,
comme les names de nodes.
Et les ASTs
peuvent changer
entre les versions
de la version type
de la version de la poly
ou d'autres.
Donc,
c'est ce qui m'a
apporté
aux tools
comme les ASTs.
Alors,
pourquoi ne vous donnez
un petit peu
de explication
de ce que l'aise
des ASTs
et comment
est-ce que cela s'est passé?
Pourquoi
avez-vous
construit-vous?
Oui,
donc le tool AST
est un
grep
qui est le nom de l'application.
Donc,
vous pouvez juste
penser
sur le grep.
Donc,
je pense
que c'est
beaucoup de
des ASTs qui
n'ont pas déjà
utilisé le grep.
Donc,
le grep est un tool
que vous pouvez
chercher
des textes
et
vous invoquer
le grep
et le grep
qui va trouver
tous ces textes
et
trouver
des textes
pour vous.
Mais l'une chose
que le grep
ne peut pas
comprendre votre code.
Donc,
si vous
dis que
vous avez
pris quelque chose
comme
un bon nom,
ce bon nom
peut être
un identifiant.
Donc,
c'est
une partie
de la code.
Ou,
ce peut être
des commentaires.
Ou,
ce peut être un string.
Mais,
la plupart du temps,
vous voulez
dire
que vous voulez
trouver
seulement la partie de la code.
Comme un identifiant
nom
ou un matin.
Mais,
c'est
vraiment,
vraiment
difficile
de faire
ce grep.
C'est
presque impossible,
je dirais.
Et la similitude,
oui,
et vous pouvez
aussi penser
à des similitudes,
comme
OK,
selon ce
bon nom,
vous pouvez trouver
tout ce que vous avez
bien regardé.
OK,
ce sera facile
dans votre
texte,
parce que vous avez
l'ID
ou le service de langue.
Le service de langue
trouvera
ces
références de message.
Mais,
le service de langue
seulement
supporte
les utilisations limitées.
Donc,
vous devez
trouver
un
message,
un message
de la code.
OK,
ce sera bien.
OK,
mais si vous voulez
trouver
quelque chose comme
ce que vous voulez,
selon ce
ce message de la code,
je ne veux que
trouver
un argument
sur le string.
L'adverteur
pour le maître
à un plus
de la case de vue,
ce sera
OK,
j'ai un file secret
qui est le
password de l'application.
Mais dans la base de la code,
je ne veux pas
mettre le password
par l'application de l'adverteur.
Ce sera
un issue de sécurité.
Donc,
je vais trouver
tous les passwords de l'application de l'application
avec le string.
L'adverteur
est le premier argument.
Mais ce sera très
difficile
pour
l'adverteur
ou
le maître
ou l'adverteur.
Donc,
ce que l'adverteur
est quelque chose
entre le
maître
et l'asp.
Il se connait
votre code
mieux que le maître.
Il ne se
voit pas
ce que c'est un texte.
Ce n'est pas un string
avec un
séquence de caractère.
C'est un trait.
C'est comme
ce que Justin a
déjà dit.
C'est un trait.
Tout le code
est encodé
dans le syntaxe
trait.
Donc,
vous avez
un trait
qui est programme
et ensuite vous avez
un
trait
et dans le
trait
trait
vous avez
un nom de maître
et un argument.
Donc,
vous avez un scrap
un scrap de la grapette
et vous pouvez
trouver votre code
basé sur
ce trait
le maître.
Ce n'est pas
trait.
Ce qui est
intéressant est
que
le trait est très difficile
parce que vous avez à
préciser
ce que le trait
va devenir.
Et ça signifie
que vous devez
au moins
constructer
quelque chose
comme un trait final
par votre main.
Si vous avez
d'autres expériences
que vous avez
en code,
vous savez,
constructer
ce test case
trait test case
est très difficile
parce que vous avez
un nom
et
ok,
le premier nom
est
le deuxième nom
et le deuxième
c'est le
le premier nom
ou le premier nom
c'est très difficile
mais le grapette
a un autre
approche
donc
parce que nous sommes
chercher
le code,
c'est
le code
est
est déjà
peut-être
dans le syntaxe
pourquoi
ne nous
n'avons pas
à utiliser
le code
pour chercher le code
donc c'est
le
le bourse
de
le
pattern
le pattern ASD
donc le pattern ASD
est
comme
c'est comme
un piece de code
c'est un code de réglement
mais vous pouvez
somehow
répliquer
quelque chose
peut être dynamique
comme
régulièrement
d'expressions
d'or
donc les dottes
peuvent matcher
tout le monde
ou pas
et dans l'Instagram
nous ne sommes pas
utilisés d'or
mais nous avons
utilisé quelque chose
comme
un métal variable
donc
c'est un identifier
que ça peut matcher
à l'enquête
syntaxe
donc de cette manière
nous pouvons
utiliser le code
pour chercher le code
et
cette courbe code
est
en fait
comprendre
ce code
mais oui
c'est super cool
comme Justin a dit
comme
aucun
expérience ASD
que j'ai eu
je vais juste
aller à l'explorer ASD
et je suis comme
ok
c'est
ça
c'est la merde
comme je dois
transmettre
ça
dans le code
et comme
ça
juste ajoute
beaucoup de complexité
mais l'idée
de juste
pouvoir
faire
faire
le code
et puis
matcher
ce code
c'est super cool
donc comme
c'est le moyen
que ça fonctionne
que
tu veux
prendre mon code
search
et puis
faire
un ASD
de ça
et puis
matcher
les parts de la
courbe
oui
oui
exactement
comme
exactement
oui
donc ASD
est base
sur
le code
donc le code
est un projet
qui
est inventé
dans le GitHub
donc le GitHub
est
un endroit
où nous
stockons
tout le temps
sur notre code
donc le
code
a aussi
beaucoup de
de
différents codes
et
différents langues
donc
java
javascript
Python
C
donc
le code
aussi
supporte
beaucoup
de range de
langues
et puis
en utilisant
le code
le code
on peut
dire
sur le code
de la courbe
dans l'ASD
et
basé sur ce
ASD
je vais inspecter
OK
et le code
le code
a
des
textes
comme
les metamérables
si oui
OK
je vais
transporter
à un
pattern
donc
OK
ce
pattern
peut
matcher
à
quelque chose
donc
on va
et si
ce n'est pas
c'est juste
que
dire
un ordinateur
de la
syntaxe
de la
note
OK
je vais aussi
transporter
c'est
à
un
code pattern
qui ne
ne match
exactement
de
cette
syntaxe
donc
en ce cas
que
tout peut
être matché
contre un
truc
oui
le truc que j'aime vraiment
sur ce
donc en pratique
ce que
ça
ressemble
à
ce
que
tu cherches
pour une fonction
tu te réveilles
le nom de la fonction
par
la parenthèse
et si
il y a
un paramètre
tu fais
comme
ce que la syntaxe
comme
dollar
et puis
comme
quoi que
oui
ou
quoi que
le
le placeholder
serait pour ça
et si
il y a plusieurs
variables
ou
plusieurs arguments
pour la fonction
tu as un
spécial
ou un
spécial
chose que tu peux
faire
mais
il matche
exactement
à ce que tu as
expect
et tu n'as pas
à savoir
de
le
comme
tu n'as pas
des
les gens peuvent utiliser ça sans consulter à l'AISD,
sur le site de l'AISD.
Donc, ce sera une bonne nouvelle
pour la communication des gens.
Un autre chose qu'on n'a pas mentionné
sur comment le syntaxe de search est beau,
c'est que, depuis que vous vous inquiétez,
le space de l'AISD ne matters pas.
Dans beaucoup de vos exemples,
vous avez des logs de console
qui sont allés sur le terrain.
Et si vous voulez faire ça
avec le recueil et le réplique dans votre éditeur,
vous devez avoir de la même chose.
Vous devez faire des règèques très difficiles
pour y aller.
Mais ça me rend la question,
si vous faites ça,
vous avez des formats?
Si je suis en train de grepter pour un log de console
et ça se split entre 4 ou 5 lines,
est-ce que cette structure est préserve?
Oui, pour le part de la search,
un pattern single peut s'assurer de plusieurs lignes.
Mais ça sera un peu plus compliqué
quand vous utilisez le recueil.
Si nous avons un log de console
et que l'argument est un niveau indentif
comparé à ce que le console est,
quand nous recueillons ça,
ça sera très très compliqué.
Et si le base graphique de recueil
est d'inventation sensible,
si l'argument, comme on l'a dit,
a indentifiquement le niveau de l'argument,
si vous utilisez le recueil,
ça sera aussi un niveau indentif.
Donc, pour les deux cas,
si vous avez une query de search,
vous avez des multiples lignes,
vous devez aussi faire des replacements
des multiples lignes.
C'est un peu inconvénient
parce que vous n'aurez pas d'une query.
C'est un peu plus difficile.
Je choisis de préserver l'intentation
parce que pour l'intentation sensible,
comme Python,
l'intentation est très très importante.
Et pour les deux cas,
si je dis que je garde l'intentation,
ça donnera un meilleur résultat.
Je trouve des fonctions,
mais je veux dire que dans JavaScript,
je veux changer la fonction de la déclanation
dans un fonction de l'arrivée.
Donc, la compétition de l'intentation de l'article de fonction
sera très utile.
Oui, pour sûr.
Il y a beaucoup d'interessants trade-offs ici
parce que les langues en JavaScript
ne sont pas censées en white space
ou beaucoup plus flexibles.
Comme vous le dites,
Python, pour sûr,
vous pouvez mettre des erreurs.
Mais ça semble encore une compétition worthwhile
parce que ça fait encore une raison
sur ce que vous changez.
C'est beaucoup plus simple.
Une recommandation est d'utiliser
un graphiste ASGRAP avec votre format.
Donc,
généralement,
le code est changé.
Et avec la ligne commande
ou avec la processus de batch,
vous pouvez mettre des erreurs en format.
Et ensuite,
vous pouvez mettre des erreurs en format
comme PDF,
ou en SMT.
C'est une stratégie assez commune
pour quand vous faites des modèles de code.
En l'an dernier,
je ferais des scripts de code JS.
Vous devez avoir de l'aisté
et de la transformer.
Et les choses ne sont pas bien formées
sur l'autre côté.
C'est comme si vous piquiez l'outil
et vous étiez plus bon.
Ce qui est très unique
consolidate les hautscores d'une estor Between
leur ét regard et le code ADF.
And on ne sait pas
quels sont et les à l'ền.
Et les Allen gun et
Oh, oui, bien sûr. Nous avons déjà parlé du pattern.
Le pattern est un code convenient et sweet pour les constructeurs.
Mais généralement, ce n'est pas puissant de dire que si je veux faire un pattern,
ce sera un code de function.
Alors, comment est-il que le commentaire entre le nom de la fonction et le parenthèse?
Donc, généralement, ce sera difficile de faire un pattern.
Parce que, ok, je veux aussi faire un métal variable pour le nom de la fonction.
Mais je ne peux pas faire un métal variable pour le commentaire.
Parce que ce n'est pas possible par le tricéder.
Donc, une rule est quelque chose qui combine l'expression de un système de rule
et entre le pattern convenant.
Donc, pour l'exemple, nous avons parlé de la fonction de la fonction.
Mais ce sera un commentaire entre les deux.
Donc, vous pouvez faire quelque chose comme ça.
Tout d'abord, vous avez un code ASD,
donc vous avez à regarder en bas en ASD.
Donc, ok, c'est la fonction de la fonction.
Et puis, vous pouvez aussi faire quelque chose comme ce que le CSE est en fait.
Ok, je veux aussi que cette fonction de la fonction ait un commentaire de la fonction.
Donc, combinez ces deux règles.
Nous pouvons préciser et locuer des règles.
Ce n'est pas possible avec le pattern.
Et par cette fonction, nous pouvons aussi utiliser des règles très complexes.
Certains de ces règles seront matchés à un métal.
Ce métal peut être utilisé dans le tricéder.
Et le tricéder est aussi un tricé, mais il peut contenir un métal.
Le métal est un métal, un métal de groupes, comme une expression régulière,
qui matchent des textes.
Donc, par l'utilisation de la fonction, le métal et le tricé,
nous pouvons faire une fonction très complexe.
Donc, ça va vraiment être un code de moduse,
parce que, traditionnellement,
certains de ces règles peuvent être réjectés.
Régix, on va essayer de trouver cette fonction.
C'est un code de moduse,
parce que c'est un code de moduse,
qui est typiquement pourquoi nous ne faisons pas ça,
ou juste que nous sommes tous en train de se faire.
Et puis, la situation de moduse,
c'est que si on utilise quelque chose comme la fonction de code,
vous avez besoin de programmer le code.
Et c'est programmer,
parce que vous devez trouver des choses avec toutes ces relations.
C'est comme, je veux une fonction avec cette signature
qui a ce truc dans le corps,
et puis je veux faire une fonction de ré-write.
Donc, vous devez dire que pour les règles,
vous pouvez les expérimenter,
c'est comme, je veux avoir cette pattern,
et peut-être des patterns composées,
comme plusieurs patterns,
et puis vous pouvez utiliser cette collection de informations
pour former des ré-writes très complexes.
Oui, donc, le système de ré-write,
c'est progressif.
C'est un scale de la utilisation simple.
Je peux chercher le place,
avec cette pattern.
Mais le système peut progresser
au niveau de la situation complexe.
Vous devez trouver un autre node
qui est dans un autre node
de la syntaxe.
C'est comme, je veux trouver un code password
dans un code insecure,
ou dans un contexte insecure.
Donc, cela ne peut pas être facilement expérimenté
par une pattern.
Ou, si je veux expérimenter cette pattern,
je vais usually introduire
beaucoup de syntaxe pour cette pattern.
Donc, l'utilisateur va avoir à apprendre
les langues hostes,
comme le script géologique,
et aussi la pattern syntaxe.
C'est ce que je veux éviter.
Nous voulons remercier notre second sponsor
Runme.dev.
Quand il s'agit de l'infra-cloud,
nous vivons dans un monde complexe.
C'est 2024 et nous sommes encore en train de stocker
des op-docs et des Wikis
et de relier un peu de scripts
et de marquer des repos fracturés.
Runme veut mettre des op-docs dans votre repo,
et le reste de votre code.
Avec Runme, vous pouvez empouvoir
votre whole team d'être en charge de votre infra-cloud
avec des notes simples.
On peut créer des op-docs,
créer des dashboards de mission,
des op-docs externes,
ou des op-docs op-docs.
Pour commencer,
on peut faire un runme.dev.
Une sorte de rule de l'invent que j'ai évoqué
est des relations parent-child.
En React, c'est comme,
vous ne pouvez pas utiliser cet component
dans cet autre component,
ou en Hooks,
vous ne pouvez pas utiliser ces appels
ou des APIs dans certaines situations.
Pour que vous puissiez me mettre en place
des choses comme l'invent.
Oh, c'est vrai.
Alors, si vous avez un
spécial hook
dans le code browser,
si vous avez un code browser,
vous pouvez identifier
l'AMST dans le même file.
Ça peut être bien.
Si vous avez...
Vous pouvez...
Je pense que vous êtes
en utilisant le Next.js.
Et vous avez un API server
que vous ne voulez pas
être appelé dans le code.
Donc, si
ce file a été utilisé
par un client direct,
sur le top de votre file,
c'est certainement
un file browser.
Alors, en utilisant l'AMST, je peux dire
OK, je veux premièrement
trouver un API server
et ensuite,
il devrait être dans un file
avec un client direct.
Donc, cette
nouvelle est parfaitement expressible
sur l'AMST.
Mais il y aura un rôle
plus difficile.
Ce file est
parfois utilisé en service
et parfois en client,
parce que c'est un outil commun.
Donc, le cas de finding these
cases sera beaucoup plus difficile.
Et ça devrait comprendre
chaque langue et chaque
language.
Donc, en parlant des règles,
les règles sont expressées
dans un file YAML.
Pourquoi vous avez
un file de configuration
sur un approach code
base, comme le code JSCOAD
Shift a été utilisé?
Oui, je parle
d'une langue en général.
Je pense que
avec un langage en général,
le langage de la langue
est plus de YAML.
YAML
est
plus de temps en suite. 80% de temps en suite.
Mais 20% de temps
en tout cas,
on a
tous des problèmes
normaux,
avec le langage.
YAML est
réel et élevé.
Mais c'est très difficile.
Et il n'y a pas de
expression
en général.
Mais
en général,
choisir un
qui est
très difficile pour le scripting.
Si je veux
supporter un JavaScript
en premier
classité
d'AES,
chaque user de AES
va être integré
pour javascript.
Ça va être facile
pour un web
developer.
Mais pour un developer
ou un developer java,
ce n'est pas le cas.
Et en utilisant
un langage nouveau,
YAML
est un
configuration file.
C'est un langage nouveau.
Vous pouvez l'utiliser avec votre texte.
Vous pouvez le mettre
dans le codebase.
Pour l'introduction
d'un YAML,
c'est plus facile
pour
des
diverses developers.
Vous avez bien étudié
beaucoup de choses.
Et l'une des choses que vous avez
étudié est un test pour les
rules de YAML.
Vous pouvez nous marcher
par la façon dont le test
fonctionne.
Oui, bien sûr.
L'autre rule est très difficile.
C'est très difficile.
Surtout si vous
étudiez une fois
ou une fois le pattern,
ce sera facile.
Vous pouvez l'utiliser
en seconde.
Mais en écrivant
un rôle très important
ou un rôle très sérieux,
il faut un rôle
qui peut prendre beaucoup de cases de l'âge.
Ce sera très difficile.
Donc,
le test de la rule de YAML
et
d'autres
des codes de chiffres,
ou des choses de la C'est.
Vous pouvez aussi l'utiliser
pour l'utiliser
pour prendre toutes ces cases de l'âge.
Ce sera aussi possible
pour les services de la SRAP.
La SRAP
a un test
d'un test
qui peut déterrir
toutes les cases de test
ou d'un envers.
Et aussi, elle produit
un point de vue.
Si le code est envers,
quelle est la
chose de la rule
de la C'est
qui se produit pour ce code envers.
Donc, de cette façon,
d'évoluer
votre rule
ou distribuer votre rule
sera plus convenant.
Et la rule
sera aussi plus
confident
de la réchauffer.
Parce que,
j'ai un cas âge
de la rule de YAML,
je veux mettre
toutes les fonctions de la déclaration en JavaScript.
Je vais mettre la expression de la fonction
et la fonction d'une erreur
en fonction de la déclaration.
Et après, je pense
que je n'ai pas oublié
de prendre la déclaration de la déclaration.
Donc,
cette rule test
va vous aider
d'évoluer votre rule.
J'adore comment la CLA
est très facile de la set-up.
C'est un bon
expérience, où vous voulez
mettre les choses, comment vous voulez la set-up.
Donc, la set-up est très facile.
Et ça semble que vous avez
un tour de l'intention
Et un point de vue de l'intention
est les réactions et les extensions.
Vous avez pensé
à mettre
les règles qui sont définies
au-delà de la réchauffer.
Donc, je voulais
réécreer
la réaction de la réchauffer.
Je peux potentiellement
écrire ça et avoir des gens
utiliser ça dans leurs projects de grep AST ?
Oui, parce que
tout le grep AST
est filé en fil.
La seule chose qu'il faut
est la configuration
de la configuration,
et que
quelle est la rule
que vous voulez utiliser,
c'est juste un folder
dans votre réplique.
Vous pouvez donc dire
que si vous avez un repos de grep AST,
vous pouvez juste le cloner
comme un module
de votre projet de grep AST.
Ou ça peut aussi être publié
en PN, donc vous pouvez
installer ça et trouver
cette code, trouver cette rule
dans les modules de Node.
Donc, je n'ai pas décidé
que je ne voulais pas
faire une réaction de la réchauffer
mais vous avez dit que je voulais
suivre la langue host.
Si vous utilisez
JavaScript, ok, utilisez un PN.
Si vous utilisez, disons, Python, utilisez BIP.
Ou si
vous êtes infatué
à des codes
comme CPP, ou vous ne pouvez pas
faire ça, ok, vous pouvez
relier
tout le modèle.
Donc, de cette manière,
ça fait
une petite opinion de comment vous distribuez
vos règles. Oui, ça fait un peu de sens.
Je peux voir des
similarities dans les patterns que vous avez déjà discutées
et vous voulez
des gens qui
font des règles en langue pour pouvoir penser
sur leur langue et ne pas avoir à penser
sur les autres langues, donc ça fait du sens
d'intégrer cette
approche.
Une autre chose que je voulais vous demander
est que vous avez aussi des SDKs
que vous avez évoquées,
donc il y a au moins un pour JavaScript et un pour Python.
Et en regardant
les SDKs, ils ressemblent
à leur réunition
des SDKs. Je ne suis pas sûr
de l'extérieur de l'est-ce que vous avez
dit.
Vous pouvez expliquer un peu
sur les SDKs et peut-être
les limitations qu'ils ont
créées pour?
Oui, donc
les SDKs sont progressifs
par rapport à
les règles.
Les patterns et les règles peuvent
être réunis en mode de leur temps,
en mode de leur cas.
Mais vous pourriez encore avoir
un certain
scénario et vous avez besoin
d'une chose impérative
qui veut construire une règle très complexe
qui ne peut pas être expérimentée
par YAML, ou
quelque chose comme le CSL.
C'est
un cas de use pour
les SDKs.
Et la chose que
vous voulez
avoir plus de
ou plus
de compliqués, c'est
d'avoir un cas de use
pour les SDKs.
Vous devez
payer des costs de performance.
Pour les
règles,
il peut régler
plusieurs règles, parce que
le fiscar est rétendu en russes.
Donc
ce n'est pas
comme un JavaScript
qui est un single-stread.
Il peut exploiter plusieurs règles
en native.
Les règles de russes vont être plus rapides
parce que
toutes ces règles de russes
sont des codes de machine.
Mais les SDKs
vont être détruits
parce que vous devez
passer ces codes
sur la machine virtual.
Ces règles de machine
ne sont pas
d'absence
comme un JavaScript
et un single-stread.
Les PISONs
sont de la GIL.
Mais
les PISONs sont de la GIL.
Mais
les SDKs sont
plus flexibles.
Je vous donne un exemple.
Vous devez
une fonction de code
avec 5 ou plus
d'arguments.
Mais ces 5 ou plus d'arguments
devraient
avoir
des règles spécifiques
pour les règles de russes.
Ces 5 arguments
devraient être très confusés.
Pour ces règles,
ils sont très spécialisés
pour les règles customisées.
En utilisant
un drôle,
une rousse de YAMO
sera très verbale
si possible
pour les règles spécifiques.
Parfois,
parfois, vous voulez
comprendre votre code plus bien.
Nous avons dit
que les règles de russes
ne peuvent pas analyser
les règles crossfiles
ou les règles crossfiles
et les règles crossfiles.
Mais en utilisant le SDK,
vous pouvez le résolver
sur votre end.
Parce que
vous êtes en java, vous devez
utiliser un java plus que le SQL.
Vous pouvez
faire
des résolutions
et
donner un file résolvé
pour le SQL.
Ce sera plus possible.
C'est probablement un scope,
mais c'est cool si il y a un moyen
de connecter les ASTs.
Comme vous l'avez dit,
peut-être que j'ai une fonction de l'aide
qui utilise un menu
et je ne peux pas utiliser ça
dans certains scénarios.
Ce serait super cool de voir
que ce STP
s'en plage.
Oui, c'est très fort.
Je pense que ce sera
un scope de l'aide.
Ok,
vous êtes en train de travailler sur des autres outils.
Vous avez une extension de code VS
dans les works.
Vous pouvez nous dire
ce que vous voulez faire?
Oui,
le STP a
deux outils de la fonction
de la function.
Le premier,
le STP a un
un stp.
Si vous avez un
config STP,
vous vous mettez sur le link.
Vous vous mettez sur le
rouleau et vous ouvrez votre
adresseur.
Le adresseur vous a des issues.
C'est le STP.
Il y a aussi un autre
fonction, le search et le réplice.
mon utilisateur
ne
ne vivent pas dans le commun.
Ils ne vivent pas dans le terminal.
Ils vivent dans le code VS.
Vous avez un extension de code VS
qui peut prendre votre pattern.
Et le code
sera très convenu.
Et plus important,
si vous voulez faire un
réplice,
il
faut
prendre un groupe de match
dans le search.
Ce sera très difficile de
utiliser une expression régulière.
Vous avez un groupe de match
ou quelque chose comme ça.
Mais dans le code VS, c'est
un variable de mette.
Vous pouvez simplement utiliser ça dans
le stream de réplice.
Ce sera très convenu.
Le code VS
a deux main de
leite.
Pour le code VS,
je suis dans le studio.
C'est beaucoup de travail.
C'est vraiment
très intéressant.
Je suis très amusant
avec le code VS.
Toutes les détails de la UI
sont vraiment
belles et très plaisantes.
On regarde
le match de file.
Donc, tous les files
ont un match de search.
Mais si vous scroller
un peu
la liste scroller
ou la liste resultante,
vous verrez
un château de box
de file.
C'est vraiment
très sable.
Mais aussi, un bon château.
Oui, ils ont un bon UI.
Oui, je l'ai appris.
Un petit peu de box de château
peut aller très longs
pour faire que votre UI soit vraiment bien.
Le code VS est incroyable.
Je suis super content.
J'ai été en train de faire
un tour de la version
de la release now
qui a un search.
C'est vraiment bien.
Je pense que
ceci est le genre
d'enregistrement
qui est un bon enregistrement.
C'est un grand moyen
de faire un search
et de trouver un code
qui est plus difficile
que ça.
C'est vraiment intéressant
de faire des choses
comme les règles de la version.
En un peu,
Andrew, tu as mentionné
les langues de l'inter.
Si c'est un code mod
ou une règle de lente,
l'ASD Grip est un tool
plus simple pour expérimenter ces choses.
Parce que tu penses
très bien au langu
que tu es en train de faire la chose.
Ce n'est pas le cas
si tu es en train de faire une règle de lente.
Je dois relearner
les textes de lente
chaque fois que je rentre
dans la règle de lente.
C'est un processus de rééducation.
C'est vraiment bien.
Personnellement,
je travaille
dans des langues différentes.
Dans mon travail,
je utilise un type JavaScript
et aussi un code mod,
parfois Python.
Dans mon temps hobby,
je travaille dans des langues différentes.
Tout le temps, c'est Rust
et Python.
Je travaille dans ces langues.
Ce n'est pas tout le langu
qu'il y a de la ligne de lente
ou de la code mod 2.
Deuxième,
chaque code mod 2
a un design
unique
pour cette langue.
Donc, on peut
prendre un nouveau code mod 2
pour apprendre
les nouvelles langues
et les nouvelles truques.
A.S.Grap
a bien sûr que les langues
sont unifiées.
Donc, au moins,
on a un tool A.S.Grap
et le concept
de l'A.S.C.
et la règle de la règle
sera similaire à la langue différente.
Vous avez déjà un tool
qui est assez fort et vous vous expliquez
ce que vous avez planifié
pour le futur.
Quels sont les features que vous voulez
mettre à l'A.S.Grap ?
Il y a beaucoup de gens qui ont
demandé
que je ne peux pas utiliser A.S.Grap
dans mon propre projet.
Ou que je vais avoir un playground
et je veux aussi construire
un playground comme A.S.Grap.
Vous pouvez m'aider ?
Donc, on a un web assemblée
comme un grand signe pour les utilisateurs.
Et surtout,
pour les autres
des notes ou
des systèmes
d'un système d'adversation,
le Wazem est très utile.
Dès que je ne peux pas compiler
beaucoup de systèmes de
l'adversation de l'adversation,
le Wazem
va être très, très utile.
Le Wazem est un grand signe.
L'autre signe
est la extension de la code VS.
Parce que
avec le CRI,
il y a beaucoup de la compétition.
Vous avez besoin de retenir
ce genre de argument
et aussi le Wazem
a sa propre gramma.
Vous avez besoin de retenir ça.
Mais en utilisant la code VS,
vous regardez le logo
et vous cliquez sur ça, vous voyez
l'impact et les autres choses.
Ce sera très intrusif pour les utilisateurs.
Donc, le code VS
va être un
un grand signe.
Et enfin,
il y a
peut-être
des rues customisées.
Donc, en ce moment,
vous pouvez seulement choisir
une rue Yamabay
ou un SDK full-flage.
Mais je pense
que vous avez un truc entre
que vous pouvez construire
vos propres rues
en utilisant le Wazem.
Mais ce rule de Wazem
peut aussi être réduite sous le YAMU.
Donc,
si vous avez
votre Wazem
et aussi
vous pouvez utiliser ça dans votre rue Yamabay,
cela va
préserver
la nature
de la rue Yamabay, mais
toujours préserver
le nombre de rues
dans votre rue Yamabay.
C'est vraiment cool.
C'est un progrès cool.
Je n'avais pas pensé que le Wazem
était un bon
target pour les plateformes
qui ne pourraient pas
supporter des autres choses.
C'est un perspective intéressant.
Nous avons toujours
demandé un question
à la fin de nos épisodes.
Un que je pense serait intéressant de vous poser.
Vous faites
un peu de temps,
à moins un peu de tournage et de rues.
Vous pensez que rues
est le futur de la tue web?
Nous avons parlé
de des places où ça
fonctionne bien et où c'est difficile
de voir un compiler.
Qu'est-ce que vous pensez que le futur est là?
C'est mon disclaimer, c'est mon
opinion.
Ce n'est pas pour représenter tout autre.
Donc, pour la tue,
oui, rues est le futur de la tue web.
C'est un point de vue
de la tue web.
C'est un point de vue
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
Parce que
la tue web est un point
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est un point de vue de la tue web.
C'est la t enclosed pour les
univens qui sont de l'ensemble de striving
Ma
plus de 3.
Mais avec Napi, vous pouvez juste
utiliser une déclaration,
décorer votre fonction de drape.
Et tout se fait
en haut.
Vous vous faites juste une plus de 1 plus de 2.
C'est à peu près 5 lits de drape.
C'est très facile.
Oui, c'est génial.
Ces integrations sont super fortes.
Et je pense que
nous sommes en train de voir un peu de
des tools vraiment fortes qui viennent
parce qu'on a des choses comme Napi.
Et je vais dire,
je suis toujours un chien pour Dino.
Je pense que Dino est un peu
natif pour nous pour les integrations.
C'est superbe.
Les interfaces sont meilleures.
C'est tout pour ce qu'on a pour les questions.
Merci pour les podcasts Herrington.
C'était une conversation très fun.
Et le tour que vous avez construit
est super cool.
Je l'ai déjà partagé
à mon travail
et les gens ont dit que c'est
quelque chose que j'ai déjà besoin.
Donc, vous avez
fait un tour
que je pense que beaucoup de gens
vont aimer.
J'espère que ça vous le met.
Oui.
Je suis heureux d'avoir vous ici.
Merci.
Oui, oui.
Juste pour vous répéter,
j'ai été super heureux
que vous êtes venus.
Et AST,
je l'utilise tout le temps.
Je l'utilise vraiment tout le temps.
J'adore.
C'est un cool tour.
Donc, j'apprécie.
Merci.
Merci.
J'apprécie.