C#9 Source Generators with Jason Bock

Durée: 78m21s

Date de sortie: 09/04/2021

In this episode, I was joined by Jason Bock to chat about the new C#9 source generators! Writing code that writes code! We covered a ton of content, covering Source Generators, the Compiler API, Syntax Trees, Semantic Models, Expression Trees, and much much more!For a full list of show links, see the website here

Hey, tout le monde, bienvenue à l'Unhandled Exception podcast. Je suis Dan Clark, et c'est
l'épisode 15. Et aujourd'hui, je suis jointé par Jason Bock et nous allons parler de
C-Sharp9, source générateurs, qui devraient être très intéressants avec ce qui est un podcast
qui n'est que l'audio, mais on peut essayer tout. Alors, bienvenue à la show, Jason.
Nous allons essayer. Oui, merci pour avoir vous, nous l'avons vraiment apprécié.
Donc, vous avez réglé à la semaine dernière pour un talk à Donnet Oxford sur source
générateurs, qui étaient both extrêmement géniaux et aussi extrêmement utiles pour moi,
qui m'a donné un contexte de source générateurs, parce que je n'ai pas vraiment eu
l'occasion de jouer avec ça avant cette recording. Mais j'ai eu l'occasion de
avoir un joueur ce matin et de créer un petit généateur de source générateur au monde.
Mais avant de nous avoir regardé les sources générateurs, à la fin de l'épisode,
je vais commencer par lire un mention de la social-média de nos listeners. Et ce
épisode est mentionné par Nick Kirby, qui a dit dans un tweet, je l'ai construit un tool qui
m'a envoyé des notifications quand les épisodes podcast sont disponibles avec des fonctions
et des tâches d'assurance, des coups et des tables. Les podcasts que je m'ai abonnés
sont les podcasts d'un podcast de l'exception de l'un des sous-trait, et il a mis le hashtag
d'un exception de l'un des sous-trait, ce qui est le hashtag que je tend à utiliser, les
séquences, je pense que c'est le podcast de l'un des séquences et les podcasts de l'un des sous-trait.
Donc ça semble plutôt cool, pas sûr si ce tool est public, mais je vais le
placer et lui demander, et si c'est possible, je vais l'incluer dans les notes de la show.
Et c'est un honneur de l'incluer dans cette liste.
Donc je n'ai pas fait de vous donner un bon intro Jason.
Alors Jason est un advocate de développeur et des loans de la suite,
le speaker et la mvp Microsoft. J'espère que j'ai bien compris Jason,
que ça vous a appris sur votre profil LinkedIn, qui est là aujourd'hui.
Oui, c'est correct. C'est un nouveau travail pour moi, je l'ai fait juste de
les faire, je l'ai fait juste de l'envers, je l'ai fait juste de l'envers,






vraiment aligné bien avec ce que j'aime faire avec un peu de choses que tu fais
dans un rôle de devrel. Donc oui, j'en ai vraiment aimé.
Bien, et je pense que avant de commencer la recording, on avait
chassé un peu sur la publics speaking et en évoquant des hommes et des âles,
dont je n'ai pas encore besoin de mieux le faire, mais je suis tellement impressionné
avec tous vos paroles, que la « Donne d'Oxford », il n'y avait pas de hommes ou d'âles à tout.
Et maintenant, même si vous pouvez l'éteindre, je vais être conscient de ce que vous avez dit.
C'est une chose, on l'a parlé de ce qu'on a parlé de la dernière fois,
et on l'a parlé de la recording, de les conseils.
Et je l'ai fait un peu plus tard que je l'ai mentionné, mais depuis que nous sommes sur le sujet,
le conseil de beaucoup de conseils que je peux donner à la personne, c'est
comment tu improving les skills de la publics speaking et ce que tu peux faire
quand tu es en train de se faire, relativement à ceci, et ça va se dire que c'est vrai,
mais c'est si vrai que c'est une pratique. C'est de pratiquer tes paroles,
en tout cas, pratiquer les paroles trois fois,
enregistrer si vous pouvez, si vous êtes dans un salle, ça peut être si froid,
mais actez comme si vous étiez en train de parler dans un salle, actez-le, et enregistrez-vous.
Vous serez amusant, la première fois que vous faites ça, que vos mannerismes,
comment vous parlez, les gestes que vous faites,
je ne suis pas vraiment... Vous ne pouvez pas les écrire parce que ça a été délire.
C'est une des choses que vous...
Si vous voulez être vraiment bon dans votre vie, si vous voulez être quelque chose qui est très
fluide et qui se sent naturel, si c'est de la musique, j'ai tous mes instruments ici,
je peux voir où je suis en train de se faire, mais c'est un podcast,
donc c'est tout comme ça, vous devez visualiser ça dans votre tête,
je parle avec les gens dans le salle, je suis là maintenant,
mon office, j'ai un bunch d'instruments et j'ai joué de la musique pour
beaucoup de années, je n'ai pas juste pick-up la guitare et j'ai pu jouer
l'arruption par Van Halen à l'arrivée, j'ai dû
pratiquer et pratiquer et faire de nombreux erreurs, et c'est une des choses que vous voulez
faire en public, pour éliminer des choses, et faire mieux à cette crainte, c'est juste
pratiquer et faire de l'euro, c'est un des les conseils que j'ai.
C'est vraiment intéressant avec les développeurs et les instruments,
j'ai quelques guitarres, j'ai un guitarre dans l'autre salle,
et je pense que c'était l'épisode DDD, je ne sais pas ce que c'était,
c'était un épisode de groupe, il y a quelques, et à l'enjeu, on a juste
remarqué que nous avons tous des instruments dans le background, il n'était pas en personne,
donc nous avons juste pris un écran, mais nous pouvons tous voir l'autre,
donc nous avons un écran avec nous tous, avec nos instruments.
Bien, je vais inclure le lien dans les notes de la show.
Et si on veut faire ça pour celui-ci, je peux prendre l'un ou l'autre à l'end,
et on va prendre un peu de ça si vous voulez.
Oui, c'est certain, je trouve que j'ai un dans ce salle, et j'ai un électrique
là-bas, mais ça ressemble bien.
Ça ressemble à ce que vous avez dit de Van Halen, que vous êtes probablement un peu plus
avancé que moi.
C'est drôle, il y a des gens qui ont vu les guitarres de flics qui sont juste en début,
et qui ont fait des erreurs du début, comme je l'ai fait quand je l'ai appris.
Et à ce point, en une main, je me sens comme si je pouvais aller en stage et commencer à
souligner, et commencer à jouer, et faire ce que les autres personnes ne sont pas en stage,
mais il y a des gens que je sais que je suis un homme, parce qu'ils sont
très bons à ce que l'on fasse, et c'est incroyable de les regarder.
C'est tout relative, même les gens qui sont vraiment, vraiment bons,
les joueurs professionnels, les bons sont les uns qui sont humbles,
parce qu'ils disent que je suis toujours en train de apprendre de cette personne,
ou je l'ai juste entendu cette personne jouer, et wow, c'était vraiment cool,
c'était intéressant.
Ce sont les musicians que je veux apprendre, parce qu'ils sont toujours en train de
apprendre, même si ils ont été en train de faire un professionnel pour les années.
C'est un point de toucher sur votre point de pratique,
aussi avec la langue publique.
L'une chose, évidemment, n'est pas au moment parce que nous ne nous commuient,
mais l'une chose que j'ai déjà fait beaucoup, est que dans le car,
pendant que je commuie dans l'office, j'ai juste pratiqué mes paroles,
et souvent c'est comme ça que je découvre le contenu, par la parlée en parlant.
Et aussi, quand vous vous dérivez, vous n'êtes pas inquiétantes de quelqu'un
en éclairant dans un autre salle, donc vous n'avez pas eu la
conscience de la vie, et vous pouvez juste parler en parlant, pratiquer,
en se dévouant.
Et c'est comme de me dire deux bords avec une main à la main,
parce que c'est en utilisant ce temps pendant que vous commuiez.
Oui, j'ai fait ça beaucoup si je suis en train de faire quelque chose,
je vais juste pratiquer un paroles dans ma tête,
même si vous n'avez pas envie de le faire, parce que vous êtes en train,
et si je fais ça où vous vivez, je pense que j'aurai vraiment besoin de
être concentrés, parce que je suis toujours en train de faire la bonne partie de la route.
Vous vivez, vous vous dérivez en plus de la route, et je serai tellement confus,
je ne pense pas que ce soit une bonne idée pour moi, je dois vraiment être concentrés.
Mais oui, je fais ça beaucoup dans les carres, je pratique les paroles.
C'est vrai, je ne recommande pas que les gens soient détruits
pendant le tour de la show, donc je vais le faire.
Cool, ok, source de générateur, donc je sais que le nom nous donne une clé,
mais qu'est-ce que nous sommes?
Donc source de générateur, c'est un nouveau feature dans C-Sharp9.
Techniquement, c'est un feature dans le compiler qui se passe le match avec C-Sharp9.
Et je fais cette distinction parce que quand vous pensez à un feature de langue
qui vient de C-Sharp, c'est typiquement un nouveau keyword,
c'est un nouveau moyen de faire, en lieu d'un délai de switch,
vous pouvez faire la match de pattern, c'est quelque chose comme ça.
Ce n'est pas un nouveau keyword ou un nouveau syntaxe ou quelque chose comme ça.
C'est, vous créez un projet qui réfère les procédures de la nouvelle packages de Microsoft,
les codes de code Microsoft, les ones.
Et puis vous implementez des interfaces et vous vous dites que
je veux générer plus de code C-Sharp.
Pendant la compilation, et je me suis dit que c'était un de vos quotes,
quand je l'ai dit, parce que la phase de compilation,
si vous pensez à faire le compilier actual, C-S-C,
ce que vous pouvez faire de la ligne de commande,
même si les gens utilisent des outils comme Visual Studio, VS Code, Writer,
tout ce qui peut être le cas.
Donc vous pouvez faire le code.NET Build ou de.Iran ou de C-S-C,
ou vous pouvez juste utiliser un outil.
Mais le point est que le compiler est un moyen pour vous dire
que vous avez le droit de référer à ces assemblages,
et ils vont être source-generators.
Donc ils vont être un part du processus de compilation.
Mais ils aussi corrompent comme vous le typez dans un IDE comme Visual Studio.
Et le IDE va occasionally demander à votre compilier
de ne rien faire de quoi, parce que les choses ont changé.
Mais c'est partie de ce pipeline de compilation,
c'est là qu'ils viennent vraiment de jouer.
Et donc ils peuvent générer ce code C-Sharp
par simplement émettre le code C-Sharp,
comme avoir un string de code C-Sharp dans ça.
Ce que nous avons parlé avant que nous commençons,
c'est que vous pouvez faire un exemple de haute-world.
Ça ne dit rien mais une classe
qui a un méthode qui va mettre sur la ligne de console haute-world.
Et puis vous pouvez appeler ça de votre projet
pour dire que cette classe n'est pas générée,
je vais l'utiliser et je peux appeler haute-world.
C'est assez simple.
Vous pouvez aussi regarder les choses
comme ce que l'existe syntaxe que ça va faire
dans la compilation et réacte ce que vous voyez là-bas.
Et ça commence à se faire beaucoup plus compliqué.
Vous pouvez aussi lire des files additionnels.
Vous pouvez aussi, si vous voulez vraiment,
vous pouvez aller appeler un service ou un database
ou quelque chose comme ça.
Mais en tout cas, vous commencez,
le résultat de la fin est de nouveau code.
C'est un nouveau code qui fait quelque chose
qui va faire votre vie plus facile.
Donc c'est un source de générateur.
Dans un nage de la salle, on peut
unpacker et aller plus loin.
Avec ce que c'était un podcast audio,
je sais que dans votre talk,
vous avez un exemple assez compliqué
parce que nous pouvons voir le code.
Mais pour le podcast audio,
ce serait le plus petit, le plus simple,
cet exemple de haute-world ?
Que ça serait peut-être le bonheur de un développeur ?
Le exemple de haute-world,
le plus simple de expliquer,
c'est que si vous allez créer un source de générateur
et que vous voulez juste émettre un code C-sharp,
il y a une interface que vous implementez
et il y a quelques méthodes sur le code.
Et en effet, j'ai un digital studio,
même si je sais que les gens ne peuvent pas voir
ce que je fais ici,
mais c'est juste pour des purposes de référence
pour ma propre santé.
Si vous regardez la interface,
que vous implementez,
ce qui s'appelle un source de générateur,
et encore, même si c'est un podcast,
pour les gens qui y sont intéressés,
il y a déjà beaucoup d'examples
et beaucoup de références que vous pouvez voir
et voir les détails visuellement.
Mais cette interface est basée sur votre hook,
along avec l'implement.
Vous devez avoir un attribute de générateur sur votre classe.
Mais ça dit,
l'execute est appelée,
c'est là que j'ai besoin de l'utiliser
ce contexte que j'ai donné.
Et ce contexte a un méthode qui s'appelle add source.
Et donc je peux juste dire,
hey, c'est mon source.
C'est le source qui a texté,
c'est une classe C-sharp
qui a un méthode qui va émettre
ce world-là au console.
Vous pouvez faire quelque chose simple comme ça.
Donc c'est le
le 101 de générateurs.
Le raison pour laquelle vous voulez faire ça
est qu'il y a un whole bunch de raisons,
un whole bunch d'examples
pour
pourquoi vous voulez écrire
un source de générateur.
Donc peut-être c'est le moyen
qui devrait se faire passer par ce texte.
C'est en faisant...
Qu'est-ce qui est le motivation
ou pourquoi j'ai envie
de prendre le temps
pour apprendre des traités syntaxes
et des modèles semantics
et tout ce genre de choses.
Et je vous ai mentionné dans le talk
qu'il y a deux raisons
pourquoi vous voulez utiliser un source de générateur.
Ce sont
performances
et simplité.
La simplité est
que vous pensez à l'example
de changement de propriété de la propriété.
C'est l'un des
beaucoup de développeurs C-sharp qui ont fait
des expériences.
Si vous avez besoin d'impliquer
cette interface,
ce n'est pas difficile.
C'est très vrai.
Mais c'est un plate-boiler,
c'est répétitif,
c'est très drôle.
Ce n'est pas trop fun
d'impliquer ça.
Et pourtant,
vous devez, si vous voulez,
avoir un objectif observable
avec votre state,
spécifiquement avec les changements de la state.
Je me souviens de ceci
en faisant WPF.
Et c'est
juste beaucoup de code.
Comme vous le dis, c'est juste un plate-boiler.
Oui, exactement.
Et
l'exemple que la team C-sharp
a avec les générateurs de source
est un moyen de juste attribuer
un fil.
Et ça
va impliquer une génération source
pour faire tout le code
pour que je n'aie pas de changement de la nature.
Donc,
ça éliminera quelque chose
que vous savez qu'il faut faire.
C'est quelque chose que c'est répétitif,
c'est algorithmique.
Et
ce n'est pas le bon travail
que le développeur
veut vraiment faire.
Donc, c'est l'un de ces.
Un autre est
impliquer
une équitable
ou une qualité sur votre objectif.
C'est très bien.
Et vous pouvez faire ça
comme une génération source.
Donc, c'est un aspect de simplicité.
Je peux prendre ce que je dois faire
et si je peux
faire un passage dans ma tête
de dire que je dois faire ces deux pièces
tout le temps,
vous pouvez faire une génération source
qui le fait pour vous.
Donc, ça fait que ça automatique et simplifique.
Le autre est la performance.
Un des exemples que je fais
quand je fais mon talk est
de montrer un moyen de faire
un objectif de mapping
avec une génération source.
Donc, j'ai un objectif source
qui a un nombre de properties x
et un objectif de destination
qui a un nombre de properties y
et un peu de ceux qui sont matchés.
Ils ont les mêmes names
et les mêmes types.
Et vous voulez créer
un instant de destination
mais vous voulez mettre
toutes les propriétés
à ceux qui sont de la source.
Je vous le mets en exemple
dans un automap.
C'est un des gens
qui a été fait
par les développeurs de la chaîne.
Et c'est une bonne libraire
et c'est optimisé beaucoup.
Mais il faut utiliser
en quelque point
réflexion, des trônes d'expression,
des techniques d'autres
pour se faire en sorte que
ce sont ces mappings,
ce sont ces deux objets
entre les deux objets
que je peux matcher
et faire un set.
Ce qui est accessible
d'un à l'autre
et en ce qui est optimisé.
Vous devez encore faire
une réflexion.
Vous devez faire
quelque chose
à la fois en temps de tourner.
En fait, si vous utilisez
un générateur source
vous pouvez
regarder le type source
et le type destination
et,
par les modèles syntaxes
et les modèles semantics,
découvrir
ce sont les matchs.
Et quand vous faites ça,
vous pouvez ensuite
mettre un code C-Sharp
qui dit
« Oh, je veux créer un nouveau type de destination
et mettre ces objets
en accord. »
Mais c'est tout en code C-Sharp.
Donc, c'est en train de
optimiser
ce que vous allez avoir.
C'est partie de votre compilation
et c'est en train
de faire

comme facile
que je peux penser.
Si vous voulez faire un maître.
Donc,
si vous faites
une réflexion code,
c'est un des conseils
que je donne à la personne.

si vous pensez
en faire un générateur source,
regardez le code que vous avez écrit
et vous voyez
si vous avez fait
quelque chose avec la réflexion.
Ça ne veut pas que vous
vous soyez en train
de faire un générateur source
mais c'est potentiellement
un bon candidat
pour regarder
et dire
« Je peux faire ça
quelque chose
que,
que,
en fait,
en faisant une réflexion,
je peux faire
avec un générateur source
et avoir
potentiellement un boost
de performance.
Donc,
ça a-t-il
retiré le besoin
pour les tools
comme
Posharp et FODI
et ce genre de choses
ou est-ce que ça
est extendu
et est-ce qu'ils se sont
en train de se faire ?
Est-ce qu'ils se sont en train de se faire ?
C'est un...
Je ne suis pas sûr
si ils se sont en train de se faire.
Mais c'est intéressant
parce que
j'ai vu
une semaine ou deux
ou alors
que Posharp a fait
un annoncié
qu'ils sont
complètement changeant,
ré-write
tout ce qu'ils font
et qui font
que
ils utilisent
une version fork
de
le compiler Roslin.
Et donc leur engine
sera complètement
Roslin.
Ce n'est pas nécessaire
de générateur source
mais
c'est beaucoup plus simple
et plus facile
de l'utiliser
c'est le fait
que c'est la réaction
qu'ils ont de cette tool.
Je vais vous en prendre
et répondre
dans un un peu
un autre façon,
ce qui est
si vous regardez
des outils comme Posharp
ou FODI
vous pouvez ajouter
vous pouvez ajouter l'implementation
vous pouvez également éditer
vous pouvez changer les choses
comme si vous voulez
faire la typique idée
c'est l'aspect ordinateur
de programmation
j'ai quelqu'un qui est en train de loge
quand je rentre un méthode
et j'ai l'example du méthode
vous pouvez utiliser
ces outils pour faire ça.
Avec les générateurs source
ils
juste créent un nouveau code
vous ne pouvez pas modifier
ce qu'ils ont currently
avec les générateurs source
et j'ai été
un MVP pour
je suis en train de regarder
maintenant
trop longtemps
j'ai regardé mon award
derrière moi
et je pense que j'ai
été dans le programme
depuis 14 ans
ou quelque chose comme ça
et
même avec C-shirt
en train d'être open source
maintenant
ce n'est pas dans le passé
ils ont eu un très close source
et si vous êtes un MVP
c'est où vous pouvez
faire
le code
et vous pouvez voir
derrière le stage
et ce qui est vraiment
en train de se faire

la discussion
sur
le code modification
le programme de métro
ces types de concepts
n'ont pas été
nommés
c'est pas un peu
dans le monde C-shirt
dans la communauté
et il y a eu un attente
de penser
sur le
le même gif
où il y a un star
volant
par
ce qui est un attente
pour faire ça
dans C-shirt
et ça a
passé près du temps
où il était
en train d'être open source
je pense que vous pouvez
encore trouver
le
les prévus
et l'esprit
qui a été fait
dans le passé
donc ce n'est pas
comme
NDA ou quelque chose
comme ça
ils ont parlé
de
ajouter ces keywords
comme un
replacement original
et de faire
ce
et de faire
des classes partiaires
même plus
plus
de choses
pour que vous puissiez
potentiellement
faire
quelque chose comme ça
mais ils ont
repris
de l'aéroport
parce que
il a vraiment
confusé
pour les gens
quand vous
essayez de
dire que je vais faire
ce code
et tout de suite
ça va changer
sur vous
et comment
vous mérite
et comment vous
vous débarquez
et comment vous faites
toutes ces choses
pour
un développeur typique
pour raisonner
en un
en effective
de manière
longue
histoire
de la
tâche
ils ont dit
que ça
est probablement
un peu trop
aventurais
et trop
trop
trop
Je suis revenu
au bord de la
courte
et j'ai
l'idée de
des générateurs
qui sont
toujours
puissants
même si vous ne pouvez
éditer
votre code source
qui
je personnellement
j'aimerais
faire
un petit
blog
j'ai co-authors
pour
un

et
donc
je voudrais
faire
ces choses
mais
ce n'est pas
de prendre
d'autres
concepts
de
générateurs
parce qu'il y a
beaucoup de
cool
choses
que
les gens
sont déjà
faisant
avec les générateurs
pour
évoquer
certains
scénarios
donc
avec votre question
de
ce que ce soit
un complément
ou un travail
avec
FODI
et
des tools
qui
vous ont
fait
modifier
oui
les quotes
oui
dans
ce que
les codes
générateurs
vous créent
c'est partie de votre assemblée
si vous utilisez un tool
comme ls5
vous verrez
juste comme
d'autres codes
ce n'est pas différent
donc
vous ne pouvez en théorie
pouvoir
puis
utiliser
quelque chose
comme FODI

prendre
ce résultat
dans l'assemblée
et puis
faire
un whole bunch
de choses
si vous voulez
donc
ils ne sont pas
contradicteurs
pour éviter
l'un ou l'autre
de la travail
ils justent
prendre le problème
et approcher
dans des différentes
façons
c'est juste
un stage
dans la pote
je peux imaginer
si vous pouvez commencer
à éditer
les codes
dans les générateurs
pour faire
des problèmes
dans le monde
je pense
oui
c'est
il peut faire
beaucoup
de
différentes
issues
qui sont venus
et aussi
juste
de
l'expérience

si vous
vous
vous
typez
en code
et puis
quand vous
vous pause
pour un second
et tout de suite
ça change
sur vous
et vous êtes
comme
où ça vient
de vous
pourquoi
ça se passe
et
en quelque sorte
je serai
j'aimerais que ça
je n'aurais pas de problème
mais je peux
je peux
définir

ça serait
assez
pour beaucoup de
personnes
surtout
si elles
n'ont pas été
utilisées
pour ça
tout de suite
pour que
quelque chose
se passe
wow
qu'est-ce que ça fait
qu'est-ce que c'est
pour le debugging
qu'est-ce qu'ils continuent
donc
c'est
quelque chose que
le team
maintenant
a été
assez
adhément
pour
un positif
pour
dire
quand ils se demandent
bien
est-ce que on va
être
en train
pour
le futur
avec les générateurs
qui
font
l'editing code
et ils ont dit
oui, ça ne va pas
arriver
il y a des choses
qu'ils peuvent faire
dans le futur
et nous pouvons
parler de
quelque chose
qu'ils ont déjà
dit
qu'ils sont en train
de faire
une version 2
ou le futur
des générateurs de source
mais
c'est l'un qu'ils ont dit
oui, c'est un challenge
et ce n'est vraiment pas
n'importe quoi
près de notre radar
maintenant
donc ils sont en train
de faire un principle
de la principale
pour les générateurs
essentiellement
oui
et
et des gens
ils sont
oui, c'est drôle
parfois je vois des gens
qui ont
des commentaires
comme
pourquoi ne peux-je pas
faire ça
parce que j'aime vraiment
faire ça
mais
encore
ce n'est pas
de l'épreuve
des choses
que vous pouvez
faire avec ça
c'est l'une des choses
que j'ai essayé
de faire dans ma tête
tout le temps
c'est
ce n'est pas
ce que je ne peux pas faire
c'est ce que je peux faire
et avec les générateurs
il y a beaucoup de choses
que vous pouvez faire
pour
se résoudre les problèmes
dans votre domaine
et
comme je parle
de l'aspect de simplité
prendre des choses
en oubliant
et faire un plus facile
alors que
vous n'avez pas de
penser à ça
n'importe quoi
toucher sur ce que vous avez
dit
avant
sur
tout le temps
d'être
en source
et en l'air
je pense que
la team Microsoft
a eu beaucoup plus de commentaires
qui sont en
comme elles pensent
les choses
en faisant les planèges
et les intérêts
de l'initiel
oui
et ils ne peuvent
pas
tout le monde
oh oui
je
je suis le team
et Microsoft
de l'aspect
de
ils ont
went from
a closed source model
which i've heard
in some interviews that
they always wanted to
and had the intention of
at some point
make it open source
it's just
you know we all know
the history of Microsoft
with open source
it wasn't a pretty one
for quite a long time
and slowly
but i did actually
a talk on
the state of open source
and dotnet
a couple years ago
so i was looking through
this history
and you can see
slow
even like in the early
2000s
there were projects
that they were releasing
an open source
it was
just kind of a trickle
just a little bit
here and there
but it's slowly
but surely
over time
started to give
more and more
to the point where
in 2014
they said
they're gonna open source
Rosalind
which
quite a nice shock
to me
i was very happy
that they did that
and that's just to me
seem to open the floodgates
where everything
just started becoming
open source
but
you take this team
we've had people on it
for quite a long time
and they've all been working
in a particular
model
in a particular way
and now
all of a sudden
you can have
anybody in the world
coming in
and
saying
here's a pull request
or here's a feature
or here's an issue
or
you idiots
why are you not doing this
you know some people
don't necessarily
have the tack
but they should
and
it could be
it could be quite
frustrating
i imagine
but they seem to have adjusted
really really well
and kind of are learning
just like anybody
does an open source
what do you respond to
how do you handle
contributions
how do you do all this stuff
well with a
a code base
that literally
everybody in dotnet
runs
everybody runs a compiler
so
you know it's
in some ways quite a feat
to see
what they do
and and being an open source
you're right
you you get
a lot more
of an ability
to get opinions
from everybody
now
that's a two-edged sword
that can also be
quite overwhelming
but
there are things
that people can sometimes
say
hey did you think about this
and that may lead
to other thoughts
and conversations
that could be
somewhat beneficial
in the future
so
i'd love to have an episode
a podcast episode
speaking to one of the people
in charge of open source
for dotnet
make it happen
make it happen
because that would be
that'd be cool
yeah
it'd be really interesting
because there must be
so many problems
that you just don't think about
which they've hit
and maybe they didn't think
about it until they hit
those problems
but it'd be a really interesting conversation
i would
honestly
you just hit on something here
i think you should
because i can see on your wall
behind you
you got the mvp program too
you know
just
you mail somebody like mad
and just say
may not be you
but is
is there somebody within the team
i do a podcast
and i'd love to have this conversation
i bet
they'll find somebody
and you're gonna have a great episode
if you do
and i would listen to that
right i will send this email
après que l'on finisse la recording
ouais
bonbon
donc quand vous faites votre démon
en regardant les différents bits de code
le code actual
et nous avons touché le salier
aussi
le code qui était
en écrit
la source générale
est plutôt comme
une liste de lignes
où vous vous dites
les strings littérales
et vous avez mentionné
que c'est une façon de le faire
mais il y a aussi un petit package
qui supporte la templatisation
donc il y a des différentes manières
de faire ça
oui donc le package que vous parlez de
est un appel scribian
et c'est
github.com slash scribian slash scribian
je n'ai pas utilisé ça
donc je n'ai pas
pris le temps de juste
faire un petit tutoriel
et faire un petit tutoriel
sur ce que ça marche
mais
de ce que j'ai pu voir
ça ressemble
très intéressant
spécialement
si vous faites quelque chose
comme une source générale
parce que
ça a un
template
sensé
et donc vous pouvez
faire un petit tutoriel
où vous avez besoin
pour mettre
certaines choses dans votre code
mais vous êtes bien
la technique que j'ai faite
est
j'utilise un texte
d'un texte ironique
qui est l'un des codes
qui s'appelle
un texte d'indentie
donc le résultat
ressemble
plutôt bien
et

marche
c'est doable
mais
je vais être honnête
ça aussi s'occupe
parce que
je vais essayer de faire un code
write C sharp code
en C sharp code
en utilisant les strings
et
ce n'est pas un monde fun
pour être
le script
pourrait
faire ça plus facile
en quelque façon
je crois
donc c'est une autre technique
pour utiliser
however vous faites
vous pouvez en fait
construire
un texte syntaxe
si vous voulez
en utilisant les APIs
et
dire que je veux
vous ajouter
une expression d'invocation
je veux faire un type
de déclaration
je veux faire ça
et construire votre whole
couture
et puis
faire un 2 string
sur ça
et c'est mon texte source
donc
il y a quelques manières
que vous pouvez faire
bien sûr
n'importe quoi
sont
peut-être
mais
le script
je pense que c'est
un peu plus
plus
que ce que nous voulons
mais
pour moi
c'est ce problème
de
je dois créer
un string de c sharp texte
et maintenant
le langage C sharp
n'a pas un bon moyen
pour vous le faire
sans s'arrêter
tout au long de la place
avec
des
personnages
qui ne travaillent pas
dans un string
donc ça lead
à un potentiel
qui peut être
ajouté
pour C sharp
et encore
ce sont tous les sources
ce n'est pas
rien de
dans le

une idée
qu'ils ont parlé
est de
de la string de c sharp
donc
vous pouvez
essentiellement
mettre
comme
je ne sais pas si
ce est
exactement
le moyen
mais vous pouvez faire
quoi quoi quoi
et que tout
après ça
c'est juste
un string
et puis
à la fin
vous avez
quoi quoi quoi
et le point de ce
c'est que
vous avez essentiellement
un moyen de dire
ce sont
juste un bon peu de texte
mais
le moyen de dire
que c'est un bon string
je peux
faire
un type de syntaxe
de limiter
que
ça ne me force
à penser
à
comment
j'en ai
à éviter
tous ces personnages
spéciales
dans le string
donc
ce serait utile
pour Jason
ou XML
ou un whole bunch
de choses
ça peut être
quelque chose qui m'a aidé
dans un certain
moyen de faire
avec les générateurs de source
parce que quand j'ai
essayé de les tester
eux aussi
si je les ai
j'ai écrit un test
tout le monde s'est dit
il y a un autre tip
j'ai écrit un test de votre unité
mais quand j'ai écrit
mes tests pour les générateurs de source
ça s'arrête
parce qu'il y a
un code que j'ai besoin
de faire
passer
par la pipeline
de l'accompilation process
mais pour faire ça
je me suis un peu
tombé
parce que
j'ai besoin
de faire ce que j'ai besoin
de faire
des temps de la saison
il y a besoin de la meilleure façon
de faire ça
et donc peut-être
des strings raw
des strings légers
sera
un
aide
dans un moyen de faire ça
mais encore
le script
est quelque chose
que les autres gens
peuvent prendre un look
à
je pense que
certaines personnes
ont écrit
des générateurs de source
utilise ça aussi
et
semble avoir l'air
donc
quand ils créent
un string
à l'endemain
c'est vraiment
ce que
comment vous
vous en avez à ce point
ça ne s'est pas important
ça s'est vraiment
très bien
les strings
je pense que
comme
vous avez évidemment
le signe de la saison
dont vous pouvez faire
plusieurs lines
des strings légers
mais vous avez encore

échapper
comme vous le dites
et quand vous vous en avez
mentionné
des tests de unité
ou des tests de intégration
je veux mettre
un peu de Jason

parce que je veux un test
contre ce Jason
et juste ne pas avoir
à aller
à l'échapper
tout à l'heure
ça serait très sympa
oui
je
j'ai
fait exactement
ce que vous parlez
je l'ai fait dans les casques
je suis juste
juste
en train de le faire
maintenant
mais je sais
j'ai vu casques

je vais essayer de
faire un code C-Sharp
dans un string
et puis je vais faire
un casque où je dois
emmettre
dans mon code C-Sharp
un string interpellé
dans le
et c'est juste
comme
ça
me frie à la fois
à la fois
comme
où je suis
et ce que je fais
et c'est comme
oh
juste agré
tu sais
c'est pas fun
tout à l'heure
donc
oui
j'espère
que ça va
parce que
ce n'est pas
source de l'interieur
spécifique
mais ça va
aider
un peu
dans l'arrière
bon
donc
alors que tu as mentionné
des tests de unité
peut-il tester ces generators de source
oui
tu peux
et
tu sais
les gens
me demandent
des temps
comme
ce sont des choses
que les gens
doivent faire
ses développeurs
spécialement
si tu commences
et
tu es dans le
habitant de faire
pour moi
c'est des tests de unité
il y a d'autres
mais c'est l'un
que les gens
doivent faire
dans le habitant
n'importe quel code
que tu as écrit
pour quelle
cause
tu as des tests
en place
parce qu'ils
ils ont
sauvé
tant de temps
et je peux
le dire
je ne vais pas
maintenant
mais il y a un
histoire
qui a été
dans le passé

je suis
contre
les tests de unité
je pensais que c'était
un temps
et puis
un jour
je suis en révolution
et littéralement
depuis l'an
j'ai été
championner des tests de unité
donc même dans
quelque chose
comme des generators de source
peux-tu faire des tests de unité
absolument
quand tu créées
des sources de
je ne pense pas
qu'il y a un template de source de
generator
il y a un pour les analyser
mais il y a des exemples
qui sont déjà
là-bas
de la team Microsoft
qui
ont
pas seulement
comment tu peux créer
un generator de source
mais aussi comment tu peux
faire des tests de unité
aussi
j'ai été
jouer
avec
et en utilisant
l'applic de compiler
pour un long temps
comme je me souviens
de l'an
dans les
days de PDC

Anders
Housburg
qui j'ai j'espère
qui a dit le nom
qui a un petit peu
un hint
que ce compiler
c'est un service
qu'ils ont été
travaillé
et lentement
mais sûrement
en temps
vous devez entendre
un service de compiler
Project Roslin
et ce qui était
et ce qui était
ce qui était
à faire
et je
j'ai regardé
ce
en temps
et en tant que
il y avait des bits
que vous pouvez
commencer à jouer
avec
je pense que c'était
comme 2011
je l'ai déploité
et j'ai essayé
donc
je suis
travaillé
avec
l'applic de compiler
c'est un outsider
pour beaucoup de années
et donc
le point
de pourquoi
je vous le dis
c'est parce que
vous pouvez
définir
le process de compilation
dans la code
donc vous pouvez
créer les compilations
vous pouvez mettre la code
vous pouvez
faire des choses
où vous allez utiliser
quelque chose comme
ce qu'on appelle
le C-Sharp Generator Driver
et ça va vous permettre
de dire
oh j'ai un compilation
j'ai besoin de ces générateurs
pour regarder le compilation
et puis je peux
tirer les résultats
pour voir
est-ce qu'il y a des diagnostics
qui ont été reportés
que ça va réciter
des nouveaux textes de source
et puis vous pouvez
juste
écrire des tests
ou des tests
pour regarder ces résultats
et faire vos assertions
selon vous
donc oui
vous pouvez absolument
écrire des tests
contre vos
générateurs source
ce n'est pas simple
je ne vais pas
rester ici et dire
que c'est facile pour dire
surtout si vous n'êtes pas
familier avec
les générateurs source
et l'application compilée
mais c'est definitivement
possible
vous pouvez le faire
et vous devez
juste en pensant
que vous pouvez écrire
des générateurs source
pour aider à écrire vos tests
je suis sûr qu'il y aurait
des cas de utilisation
où je vais
faire
je vais très bien ici
mais
c'est
oui
vous pouvez tester
ces des aussi
donc vous pouvez écrire
des générateurs source
pour écrire vos tests
il n'y a pas de raison
pourquoi vous ne pouvez pas
il y a un projet
que je me souviens
longtemps ago
j'ai fait des paroles
qui s'appelle PECS
ah oui
j'ai entendu ça
ok
donc PECS est ce tool
il a en fait fini de
s'améliorer
dans ce qu'il s'appelle
Intellatest
donc si vous avez
Visual Studio
Enterprise version
tout le monde fait
bien sûr
parce que c'est tellement chiant
c'est un sarcasm
c'est un tool
je pense que c'est non-professionnel
c'est seulement une enterprise
mais c'est
c'est ce que PECS
a été original
et ce que
ce que ça fait
c'est que tu as regardé
ton code public
API
et
tu as dit
si je n'ai pas appelé
cette méthode
avec ces valeurs
qu'est-ce qu'il faut
faire pour le résultat
c'est qu'il regarde
dans ton méthode
et se déclare tous les
paths
et les conditions
et automatique
génère des tests
pour dire
je sais que si
je fais cette condition
ce sera les résultats
donc ça va générer
un test pour toi
pour ces cas
maintenant, il y a des gens qui ne vont pas
ouh je n'ai jamais eu le test
je peux juste dire
ceci à mon test
pour moi
mais il n'y a pas d'intelligence
en termes de
c'est le code que tu as écrit
dans le premier endroit
correct
il n'y a pas d'idée
sur ça
c'est juste réacteur
pour ce qu'il y a
donc
ça peut créer un peu de tests
et ça peut vraiment
venir avec des cas
que tu n'as pas pensé
ce qui est où je pense
que la puissance
est quelque chose
comme ça
et que
je n'ai pas pensé de cette condition
et j'ai trouvé
ça
et ouh
maintenant je dois
aller
et
aller vers mon réel test réel
et mettre ça dans le premier endroit
mais
il ne peut pas déterminer
que la logique que tu as écrit
est correcte
donc c'est un tool
qui t'aiment les tests
sur votre code
il n'y a pas de raison
pourquoi tu ne pouvais pas faire
quelque chose comme ça
avec un généreur source
tu n'as pas le temps
de voir
et dire
oh, il y a un type
et tu vois les méthodes
et tu vas en faire un tout
de la syntaxe
ce n'est pas facile
mais tu peux le faire
et dire
je veux faire un test
pour
appeler ce méthode
et

et puis
faire
ça
générer
votre unité X ou unité N
ou tout ça
tous ces tests
et puis
en fait
tu as ceux qui ont été
mises
je
j'aimerais
voir ça
fait par quelqu'un
je pense
comment tu pourrais faire ça
mais je sais
je n'ai pas de temps
pour le faire
mais
mais
j'espère que quelqu'un
s'inspire
pour faire ça
parce que je pense que ça serait
assez cool de regarder
j'ai juste donné
ton prochain projet
je sais que tu as un rox
et des autres projets
je me sens toujours
en train de penser
les listeners ne peuvent pas
voir ton visage maintenant
mais tu es en train de
être tenté maintenant
oh, oui
je n'ai vraiment pas envie de
faire un nerdsync maintenant
je n'en ai vraiment pas
mais
il y a une partie de moi qui est
en train de dire
oh, ça serait
ça serait assez intéressant
mais
j'ai un whole liste de
choses d'autres que j'aimerais faire
peut-être que je vais juste le mettre
sur la liste de ne pas finir
pour faire un tour
et ensuite
le faire à l'endroit
mais
en cas que je ne le fais pas
si d'autres personnes
sont inspirées
dans ce monde
donne-le un monde
donne-le un shot
en théorie, oui
d'answerer la question
je ne vois pas de raison
pourquoi tu ne pouvais pas faire ça
c'est comment
tu veux aller
avec quelque chose comme ça
c'est où la vraie question
vient de venir
en parlant de
des choses funkies
que tu peux faire avec des tests
et juste en tant que
dimension packs
j'ai vu un talk de lignes
c'est l'année dernière
ou l'année dernière
et en fait
le gars qui a fait le talk de lignes
m'a dit que je voulais
faire un touch
pour voir si c'était
un épisode
donc
je ne l'ai pas demandé
donc je ne sais pas
ce qu'il est en train de le dire
mais
je vais le faire en touchant

mais sur quelque chose
qu'il s'appelle
mutation test
je ne sais pas
ce que tu as entendu
je l'ai entendu
mais
c'est pas autant
que j'ai regardé
je n'ai vraiment pas
je pense que
j'ai essayé de
lire quelques articles
ou
regarder quelques
choses
des tools
qui font ça
mais
il n'a pas cliqué
dans ma tête
donc
j'ai pas le
le personne
pour
avoir une bonne opinion
sur ça
mais
mais
parfois
ce sont des choses qui ont pris le temps
mais
vous savez
ça me rappelle
de la première fois
que quelqu'un m'a introduit
moi aussi
parce que vous avez mentionné
le Roxx
cette
bataille de mouton
que j'ai créée
qui est maintenant
une base de source générale
donc
yay
mais
vous avez mentionné le Roxx
donc
de la suite
je pense que

ce que c'était
2007
quelque part
sur cette timeline
il y avait un projet
qui était sur
où quelqu'un a dit
hey on devrait commencer
en utilisant
mocs
pour
unités
et je me suis dit
que ce sont ces
je n'ai vraiment pas entendu
ceci
et donc
il
a mis ensemble
un petit démon
sur quelque chose qui utilise
Roxx
et j'ai
râlé de la chute
parce que
Roxx
a juste
regardé
pour moi
être
tellement
pêche
et tellement
confusé
et je suis comme
pourquoi
nous ferons ça
ça ressemble
comme
ça
vous savez
je
j'ai juste
ma réaction initiale
c'est juste
euh
je ne veux pas
faire ça tout de suite
c'est

le bénéfice
et
le
aide
n'a pas été

de toute façon
pour le
mais
quelque temps
plus tard
je ne sais pas
un an ou deux
ou tout le temps
il y avait d'autres
libraries qui sont
sur la chute
comme en substitut
MOQ
qui sont leurs apis
sont beaucoup plus
plus
plus
plus
mieux
et pour un moment
ça est ce qui a cliqué
dans ma tête
et je me suis dit
oh maintenant j'ai compris
maintenant je peux
surtout avec
en substitut
c'était vraiment la chose qui s'est fait
ceci fait beaucoup de sens
pour moi
donc
j'ai commencé à comprendre
et oui
le tout
c'est un moque
et ils peuvent être abusés
et les gens ne devraient pas
les utiliser
pour les tests
j'ai aussi
cet argument
mais
le concept ne s'est pas vraiment
cliqué
jusqu'à
quelque chose a été
et puis
le switch est en main
et puis j'ai l'aie
et à un moment
avec la test de mutation
je pense que je vais avoir
de la bonne réaction
ou quelque chose où
c'est expliqué
dans un certain moyen
où ça commence à faire
un peu de sens
pour moi donc
je devrais probablement expliquer
ce que la test de mutation est
pas trop beaucoup
parce que si il me joins
pour un épisode
on peut aller plus en détail
mais pour mon comprendre
le library
ou la test de mutation
l'alibi
en utilisant
en récent
change le code de production
ça fait que le changement est random
donc si tu as un
si statement
comme si quelque chose est
equal à quelque chose d'autre
ça peut changer
pour ne pas être equal
ou juste de récent change
et pour chaque change
il va voir si
que si la test de mutation
est faible
et si la test est faible
c'est une bonne chose
donc tu te dévoues
pour
le prochain mutation
je pense que c'est
ce que j'ai dit
Oh
Ok
parce que c'est
je pense que tu as sorti
de la sélection dans ma tête
parce que c'était quelque chose
qui m'était interdit
je me dis
pourquoi je veux un tool
de juste changer le code randomement
parce que c'est écrit
dans un moyen que je voulais
être
donc pourquoi je veux faire ça
mais
oui tu es tenté de faire
que tes tests
sont en fait
en faisant
c'est de la bonne réaction
oui
oui, c'est de la bonne réaction
que ton code
a des tests contre ça
qui est en train de couvrir
tous vos changements
Oh ok
si dans ta production code
si tu as accidentement changé
est-ce que c'est pas
ou tu as fait des changements
par exemple
tu as pas
quelque chose
et tu as accidentement
délicaté le pas
alors
la test devrait se faire
cacher ça
la test devrait se faire
oui
donc
ok
tu vois
aujourd'hui je l'ai appris
et tu ne l'as pas
maintenant j'ai un autre chose
sur ma liste
merci
j'ai bien expliqué enough
que tu pourrais comprendre ça
je ne sais pas pourquoi
ça ne
je pense que la chose
sans ne pas se déclencher
c'est
pourquoi je vais avoir
ce truc qui
serait juste réellement
changer mon code
pour voir si ça ne se déclenche
ou pas
je ne sais pas pourquoi
ça ne s'est jamais cliqué
dans ma tête
mais c'est
tu veux faire sure
que tes tests sont
en fait couvrir
ta réimplementation
dans la façon que tu as expérimé
et que si ça change
ça devrait se faire
donc
ok maintenant je suis tout à bord
donc
maintenant tu as deux
à moins plus de podcasts
tu dois poursuivre
parce que ça serait
vraiment intéressant de t'écouter
et le gars qui a fait le talk de lignes
je ne m'en souviens pas de son nom
mais
en fait
je pense que c'est un record
donc je peux inclure
le link à ce talk de lignes
dans la note de la show
oh
bien
mais comme je le dis
il ne sait pas encore
mais il a été sur le liste
pour un moment
pour en faire un touch
pour faire cet épisode
parce que je pense que c'était
juste un concept
vraiment intéressant
je n'ai pas entendu de ça avant
mais j'ai déjà eu quelque chose
qui peut cacher mon code de production
c'est m'aider
oui
tu as besoin d'un test muté
je vais le faire
je le fais tout le temps
tu sais
donc
pourquoi je dois avoir un tool
pour faire des choses mal
donc
je suis le tool
je me souviens
de toutes les générations
j'ai toujours aimé
ça
que vous avez vu dans le passé
comme
des tools de T4
ou d'autres tools
où vous avez parfois vu
ce code a été créé par un tool
et je me souviens un peu
un peu
donc
parce que c'était vraiment vrai
mais
et aussi j'ai aussi
ça a été un peu dégouté
là aussi
c'est drôle
avant qu'il a dit ça
quand tu m'as mentionné
qu'il a été créé par un tool
je me suis juste pensé
en le dire
et puis tu as
presque mis la tête à la tête
bon
bonnes dames
pensez à la
ouais
d'un à un
et ne défend pas
oh j'aime ceci
je l'ai vraiment vu
donc
donc
on a parlé un peu
du API de compiler
et des modèles de expression
et des modèles de symante
je sais que c'est difficile
de faire un podcast
je sais que on peut diguer un peu
plus bas
et expliquer
ce que ces choses sont
donc des modèles de expression
ok
donc tu as dit des modèles de expression
de syntaxe
des modèles de symante
je vais même en faire une réflexion
là-bas
parce que
des gens ont toujours
mis ça en place
aussi
et
tu peux même aller
à un autre niveau
à un niveau de sommeil
qui est
ce que les tools
comme monocysil
permettent de
en faire
une assemblée
et
lire
ses contextes
ses contenus
à un level
de l'IN
donc
tu sais
c'est tous ces choses
que
et que
certains de eux sont
liés
à des générateurs de source
spécialement les modèles de syntaxe
et les modèles de symante
mais
il y a tous ces différents choses
et C sharp
qui
me permettent
de
me faire
regarder
la code
en fait
en fait
tu sais
que
quand je vais écrire
ma code C sharp
et je suis juste type
en public class
customer
et etc
que à un moment
c'est turné
dans
ce que ce soit
un syntaxe
donc
je vais le faire
très vite
et que
mes dégrés
qui sont
en fait
juste derrière moi
sont en l'élection
d'ingénieur
je ne suis pas
dans un
personne de sciences

qui ne me défend pas
à personne
mais
le point est
que je n'ai jamais
pris un
cours
comme un compiler
quand j'ai voulu
à l'université
ou quelque chose comme ça
je me suis kind de
apprendre ces choses
comme je
cours dans ma career
donc
avec les compilers
tu as

tu as des tokens
et etc
mais
avec les générateurs
ce que tu commence
avec
nos
tristes de syntaxe
et les compagnons
de la tristesse de syntaxe
tu as un syntaxe
non
tu as
un token
tu peux aussi utiliser
la tristesse
c'est ton espace
des commentaires
etc
ce sont tous les choses
qui
complètement représentent
ton code
comme un string
d'exception
qui le met dans un traitement
donc c'est bien
tu as tous ces informations

mais
parfois
tu as besoin un peu plus
donc
comme je peux
trouver
que j'ai eu
un type de déclaration
syntaxe
non
qui va définir
soit un
cours
ou un cours
ou un cours
maintenant
parce que les cours
sont en C-Sharp 9
donc
j'ai ça
c'est bien
mais
ce sont les types base
ce sont
les types
qu'est-ce que tu as
des types
qui sont un peu
un peu
des autres
choses ou des aspects
sur notre particular code
qui tentent de
se faire
de la tristesse de syntaxe
est
assez difficile
à dire le least
donc
dans l'API
il y a un autre niveau
qui s'appelle le model sematique
et
je
beaucoup de gens
utilisent ces
parce que ça fait
que c'est plus facile
de se faire
de
dire
ok je n'ai pas
cette note
mais je veux plus de riche information
donc je
je
un symbole
essentiellement
qui représente
cette note
donc je peux
avoir
comme un type symbole
ou un symbole méthode
ou un symbole événement
et
ça
kind de
ressent
même si ce n'est pas
je veux être clair
ce n'est pas
mais ça a
sort de
ce
genre de
flavor
de
ce que tu es
essayant de faire
et
ce que c'est
ce model sematique
qui est
vraiment
juste vous


plus de
information
sur la note
donc
c'est le next level
maintenant
si tu commence à mettre
des choses comme
des fruits de l'expression
ce sont des fruits de l'expression
qui ont été autour
depuis
quand ils ont été ajoutés
c'est sur la note 3 ou 5
je ne suis pas oublié
sur le top de la tête
peut-être 4
je ne suis pas sûr
mais ils ont été autour
pendant un temps
et essentiellement
c'est un moyen pour vous
juste pour dire
dans un syntaxe
que tu utilises
pour l'expression de l'améritage
sans que ce n'est pas
une function actuelle
c'est une expression
d'une fonction
c'est un moyen
avec un
un fruit de l'améritage
pour dire
cette fonction
a tous ces autres notes
le plus drôle est
que ce n'est pas
lié à l'application
de l'application de l'améritage
tout le monde
c'est un autre modèle
et en fait
cela
a rendu
un peu d'intention
parce que
les fruits de l'expression
ne sont pas sûrs
ils n'ont pas
la même
représentation
que un
trait de syntaxe
dans l'application de l'améritage
et ça peut
faire un tout
un path de
l'améritage et de l'améritage
et je ne pense pas
que nous avons le temps
d'y entrer maintenant
mais
les fruits de l'expression
ont un
même
trait de syntaxe
et
vous pouvez
visiter
l'expression
de l'améritage
et
les mêmes informations
de ce qu'il y a dans ce trait
et puis vous pouvez
compiler
et rater
pour construire
tous ces méthodes dynamiques
de l'améritage
si vous voulez
mais
ce n'est pas
la même chose
que les fruits
que vous voyez
dans l'application de l'améritage
donc il y a tous ces différents
APIs
et
choses que vous pouvez regarder
surtout quand vous êtes dans la génération de source
pour
voir
ce que je suis tentant de trouver
et puis
réacte à ça
et
construire vos choses
en accord
à ce qu'il y a
et donc ce sont les deux choses
spécialement
si vous parlez de
généreurs de source
syntaxe et de modèles de sematique
ce sont les choses
que vous allez vraiment
apprendre et
dealing
avec
beaucoup
donc
le plus vous pouvez
faire votre tête sur ces choses
le plus bon
si vous êtes
quand vous êtes dans les généreurs de source
je pense que quand j'ai dit
expression de la tréé
je me suis dit syntaxe de la tréé
mais
jamais
je vais vous donner plus de contenu
vous savez
mais
c'est parfois
comme je pense
quand j'ai fait le talk
à dotnet Oxford
je pense que quelqu'un a demandé
une
réflexion
parce que c'est un modèle
de votre code
d'exception
de la runtime
donc je veux un type
je veux des méthodes
je veux des propres
mais ce sont les choses
qui ont déjà été
des choses qui ont déjà été là
et c'est un modèle de votre code
de votre assemblée
à
runtime
alors que
ceci est tout à
compagnie de temps
donc
je pense que quelqu'un a demandé
peut-il avoir
un API
qui
a un type de
adaptateur
de tout le monde
de l'un entre les deux
et j'étais comme
vous ne pouvez pas
parce que c'est deux différents mondes
ils ne sont pas
vous pouvez utiliser
réflexion
si vous voulez
dans votre
génération
dans votre généreur de source
mais
ça ne servira pas
à la même
cause
d'actuellement
créer le code
et de regarder
les traités syntaxe
donc
vous avez aussi mentionné
quelque chose de
un studio visuel
qui s'appelle
le visualiser syntaxe
qui a l'air extrêmement
utile
oui
il y a un couple de
tools que j'ai utilisé
quand j'ai été construire
pas seulement les généreurs de source
mais
les réfacteurs,
les refacteurs,
les cofixes,
etc.
parce que c'est tout
dans le monde de l'application
de l'application
dans le studio visuel
il y a un tool
qui s'appelle
le visualiser syntaxe
qui
vous devez installer
le
compiler.net
de plateforme
ck
je pense que dans le installer
c'est le truc que vous êtes
en train de regarder
mais si vous installez ça
vous allez avoir une
fenêtre
que vous pouvez
emmener
le visualiser syntaxe
et
si vous le bringez
et puis cliquez sur
votre éditor de code
vous vous verrez
le tout syntaxe
visuellement
et
c'est
même
comme j'ai utilisé
les trucs dans l'application
je l'utilise toujours
parce que
je pense que
d'un analyser
ou d'un générateur
je veux faire
et je commence à penser
OK
ce que je suis en train de regarder
quelles sont les conditions
que je dois
être conscients
et que je vais en faire
donc je vais légèrement
commencer à typeer
le code C
de la carte
et puis
cliquez sur l'un des ces choses
et puis vous regardez
sur le visualiser
l'éventilisation
qui me dit
oh,
ce n'est pas le type
particulier
que c'est
et vous êtes
tous les propriétés
donc si vous utilisez
le studio visuel
c'est
et vous voulez
faire
les générateurs ou les analyseurs
vous voulez vraiment
avoir ce install
c'est
un temps de saison
il y a des autres outils
online
que les gens ont évoqué
pour
vous faire
vous faire
savoir comment je génère
une nouvelle syntaxe
en utilisant
rien mais
l'application de la compagnie
vous allez en générer
tout le
tout le syntaxe
de la factory
classes
et des calls
que vous avez besoin
donc
ce sont les plus utiles
aussi
mais ceci est vraiment
bien
si vous utilisez
quelque chose
comme
le code VS
ou le ride
je ne suis pas sûr
je ne suis pas sûr
d'avoir
quelque chose
similaire
à ce que c'est
mais
vous savez
si il y en a
vous voulez vraiment
les trouver
et les utiliser
parce que
je ne peux pas
garder
tout ce qui est
sur ma tête
c'est tellement
grand
il y a tellement de choses
donc
oui
j'ai bien sûr
utiliser
ceci
je ne sais pas
sur le code VS
je suis en train
d'utiliser
et ce matin
je google ça
et il ressemble
comme il n'y a pas
un
je sais
qu'il y a
il y a
pas de voix de utilisation
je ne sais pas
ce que les utilisent
pour la feed back
mais il y a pas de gens
en demandant
maintenant
surtout avec les generators
maintenant
mais c'est bien
si c'est
dans la
je pense que
j'ai vu
il y a un
extension
pour ça
mais
et il n'y a pas
personne qui a
commencé
ou rien
donc je ne sais pas
si c'est juste
si on a commencé
ou si c'est
si je n'ai pas tendu
à donner
ça à
aller
il y a un autre projet
je me suis juste
je me suis juste
que le bâtard
a un modèle d'exensibilité
que peut-il
que quelqu'un
juste
juste
juste

parce que c'est juste
que simple
juste
juste
d'extension
à la fin de la vie
probablement très difficile
ou au moins
pas simple
mais
mais je veux dire
si la communauté
en quelque sorte
que
tu sais
qu'on utilise le bâtard
juste qui dit
hey
si ça ne s'est pas ici
c'est
que c'est
ce que beaucoup de projets
ont commencé
x n'est pas là
tu sais
quand tu es
connecté
avec ce bâtard
pour Jason
tu sais
et je vais le dire
et je ne veux pas
dire
rien négatif
je ne vais pas
juste utiliser le bâtard
mais
ce n'est pas
contre le bâtard
tout à l'heure
je sais que les gens
vont être là
qu'ils vont dire
tu dois vraiment
utiliser le bâtard
c'est tellement mieux
je n'ai rien contre le bâtard
tout à l'heure
je n'ai pas
utilisé le studio visual
beaucoup dans ma vie
et j'ai en fait utilisé
ça
dans un moyen
que beaucoup de gens ne sont pas
comme je vois
beaucoup de gens
qui ont utilisé le studio visual
avec le
le colorisation de l'aliment
la solution explore
qui est toujours pente
et tous ces autres windows
et j'ai en fait
fait un peu de temps
pour changer
pour que le code editor
c'est la seule chose que je vois
je ne peux pas avoir même
des barres de bâtard
c'est juste la seule chose qui est en train
et j'ai appris les bâtards
pour dire
oh si je veux
regarder la solution explore
je pense que c'est
comme alt WS
et puis boum
ça juste le pop
et puis si je veux
faire le bon travail
je vais juste retourner
au code editor
et ça va se passer
et le studio visual
je ne vais pas être
tu sais
je ne suis pas
le méchant de
dans d'autres moyens
de forme ou de forme
mais j'ai juste été
en train de utiliser le studio visual
et j'ai
l'ai remarqué
pendant les dernières 5 ans
c'est été mieux
en termes de refacteur
et d'autres choses
que ça donne
donc
c'est juste quelque chose
à ce point
que je suis
confortable
et
je ne sais pas
peut-être si je suis
un writer ou un
writer, je vais être comme
oh, c'est cool
j'ai essayé de
utiliser resharp
il y a des années
et j'ai toujours
fait mon computer
par la fenêtre
parce que
j'ai
comme
quelqu'un qui m'a donné
leur computer
pour essayer
pour quelque chose de reason
et donc j'ai commencé
à essayer de faire quelque chose
de l'in
et ça m'a complètement
brisé mon flow
c'était comme
ajouter des choses
comme je l'ai typé
ou j'ai fait d'autres choses
et je suis comme
arrête
ça me fait vraiment
me faire mal
donc
je
j'ai
ma impression initiale
de ça
n'était pas bonne
mais
je sais que beaucoup de gens
me souhaitent
de ces tools
et donc
je suis comme
il y a
il y a évidemment
quelque chose de
moi
je n'ai pas fait
le temps
de vraiment
peut-être que je dois
faire
comme
un mois de writer
voir ce qui s'est passé
voir ce que c'est
comme
et vous vous remercie
sur le show
et voir comment vous avez
trouvé
ça
je ne peux pas
se faire frustrer
et tourner
mon oreau
parce que je n'ai pas
d'autre
donc
je ne peux pas
utiliser ça
comme un indicateur
oui
je suis un grand fan
de resharp
et de writer
mais
et c'est probablement
une pour un autre épisode
et l'un que j'ai
en fait
je veux pas
que ça soit
encore un épisode
d'un autre épisode
j'aimerais
avoir l'air de
l'un des teams de jetbrains
on a eu
Matt Ellis
faire un talk physique
à Donnerd Oxford
il y a pas d'autres années
qu'il y a
c'est-à-dire
comment
pour
writer
ils ont pris le resharp
en train de faire un processus
parce que
tout le monde
qui
utilise
resharp
et visage
le studio
sait que c'est lent
et c'est parce que
c'est un processus
où si un writer n'a pas
l'issue
oui
c'était un bon talk
c'est bien de
avoir un épisode
d'un writer
aussi
oui
c'est un 3
oui
on les râche
donc
dans votre
dans votre démo
j'ai vu
ce concept
de diagnostics
je pense que tu l'as touché
en un petit moment
avant
mais ça semble
être
comme
de
un point de vue
dès que tu en en développes
ça semble
extrêmement fort
oui
donc
les diagnostics
ou quelque chose
sont en train de

dans l'application
des

plus
généreurs
si tu as
écrit un analyzer
ce serait un moyen
pour vous
de dire
hey
j'ai trouvé une condition
que j'ai envie
l'utilise
de savoir
et
je peux
régler
le diagnostic
comme
que c'est
l'élevé de la
erreur
donc ça
pourrait
arrêter
le compiler
de dire
que c'était
une compilation
d'un successful
et si tu as
écrit un code
fixe
tu peux dire
hey
si ce analyzer
nous a
diagnostic
je peux fixer
ça
j'ai un moyen
de fixer
ce que
le problème est
et puis
faire un code
fixé
pour l'utilise
donc les diagnostics
sont en train
pour
le compiler
l'application
avant les source
généreurs
ils justent
que
comme si
si je suis
écrit un source
généreur
et je
rentre
aux conditions
comme
l'object
l'example
que j'ai
je vais
utiliser
comme mon exemple
il y a un couple
de choses que j'ai
regardé
que
si
il existe
je dois
le user
hey
tu peux me faire
être
aware de ça
une de
eux est
si vous avez
cinq propriétés
sur l'un
et le

sur l'autre
ce n'est pas
un appli
maintenant il ne peut pas
être un problème
mais peut-être
quelque chose
que vous voulez
être aware
de et
dire
bien hey
juste comprendre
ce n'est pas
pas un appli
donc je
je vais ajouter un diagnostic
mais ce n'est pas
une erreur
c'est
je pense que c'est
c'est
c'est d'aider
une ou un informatique
d'aider

et ces diagnostics
peuvent
vous pouvez avoir un message
dans le
titre et
par location
pour dire
où est-ce que le syntaxe
est originé
de
donc ça peut aussi
être utilisé
par le studio
et puis
en ce cas
le user
peut dire
oh
ok
je ne le cares pas
si ce n'est pas
un appli
je ne le cares pas
mais alors
ce qui s'est passé
si vous pensez
si vous voulez
je veux une source
pour la map de destination
et il n'y a rien
qui peut être
map entre les deux
ce serait probable
quelque chose que vous
voulez vraiment
être aware de
donc je peux
je crée un diagnostic
et je vais faire
une erreur
pour dire
je ne sais pas
pourquoi vous êtes
essayant de faire
un appli
entre ces deux
donc
soit
prendre la map
ou faire
quelque chose
que les maps
entre les deux
et je fais ça aussi
avec les autres
generators source
que j'ai éteints
avec Roxx
et les appels
par la partie
donc
oui
vous pouvez utiliser
un diagnostic
comme un moyen
pour dire
je suis trouvé
mes conditions
je suis trouvé
mes mêmes erreurs
et je veux
le user
savoir
sur ces choses
donc
oui
ils sont
c'est bien
pour
les rapports
dans votre generator source
bien
bien
pouvez-vous
vous avez parlé
de générer
les codes.net
pouvez-vous générer
tout ceci
aussi
comme
les photos
ce genre de choses
oui
donc ça fait
un potentiel
addition
qu'ils vont
peut-être
ajouter
je ne peux pas
dire certainement
il y a une PR
que je suis
fait
d'aware
d'où ils parlent
de faire ça
donc maintenant
vous ne pouvez pas
et j'ai essayé
au moins
je ne peux pas
savoir comment
je vais faire ça
mais
j'ai essayé de dire
oh par contre
quand je génère
c'est sûr
je vais aussi générer
le file texte
ça ne marche pas
ça ne marche pas
non
même si vous dites
comme
résultats.txt
ça fait comme un file cs
donc
ça ne marche pas

le manière dont vous voulez
ce qu'ils sont
en regardant
c'est que
parce que beaucoup de gens
ont demandé pour ça
c'est
quand je génère
ma code source
peut-être
je veux aussi
générer un prototype
peut-être
je veux générer
un file JSON
ou je veux générer
un autre type
de artifacte
qui vient
de ce process de génération
pour faire
ceci

ceci
pour que je puisse
faire ça
de manière
et
il semble qu'ils
travaillent
sur un moyen
pour faire ça
avec la prochaine version
de la source générateur
API
donc
oui
maintenant
je ne suis pas
d'accord
avec un moyen
de le faire
mais
ils sont
en regardant
soutenir
ceci
dans la box
dans le futur
parce que
les gens ont demandé
pour ça
et il y a des raisons
pourquoi
vous voulez faire
plus que de générer
la code C
je peux voir
avec tout ceci
le genre
les authors de la library
sont vraiment
en train de faire
pour des cas de
différentes usages
oui
il y a
tout
en regardant
ce que les gens ont fait
avec ça
déjà
c'est juste
incroyable
je pense que j'ai mentionné
dans le talk
pour
Donnet Oxford
ce que quelqu'un a fait
avec
créer un générer source
pour trouver
tous vos routes
dans une application laser
celle-ci est de Andrew Locke
et
ceci
c'était
comme je pensais
que vous pouvez faire
sur les serialisateurs
vous pouvez faire
vous savez
proxies
des types de choses
je sais si je vais changer
mais cette idée
était intéressante
parce que
je me suis dit
wow
je n'aurais jamais pensé
de ça
mais ça fait un tout le temps
je pouvais générer
un type
qui a tous mes routes
dans une classe
et puis
je pouvais utiliser
ça
peut-être pour
faire
les choses
dans ma application
pour automatiquement
avoir les boutons
qui routent
toutes ces choses
vous pouvez presque
penser de ça
comme un swagger
ou un type d'application
de type de approach
pour les applications laser
où je pouvais donner
la page de QA
qui dit
ici sont tous les routes supportées
et ici sont les values
que je peux aller à eux
si ils ont elles
c'était une idée cool
j'aime vraiment
cette chose
donc
il y a
il y a
beaucoup de choses différentes
je pense que
les générateurs de source
peuvent être appliqués
oui
ça va être
très intéressant
de regarder
pour tous les différents
des cas de utilisation
que les gens ont vécu
avec
oui
j'y ai compris
totalement
c'est tout ça
est-ce que c'est juste
sur donnet 5
sur wood
peut-être que vous pouvez le faire
avec les versions plus tard
oui
c'est seulement pour donnet 5
parce que, d'abord,
c'est partie du compiler
donc
ce n'était pas partie
de
les prévues compilations
maintenant, vous pouvez générer
si vous voulez
vous pouvez générer un code
qui n'est pas
c sharp 9
spécifique
si vous
pour quelle raison
si vous ne voulez pas
faire ça
c'est parfait
il n'y a pas de restrictions
sur
quelle version
de code c sharp
que vous avez besoin de générer
mais
oui
ça ne fonctionne pas
avec
les compilations

donc c'est
une restriction
donc
vous ne pouvez pas faire ça
si vous êtes dans la framework
ou si vous êtes
dans une version précédente
sur donnet core
cool
donc
est-ce qu'il y a quelque chose
qu'on a mis
avant de nous changer
aux tips de dev
oh, on l'a regardé beaucoup
je suis en train de regarder
je suis comme
wow, ce n'est pas mal
oui
oui
il y a
c'est
pour moi
je vais dire
ce
c'est un des features
qui ont été
réellement
en c sharp
que
je suis vraiment
heureux
que ils y ont fait
même avec
des warts
et des
les déchirquements
que ça a
c'est
encore
le
le pouvoir et la flexibilité
donne à la people
est
tremendous
et
si
les gens
veulent
c'est que
que sont les features
de c sharp
je ne peux pas penser
de faire c sharp
pour le code
avec le code
ou le code
c'est un grand édition
et
les gens
le font pour grand
en un moment
les choses avec
le link
même si vous ne utilisez pas
le link
juste le fact que
nous avons type
en France
petit
chose
mais
c'est ce que je fais
tout le temps
c'est
un
et
il y a d'autres features
comme ça
ce sont les
les
et pas que
ce n'est pas
comme un feature
comme un genre
si vous faites
un liste de
string
vous savez
beaucoup
beaucoup de
développeurs
utilisent ça
les generators source
sont nécessairement
vont être
réellement
par
chaque c sharp
développeur
là-bas
mais
ils peuvent être
utilisés
par
des gens
pour
construire
des projets
ou des packages
ou des packages

beaucoup d'autres
gens peuvent utiliser
pour faire
leur vie
plus facile
donc
oui
c'est
c'est un bon feature
et j'espère que les gens
se sont mises
un peu de temps
à au moins
prendre un look
à l'élection
et commencer à penser
sur
où je peux potentiellement
utiliser ça
oui
c'est
je pense que
mon favori
c sharp
9
feature
il doit être
record types
oui
c'est
c'est un bon
c'est
un bon
aussi
il y a
il y a beaucoup de choses
à la c sharp
9
que
nous avons ajouté
ça
c'est


ça
c'est
une des records
qui sont
les uns
mais
j'ai ma biaise
bien
si on commence
avec les records
types
on sera ici
pour une heure et un
huit

ou une
heure
ou une
heure
c'est
exactement mon favori
features
donc
on va faire des tips
sûr
on peut faire ça
donc j'ai deux
de eux
que je peux vous
et
je dois
voir
mon
no
c'est
parce que j'ai écrit ces
des
ou les

ici
c'est
donc
mes deux
des
un de eux est vraiment petit
et c'est
adoné
c'est
9
qui est
c'est pas
non
donc
pour beaucoup de
années
pour
comment
c'est
sur
ce qui est
si tu veux
checker
pour
non
tout le monde
qui
est
mon objecte
equal
equal
non
pour les
cas
que ce soit
pas
une
c'est
le point de

c'est
pas
une
c'est


le vaste vaste vaste
majorité
de cas
mais
il peut toujours
être
un
déconner

qu'il peut
déclencher
ce que
ces
opérateurs
font
et
les semantics
ne sont pas
ce que tu as
exprès
ils ne sont pas
pas
qui
tu penses qu'ils
font
encore
c'est
quelqu'un qui
est malou
tu n'as pas
vraiment
voulu
faire ça
mais
ces opérateurs
sont pas
vraiment
checker
pour
ce que tu
veux
faire
donc
dans
9
tu n'as pas
la
l'obligation
est pas
non
et
tu peux faire
cette comparaison
dans un moyen
que tu sais
que c'est
légèrement
à
checker
pour

est-ce
que c'est
equal
non
ou
pas
et
la
l
donc
c'est
une petite
chose
mais
je change
tout mon code
ma
habite
maintenant
pour
faire
ça
donc
j'ai
ce qui
encourage
les gens
pour
faire ça
aussi
le
autre
un
est
recommandé
des gens
c'est
un
petit
à
utiliser
un
bêne
je ne sais pas
comment
j'ai
des gens
sur ce
bêne
ce
ce
bêne
et
tu sais
si je l'ai fait
en
en parlant
où je suis
dans le crowd
et je peux voir
les gens
égrosser
les mains
je suis comme
combien de gens
ont
comme
utilisé
un bêne
sur
ce

et
c'est
encore
ce jour
je ne verrai pas
beaucoup de gens
égrosser leurs
mains
et
je suis comme
s'il vous plait
utiliser ce bêne
surtout
si tu es
toujours
essayé de faire
une chose
où tu es
comparé
un couple
d'implementations
pour voir
quelle est-ce
mieux
ne pas
faire
votre propre
arrêter
voir
commencer
arrêter
votre
temps de date
maintenant
ou
tout ce qui est
et j'espère que tes résultats
sont ce que tu penses
parce que
le bêne est compliqué
pour faire un bêne
c'est vraiment
difficile
et
ce package
fait
cela
beaucoup plus simple
donc
c'est ce que j'ai
j'espère que les gens
vont utiliser
plus souvent
parce que
tu peux
facilement
mettre un classe
avec deux ou trois
différentes
implementations
dis-le le
ranger
allez
aller
faire un coffe ou un bêne
ou tout ce qui est
ce qui est
pour toi
parce que ça va prendre
un temps
pour
ne pas seulement
trouver
quelle est
plus vite
mais si tu utilises
les diagnoses de mémoire
ça va aussi te dire
combien de mémoire
est allocée
et
tu peux
faire
différents
comme
les versions clr
il y a
il y a beaucoup de choses
que ce toulage
peut faire
donc
c'est ce que j'aimerais
d'occurrer
les gens
sur dot.net
pour faire
un look
à ce benchmark
dot.net
c'est drôle
avec le
nul point
je l'ai écouté
à
un de tes
vos
aventures
sur dot.net
que tu as récemment
sur leur podcast
et puis
et je peux inclure
un lien dans les notes de la show
et je pense que c'était
tout pour la C-Sharp 9
et tu l'as mentionné
et puis
d'ailleurs
quand je fais des codes
je les ai changés
quelques de
deux
c'est pas
non
parce que
votre épisode
c'est bon
ok
alors
c'est
c'est bon
pour entendre
et
j'espère que les gens
vont entendre
ceci
et ils ne sont pas
les gens
que tu peux faire
et la C-Sharp 9
maintenant
qu'ils peuvent
vous
vous
faire changer ces choses
dans leur code
et
encore
c'est probablement
pas
ça va

ça va
briser
quelque chose
mais c'est
c'est le bon moyen
de tester
pour
non
donc
et c'est en anglais
c'est comme
j'ai vu
sur twitter
des manches
des manches
des gens
qui utilisent
cette nouvelle
toutes ces différentes
nouvelles syntaxes
dans
la C-Sharp 9
avec les mots anglais
comme
avec
et puis
c'est pas
non
et puis
combinant
pour les
faire
vraiment
un code
si il y a un
personne qui me suivit
c'est
jérard parsons
il est sur la team C-Sharp
et
il
parfois
il va
trouver
il
il va
le tweet
sur les choses
que
vous le read
et c'est techniquement correct
C-Sharp code
et vous êtes comme
pourquoi vous faites ça
ce
c'est
ce
c'est
mal
c'est horrible
comme il
il a montré le
truc où vous pouvez
en fait
définir
une
classe publique
appelée
VAR
et
non
oui
et c'est correct
parce que
VAR n'était pas
un keyword
jusqu'à la C-Sharp 3
donc c'est possible
que quelqu'un ne pouvait
définir
un type
appelé
VAR
et ils ont besoin
d'honneur
pour la compétition de la base
de l'accompagnement
donc
si vous n'avez pas vraiment
VAR
juste à un public
un class
et aucun espace
donc c'est dans le
espace global
et on a un appel
VAR
et
sans qu'un éditor
confie
ou quelque chose
vous faites
il va dire
oh
vous êtes vraiment
essayant de créer
ou
type
quelque chose
comme
VAR
et ça
fait
tout
au haywire
c'est fun
s'il vous plaît
ne dites pas
que je l'aime
parce que je l'aime
je l'aime pas
je l'aime pas
ne faites pas ça
ne faites pas ça
mais c'est
comme il m'a dit
que l'un des choses
que vous pouvez faire
maintenant
les mots
et tout
il y a des choses
assez intéressantes
que vous pouvez venir
avec
dans C sharp
qui ressemblent
de funk
mais ils sont
vraiment correctes
donc
Jared a écrit
l'extension de
visuel
studio
oui
qui
j'ai utilisé
très très grave
en parlant de
benchmark.net
et aussi
on a aussi
eu des types de records
avant
j'ai vu un tweet
d'hier
et quelqu'un a twitté
qu'ils n'aimaient pas
utiliser le benchmark
et ils ont trouvé
que les types de records
ont doublé la vitesse
de Jason
sur le serialisation
et je ne pouvais pas
voir pourquoi
ce serait le cas
bien
je pense que le personne
a dit
parce que j'ai
répondu
à lui
ou à lui
je suis désolé
je ne suis pas sûr
qui c'est
qui c'est
mais
il y a quelqu'un qui a dit
que
oui
qu'ils avaient
regardé les records
et c'était
si ils ont utilisé les records
plutôt que leurs types
ont fait le serialisation
de Jason
deux fois
aussi vite
ou quelque chose comme ça
mais il n'y avait pas
un lien
à un
guest
qui avait
quelque chose
avec le benchmark
qui a élevé
ou quelque chose
c'était juste un claim
et je n'ai pas
mis

les détails
étaient
ou n'ont pas été
mises
donc j'ai kind de
fallu
et j'ai dit
hey
tu as un
répo
ou quelque chose
qui va prendre un look
parce que j'ai été
vraiment intéressé
en voir
ce qui s'est fait
pour le faire
mais oui
c'était
une question
parce que
les records
sont juste classes
sous les scènes
maintenant
il y a
il y a des pensées
peut-être
pour vous dire
des structures
comme les types records
dans C sharp 10
mais maintenant
les records
sont automatiquement
sont classes
donc je suis comme
comment ça serait
plus
plus vite
donc oui
c'est quelque chose
j'ai hâte de vous rappeler
de ça
parce que j'ai envie de

continuer à pushing
cette personne
j'ai envie de voir
les détails
je me suis répondu
aussi
en disant
si il a trouvé
pourquoi c'était le cas
parce que j'ai pas compris pourquoi
je me demande
si il comparait
une version
de dot.net
avec un nouveau projet
en utilisant les types records
peut-être
ça pourrait être
tu sais
c'est une des choses
c'est pourquoi j'ai envie de
donc
je suis en train de le faire
maintenant
c'est David McCarter
c'est la personne qui l'a dit
mais oui
je ne pense pas
je suis en train de regarder
le thread maintenant
sur Twitter
je ne sais pas
si vous avez
en fait
mis
n'importe
les résultats
donc
oh
quelqu'un
a fait un benchmark
de
eux-mêmes
et a fait
oh
ok bon
David a répondu
donc
il a eu
un repository
là-bas
qui montre
ce qu'il a fait
alors je ne sais pas
si c'est le benchmark
de toute façon
oui
c'est l'une des choses
avec le benchmark
de dot.net
c'est pas seulement
est-ce
c'est bon pour vous
pour découvrir
ce qu'il peut
être plus vite
ou pas
mais
c'est aussi
c'est une très easy
pour vous
vous mettre
ces tests
ensemble
publier les résultats
et puis les mettre
à l'intérieur
et puis
quelqu'un d'autre
peut le faire
sur leur machine
ou prendre un look
à et dire
le moyen de
vous mettre votre test
est
subtile et influence
les résultats
de la façon dont
vous n'avez pas
vraiment vu
de la façon où
donc
peut-être
c'est le cas
je ne sais pas
mais
oui
c'était
ça était
bizarre
je ne vois pas
comment les records
peuvent s'y faire
ce que c'est plus vite
une autre chose
à regarder aujourd'hui
merci
d'avoir
donc c'est le reste
de votre
dégâts
c'est pas assez
assez
plus tard pour vous
pour vous
pour ça
n'est-ce pas
c'est 9h30
maintenant
donc
pas assez tard
donc
j'ai
j'ai
le temps
ce qui est
le temps d'aujourd'hui
donc
mon conseil est
si vous vous en recriez un podcast
recriez le record
je n'étais pas going
à dire anything
parce que quand on a commencé
ceci
Dan a oublié de recrisser
le bouton
et il a dit
que c'était le mixte
je suis désolé
c'est comme
une phrase que vous
probablement
disiez
en Amérique
je n'ai jamais
entendu de ça
c'est la phrase
oh tu peux
dire
c'est le mixte
c'est ça
c'est ça
c'est ça
mais oui
vous n'avez pas
recrissé le mixte
mais
fortfarment
vous l'avez remarqué
que
il n'y avait que 5 minutes
donc on n'avait pas de
tout le monde
sur le record
mais oui
c'est un grand coup
je suis sûr
je dois vous rappeler
que
pour un grand poste
sur votre écran
record
donc
donc mon vrai conseil est
d'utiliser
les boutons d'id
parce que je ne vois pas
que beaucoup de gens
utilisent ce code
et quand je travaille
sur un base de code
je trouve que
les boutons d'id
sont des parts de code
pendant que je travaille sur un feature
ça fait super vite
de se faire couper
sur différents secteurs de code
que ça requiert
et ça me dit un grand nombre de temps
et beaucoup de loads cognitifs
en essayant de me souvenir
où tous les différents bits sont
surtout dans un nouveau base de code
que je n'ai pas assez familier avec
mais je n'ai jamais vu
personne utiliser le bookmark
donc je pensais que c'était
c'était plus important
pour le point
c'est un bookmark
avez-vous eu un studio visuel
ouvert
oui
je le fais
maintenant ça peut être
un truc très fort
donc on va trouver
si vous contrôlez KK
est-ce que c'est un bookmark ?
oui
non
ça ne fait pas de contrôle KK
ou peut-être un truc de récharpe
je suis sûr que le studio visuel
a des bookmarks
je fais le contrôle Q
à l'esprit des bookmarks
KK fait ça en marque
parce que j'ai utilisé le ride
et j'ai récentement
upgrade ma computer
donc je n'ai pas encore installé
le récharpe dans le studio visuel
et j'ai l'air ouvert maintenant
et si je contrôle KK
dans le Gutter
il y a un bookmark
et
vous pouvez ensuite faire
je pense contrôler
KK
et
faire le contrôle KK
dans votre bookmark
et ça fait vraiment vite
de faire le contrôle KK
mais peut-être votre contrôle Q
vous avez un différent schéma
oui
ça peut être
je sais parfois
les choses que je fais
sur mes
shortcuts de keyboard
pour quelque chose
et peut-être parce que j'ai utilisé
un tout contrôle Q
depuis un moment
et c'est juste
ce qui
juste continue
de la nouvelle version
de la studio visuel
que j'ai
donc elles ne sont pas nécessaires
de la maitre
mais j'utilise le contrôle Q
sur
faire
le bookmark
oh ça marche
le bookmark
ok
donc ensuite j'ai un petit flag ici
c'est un point
très bon
mais maintenant je ne sais pas
quoi faire avec le bookmark
il y a un pain
qui s'appelle bookmarks
si vous allez
voir les windows
en fait votre contrôle
votre contrôle Q
vous avez fait le contrôle Q
et puis vous pouvez
rénainiser les bookmarks
aussi pour donner les noms
significaux
donc je trouve ça vraiment
utile pour
juste
je n'ai pas
bookmarks
je garde long terme
je créé
les bookmarks
comme je travaille sur un feature
ou quelque chose
et puis
je les délicate quand j'ai terminé
et ça veut dire que je peux
rapidement
tomber
donc c'est comme
c'est comme
quand vous avez
un livre
en fait
alors que vous savez
que c'est une section importante
dans le book
et puis vous pouvez
comme
je ne sais si c'est une phrase américaine
ou pas
mais où vous pouvez
basiquement
où vous étiez le page
dans
oui, comme ça
c'est
le bookmark
contre un code
plutôt que le whole file
donc vous pouvez
mettre un bookmark
à la fonction
que vous travaillez
que vous travaillez
et puis
par exemple
vous dites que vous travaillez dans un feature où
vous avez
le projecte Frontend
en réacte ou quelque chose
c'est
dans le même
instant
d'un ride
ou un studio visuel
vous avez aussi
un projecte de basse
avec un contrôleur
et puis un logiciel de business
vous pouvez juste
mettre des points
dans ces différents places
et tomber autour
et je trouve que
il y a un peu de
la cognitive
juste de
se rappeler
où toutes les choses
étaient
parce que oui
je sais que les gens
parfois
ils font des commentaires
avec 2D
et
ça peut avoir
un peu de
un sens similaire
mais c'est
un moyen
plus structuré
de faire le genre
donc
cool
cool
donc avant de nous rappeler
est-ce qu'il y a quelque chose
qu'on pourrait vous dire
d'autre que
ce que j'ai dit avant
ce qui est que
si vous n'avez pas
vous allez regarder
les générateurs de source
prends le temps
pour au moins
aller avec eux
si vous pouvez
parce qu'ils
peuvent potentiellement
faire votre vie
plus facile
dans le long
donc
c'est
ce qui est le point
d'avoir
cette podcast
et je vais définitivement
inclure un lien
à votre
Oxford
en parlant de la note de la show
parce que
évidemment
ce sont des audio seulement
donc
ça vous fera voir
une actuale code
donc un grand merci
Jason pour les réconnueurs
c'est été amusant
de vous avoir
vous-même
Oh, merci pour avoir
moi
j'apprécie
cool
et merci
à tous pour l'entendre
un petit souvenir
que ce podcast est
sponsorisé par Evestac
qui est mon propre
company
qui a donné le développement
et la service de consultation
pour plus d'informations
visite Evestac.com
et si vous aimez
cet podcast,
s'il vous plait,
me laissez me séparer le mot
je n'ai pas normalement
utilisé le hashtag
unhandledexception
et je peux être trouvé
sur Twitter
à Drakan
d-r-a-c-a-n
et mes DMs sont éprouvés
et souvenez-vous
que les mentions
peuvent être réalisés
sur le show
aussi
et mon blog
d'anclock.com
a des liens
pour tous mes
sociaux aussi
et toutes les choses
que nous avons mentionnées
dans l'épisode d'aujourd'hui
seront inclusées
dans les notes de la show
qui peuvent être
trouvé
sur unhandledexceptionpodcast.com

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

TheUnhandledExceptionPodcast

Tags
Card title

Lien du podcast

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

Go somewhere