Naming things is hard! - with Nick Cosentino
Durée: 63m57s
Date de sortie: 28/08/2024
In this episode, I was joined by Nick Cosentino (DevLeader on the socials) to chat about refactoring code. We also discussed various other things, like automated testing, and how AI might affect us as developers, and much more!For a full list of show notes, or to add comments - please see the website here
Hey, everyone, welcome to the Unhandled Exception podcast. I'm Dan Clark and this is episode number 70.
And today I'm joined by Nick Cosentino to chat about refactoring. So welcome to the show, Nick.
Merci beaucoup, Dan. C'est génial d'être ici. Je suis content de vous parler.
Oui, je suis en train de vous parler. Je ne suis pas sûr que ce soit possible parce que nous parlons de refactoring.
C'est une conversation assez grande, donc je pense que ce serait une conversation assez intéressante.
Oui, absolument. Tu penses que tu es tout de même en fait, comme quand je parle de refactoring,
il y a un combat entre nous. Ce n'est pas refactoring, c'est rewriting, c'est en label à quelque chose d'autre.
Ce que je vais parler de aujourd'hui est de la manière dont ça se dérange, et que les gens vont en label à un autre,
mais le but de la fin est de faire des changements pour la code et de tenter de maintenir la fonctionnalité,
mais de pouvoir avoir un état d'un autre, donc oui, juste des labels différents, je pense.
Oui, et de la chance d'avoir des choses plus belles pour aller en place.
Exactement. C'est comme si tu fais ça pour en faire quelque chose d'aussi bien et pas juste parce que nous n'avons pas d'autre travail à faire,
et nous allons juste réécrire la code pour le fun.
C'est plus fun que de faire des réels travailleurs, non?
Bien, j'ai l'impression que pour beaucoup de programmes, c'est trop généralisé,
mais je pense que pour beaucoup de programmes, c'est comme si tu pouvais avoir ton tête en place dans la code,
tu peux faire des réunions de réunions de réunions,
et dire que si je voulais juste penser à construire des blocs de Lego virtuels,
et que je pouvais structuremer tout parfaitement,
alors que tu as cette opportunité de faire des réels travailleurs avec la code.
Je me sens comme si pour beaucoup de personnes, c'est plus fun.
Oui, je l'ai bien aimé.
Mais avant, nous nous sommes en train de réfacturer, et nous n'avons pas encore été introduits.
Donc, tu es le principal software engineering manager de Microsoft, c'est ça?
Oui, c'est vrai.
Et aussi un author de Dome Train.
Je suis.
Et tu as des choses aussi.
En fait, à l'honneur, tu es probablement mieux détenu que moi.
Donc, tu peux te donner des raisons de te faire entrer.
Oui, pour sûr, je peux te donner un petit background.
Donc, oui, Nick Cosantino, je suis le principal software engineering manager de Microsoft.
Je travaille dans le côté sub-strait de Microsoft.
Donc, pour les gens qui ne savent pas ce que c'est,
si tu penses à Microsoft 365,
Office 365,
le sub-strait est sort de la plateforme et l'infrastructure
qui permet aux services à être construits avec un commun grond, si tu veux.
Donc, si tu penses à des services micro-services qui peuvent être conduits,
plutôt que d'un certain service,
tu sais, comment on va construire l'offre?
Comment on va construire la fonctionnalité de la recherche?
C'est comme que le sub-strait va être
ce qu'on peut utiliser pour l'infrastructure de ces autres services.
Donc, pour me remettre un petit peu,
parce que la plupart de mes expériences ne sont pas à Microsoft,
je travaillais à un startup avant Microsoft,
il s'appelle Magnet Forensics.
C'est où la plupart de mon développement professionnel.
Mais je suis commencé à l'offre,
il y a presque quelques mois,
je suis devenu un manager de l'engineering.
Donc, un peu de fresh out of university,
un peu de situation de management d'enginérements.
Mais j'ai développé un software
et un team d'enginérements de management
à cette compagnie de forensic.
Et c'était tout.net, tout développement desktop.
Donc, une expérience très intéressante.
Le domaine de l'infrastructure de l'ingénieur digital
est très cool et excitant.
Une mission très impactuelle.
Nous faisons beaucoup de travail
pour aider les investisseurs et la force de la loi.
C'est très impactuel de savoir
que tu es aidant à faire une différence de façon de cette façon.
J'ai vraiment appris de faire
le développement desktop
à l'extérieur à ces systèmes
très grands.
La chose commune était Microsoft Tech.
La chose commune était tout.
J'ai réalisé des équipes de développement
dans Microsoft
pendant les premières trois années.
Et c'est un espace très difficile
parce qu'on a des déploiements monolithiques
et on a aussi
acheté des déploiements
pour des services de services de services.
Donc, il y a des patterns de déploiements différents.
Et à la fin de l'année,
c'est probablement 6-7 mois
que je suis allé au plan de route.
Je suis en train de faire un déploiement
de protection d'endroits,
de systèmes de caches et de choses comme ça.
C'est l'un des deux secteurs différents.
Oui, donc tu es plus capable de expliquer
ce que je veux.
C'est intéressant de voir
l'onfance de la loi
que tu as mentionnée.
C'est un grand changement.
Mais comme vous le disiez, c'est tout Microsoft Tech.
C'est juste de continuer
avec les mêmes manières de développement, je pense.
Tu n'es pas invité à des équipes en tout cas, non?
Non, non, non.
Ok, parce que sinon,
tu devrais en terminer cette interview très, très bien.
Je suis hésité de dire quelque chose.
Techniquement, je ne fais pas
de fonctionnement pour les équipes.
Personnellement, je ne développe pas
tout ce que je fais.
Mais on a une technologie de route
qui peut aider les équipes de support
comme besoin.
Je ne vais pas prendre
de responsabilité pour les équipes.
Je me suis dit
que ça peut être un peu de rire
parce qu'il y a un comique,
qui me fait chier toujours
mais c'est ce la
rencontre avec les filles et les enfants
pour la première fois.
Ils vont aller dans la maison
et ils font des hands.
Et il se dit que je crois que tu travailles
à Microsoft et il y a un lead de développement
de équipes et il y a des dagues
dans la maison.
C'est tellement drôle.
Je n'ai pas fait juste de l'explorer
mais je vais le mettre dans la chambre.
C'est tellement drôle.
Si tu n'as pas fondé un langage
colou, peut-être ne regarde pas le link.
Non, c'est génial.
Oui, Microsoft
est un ecosystem de Microsoft
pour longtemps.
J'ai créé des cours sur le train dome
qui a été une excellente expérience.
Je pense que le plus autre chose que je m'ai dit
c'est que je travaille chez Microsoft
mais sur le côté, je l'ai trouvé
très réel
de partager des concepts en générique
et de aider les autres.
Je pense que priori à Microsoft, j'ai eu
un grand sens de fulfillment pour le travail
que j'ai fait.
Je ne suis pas intéressé
à Microsoft, c'est très intéressant.
Surtout la technologie et la scale
sont juste dures.
Mais je pense que d'un sens de fulfillment
de avoir un temps au sein de la travail
et de pouvoir aider les gens,
c'est un sens
qui me fait perdre un peu
dans mon travail de travail de chaque jour.
Surtout en tant que plateforme
vers la force de la loi
et de parler à nos équipes.
Il y a juste ce niveau de séparation.
Donc, oui.
Avant de faire le temps
de parler, je vous remercie
que ce podcast a sa propre communauté de discour.
Si vous vous portez au site
unhandleexceptionpodcast.com
vous verrez un lien de discour.
Et aussi, merci à Everstack pour le sponsorisation
du podcast. Everstack est mon propre company
de procédure, développement et
services de consultation.
Et, en plus, les sponsors de la discussion
sont maintenant en train de regarder
d'autres sponsors. Si vous êtes intéressés,
les détails sont sur le site.
C'est refacteurant.
Ça veut dire que vous méritez tout votre
truc à Kubernetes, c'est vrai?
Oui, tout le micro-service à Kubernetes
et ensuite vous vous rassurez
vos mains et vous marchiez et c'est tout.
C'est cool, c'était bien de vous faire
votre show.
Merci beaucoup.
Sérieusement, vous avez mentionné
que refacteurant signifie des choses différentes
pour les différents gens.
Qu'est-ce que refacteurant?
Bien sûr, et pour mon perspective,
quand je parle de refacteurant, je prends
une définition plus grande.
Si je vous remercie,
je pense que la plupart des gens
vont dire que le refacteurant est plus
plus de définition plus laur, et la raison
que je n'aime pas l'utiliser est que je ne pense pas
que la plupart des gens en pratique
adhère à ça.
Donc, en commençant avec la définition laur,
il serait possible de changer le code
sans changer le comportement du code.
Donc, le plus simple
exemple de travail est de renamiser
les paramètres ou les variables.
Vous avez refacteuré, le but
d'improuver le code c'est peut-être
d'augmenter la rédabilité ou quelque chose comme ça,
mais fonctionnellement le comportement de ce code est identique
et si vous avez des comportements de nuance
ou le nombre de variables
ou quelque chose de ce qui va cacher
ce que ce comportement serait le même.
Donc, quand nous commençons à extrapoler
ces types de refacteurant, vous pouvez dire
que vous pouvez faire une extraction de méthode,
et que vous avez juste de la cale pour le refacteurant,
vous vous remerciez à un autre méthode,
ce comportement devrait être identique en théorie.
Donc, quand nous prenons
ce très noir lens de refacteurant
de façon dont le comportement ne change pas
en ma opinion, ça fait partie de la différence
que vous pouvez faire avec le refacteurant.
Et je pense que, d'une perspective théoretique,
c'est assez facile de parler,
juste parlez des différents changements que vous pouvez faire
où il n'y a pas de changement de comportement.
Mais je pense que, en pratique, ça se fait partie
parce que, comme les choses de la développement de software,
si vous justiez le lens de théoretique
et vous appuyez, ça ne se fait pas vraiment de la cacher.
Des différentes manières que vous pouvez dire,
nous allons utiliser ces patterns de design,
vous utilisez des informations théoretiques
sur les perspectives de la science des computers,
mais en pratique, nous avons des constraints différentes,
des choses différentes pour regarder.
Et tout de suite, vous commencez à chier
à la validity ou les assumptions que ces choses
font. Et je trouve la même chose
avec le refacteurant.
Vous devez dire, oui, nous essayons de garder le comportement
le même, mais nous sommes aussi
en faisant ce petit petit truc sur le côté.
Et maintenant, tout de suite, un peu de différents comportements.
Mais vous devez le faire
parce que la toute raison que vous avez refacteuré
dans le premier lieu, c'est d'enlever
une nouvelle fonctionnalité.
Je trouve que, en général,
la définition
s'adresse à avoir un certain nombre
d'airquotes, mais un certain nombre
de ré-writing. Mais je pense que la danger
est quand nous disons de ré-writing, les gens
vont dans ce très grand,
étrange, de ré-write, où
si vous dis le nom de ré-write, ça signifie
que vous écrasiez l'ensemble du système, vous commencez
à chier à la ré-writing. Et c'est
l'autre extérieur.
Je parle de refacteurant
dans un moyen que je ressens le plus pratique
définition, qui est, à l'aider,
de ne pas changer trop de comportements, mais
vous êtes probablement touchant
quelque chose qui va alterer l'agriculture
au moins un peu.
Je pense que vous pouvez avoir des différents types
de refacteurant, comme quand vous
... c'est le bon mot, je ne veux pas dire
le mot scout, parce que ce n'est pas très
inclusif, mais c'est un autre mot que vous pouvez utiliser.
Dépêchez-vous, c'est mieux que vous avez trouvé
l'approche.
Un bon principe de citoyen, je pense, c'est un que j'ai entendu
beaucoup, mais il y a ça. Vous travaillez
sur un fonctionnel, et vous êtes
en train de vous faire des changements, mais
il y a aussi un code base
qui n'est pas très readable et qui peut être
approché, et vous voulez
l'imprové, et peut-être que vous avez un explicit,
je ne sais pas si vous en avez appelé un
taché, un task où c'est juste
de refacteurant et de faire le plus readable,
et puis je pense que vous êtes plus capable
de faire ça sans changer de comportement, parce que
le point pour ce task est de faire le plus readable
et de refacteurant sans
aussi faire des changements de storytelling.
C'est vrai.
Je vois ça se parler
beaucoup sur LinkedIn,
je vois beaucoup d'opinions sur
le principe de citoyen,
de laisser le mieux que vous avez trouvé.
Je suis en train de le faire, et pas parce que
je n'ai pas l'impression de ça, je pense que c'est
génial.
Pourquoi vous regardez quelque chose de mauvais et dire
que je vais juste le laisser de cette façon ?
Je pense que je vais avoir l'idée de dire,
on est dans le code, je n'ai pas
le sens de le faire, mais je
suis en train de faire quelque chose de mieux.
Je suis en train de le faire, mais je suis en train de me faire
de la réplique, et je dois
le preuve, quand je parle de choses en pratique,
je me dis que pour mon expérience,
c'est ce que j'ai observé, et pas que
on ne peut pas faire un effort ici pour le faire
mieux.
Ce que j'ai observé, c'est que quand nous faisons
ce principe de citoyen, on va prendre un exemple
pour faire un fonctionnel, on va
aller exercer des classes,
toucher des codes qui existent déjà, et vous
trouvez en position de la question, vous allez
dire que ce variable de nom est un peu inédible
parce que cette logique, peut-être que
cette méthode est de 500 lines longs.
Je suis ici, je dois faire quelque chose
parce que je suis en train de faire un fonctionnel.
Ce que j'ai trouvé arriver en pratique,
et je ne dis pas que
si quelqu'un est en train de le faire, on va dire
que ce n'est pas le bon moyen de le faire.
Je vais probablement vous agir, mais c'est
ce que j'ai observé en pratique, c'est que
à la fois que ce soit le cas, si quelqu'un
dit que je suis juste un bon citoyen, je vais
continuer de faire mon fonctionnel, mais je vais
refactor ça. Et puis ils ont mis le committement
de la question, et ça va être un point important
que je veux dire, parce que ce qui s'est passé, c'est qu'ils
vont délivrer leur fonctionnel, ou un bug fixation
et éventuellement, il y a quelque chose d'inquiétude
qu'on doit remettre en place. Et c'est pas
chaque fonction, c'est pas chaque fonction que vous
commette, ou chaque bug fixation que vous commette, c'est
que c'est mal, il faut le remettre, mais quelque chose
ne va pas, et ça va arriver, parce que nous sommes
tous humains, et maintenant, tout de suite, vous
repartez pas seulement le fonctionnel, mais
le refactor, ou la autre façon.
Vous vous endvez en train de faire un bug
dans le refactor, vous pensiez que ce n'était pas
touchant le comportement, mais il y avait des cas de test
qui n'auraient pas existé, ou quelque chose.
Donc maintenant, parce que vous vous
repartiez votre refacteur avec votre
feature, ou le bug fixation, vous vous
vous vous abattez maintenant, parce que vous
vous êtes juste essayant de être une bonne personne.
Donc, une simple, je vais
utiliser les quotes aires, une simple chose
que vous pouvez essayer de faire, c'est que
si vous allez faire ces choses en même temps,
juste faites des committements de separate, et
un petit, vérifiez la box, comme que vous
avez juste dévoilé cet entire problème. Donc c'est un exemple.
Oui, je pense que l'autre chose, qui est
ce que je pense que vous allez dire, c'est
si quelqu'un réveille votre PR,
alors si vous avez, disons que
vous avez fait un contrôle RR
dans Rider, ou quelque chose, et que
vous avez renommé un whole bunch de choses, parce
que vous avez choisi un meilleur nom. Mais si
vous avez réveillé cette PR, et que vous avez
tout ce bruit de 100 files qui ont changé,
et tout ce genre de choses, c'est vraiment
difficile de voir le fruit de la pomme,
c'est vraiment difficile de voir ce qui est en train de
faire, ce qui est le changement de feature
que vous avez fait si c'est tout le même
committement, où si vous faites un
separate committement, même si c'est le même PR,
ou que vous pouvez regarder les deux separatements,
ou même mieux, juste faites ce contrôle RR
et faites un PR, qui est
sur le refacteur, et puis continuez
ce que vous faites, pour que votre PR
ou votre histoire d'utilisation actuelle
soit beaucoup plus readable, je pense.
Oui, absolument, et si nous
extrapolons ce scénario, et c'est pourquoi
j'ai dit que dans mon expérience, je l'ai vu
beaucoup plus près de re-writes
de feature areas, que le refacteur
est que ce type de choses
arrive où quelqu'un dit, je suis en train de
construire ce feature, et en général,
les bases de code qui vivent depuis longtemps
ne sont pas parfaitement modulées et extensibles,
il y aura des choses, un petit peu de crate
qui se crée, ça juste arrive. Donc, vous commencez
à dire, ok, je dois toucher cet area, je vais
faire un petit peu de clean-up et
inclure-le dans le PR. Et maintenant, je vais
faire le suivi, et il y a un autre chose,
je vais faire de clean-up et de clean-up dans le PR.
Et ce qui se passe est que vous vous gardez
plus en plus dans le râbite-hole. Et,
encore, si vous avez des mêmes principes
de juste faire-le plus modulé, alors,
plutôt que de dire, je vais juste continuer
de tâquer tout ce truc dans mon un grand
commis, un grand pull request, juste
pour que vous puissiez faire un pause
et dire, c'est une chose que je dois clean-up,
je vais prendre un snapshot, commettre, faire le review,
faire le tour, et puis continuer de bouger. Je pense
que c'est un
facile moyen de juste éviter un peu
de ces problèmes qui turnent, ce que je dirais
comme ce bon principe de citizen,
de garder-le
pour vraiment être utile vers l'accident
qui cause tous ces problèmes.
Oui, et je pense que c'est probablement
un sujet qui va aussi parler de test.
Mais si vous avez un bon test,
alors, vous êtes, j'espère,
plus confiant que vous pouvez faire
ces factures, faire le PR, faire le
au-delà du terrain, et puis vous pouvez
faire votre travail. Vous avez la sécurité
de ces tests, en fait.
Absolument, oui. Et l'un des choses
que j'aime parler de test, et pour
une exacte raison, je me dis toujours que le test est
que vous pouvez le faire et le définir
de la manière que vous voulez, mais mon définition
est juste que c'est la chose qui est
construite en confiance pour vous. Donc,
quand les gens commencent à tester
et dire, ok, les tests de integration
sont les mêmes, les tests de unité sont les mêmes,
je ne pense pas qu'il y a
une seule façon, c'est que
c'est vraiment un fait de confiance
pour faire des changements. Et ça peut
complètement changer de projet
à projet, de feature à part de feature,
mais surtout avec refacteur, si vous
pensez à dire, des tests de unité
qui font beaucoup de choses, si c'est tout
que vous avez et que vous allez changer
le corps de cette code, vous devez
trouver que ces types de tests, ils
peuvent être brittés dans ce sens, peut-être
selon comment ils sont élevés. Donc, vous
devez penser à la façon dont vous
refactoriez, les types de tests
que vous avez, et puis pensez,
que vous avez assez de confiance que je
peux juste faire ça, et si pas, c'est
une bonne opportunité pour poser même
ce refacteur et dire, laissez-moi
mettre les tests en place. Mais
pour retourner
à cette analyse de rabbit hole, une des
autres raisons pour cette
bonne approche de citizen, qui me
fait un peu nerveuse, pour juste avoir
plus de développeurs seniors, juste
recommandons ça mal de gens, c'est que
ça peut complètement dérailler
les délivres. Et un amount
ridicule, je ne pense pas que les gens
réalisent ça, parce que si ils n'ont pas
travaillé dans les petites entreprises
où les entreprises ne sont pas
en place, ils vont dire, hey,
tu fais les codes mieux, on peut
faire le refacteur et on peut
faire le test. Et c'est
une bonne chose.
Mais quand tu as un business qui
t'est essayé de rester en place, parfois
faire ces choses, à ce point
n'est pas vraiment une bonne
décision pour le business. C'est vraiment
difficile pour des gens à entendre ça,
parce qu'ils disent, qu'est-ce que vous
veux avoir une meilleure code et une meilleure
test coverage, ce n'est pas une bonne
décision. Et puis je dirais, si la
company n'est pas en place la semaine
prochaine, qu'est-ce que le point de
les tests ? Exactement, c'est pourquoi
c'est pour ça que les gens
ont été, bien, tous les développeurs, mais
c'est pour ça qu'ils ont été plus seniors.
L'économie du business est important,
parce qu'il faut avoir la balance
de ce qui est correct pour le business
vers, oui, on a des codes
plus funnables, mais
je vais retourner à ce que tu dis
sur les différents types de tests,
et les gens disent qu'il n'y a que
une seule façon, si quelqu'un dit que
il n'y a que la seule façon pour que
qu'il ne s'est pas écouté, alors que
c'est les Kubernetes, bien sûr.
C'est vrai, oui, tu as besoin de micro-services
et Kubernetes. Mon truc pour ça est, oui,
c'est la langue de programme, l'analogie,
comme tout le langage de programme est
juste un outil, il n'y a pas de
meilleur, excepté C-Sharp, donc il y a
il y a.
Bien, tu es en bonne compagnie avec
le code legacy, et ça t'en tient
bien avec le test, parce que
je ne m'en souviens pas de qui a dit
que c'était un des fameux gens, pas de Bob,
quelqu'un comme ça.
Mais quelqu'un a dit que le
definition de code legacy est
qu'il n'y a pas de tests,
je vais le trouver et le lien
sur les notes de tout le monde qui a dit
ça, mais oui, je l'ai dit, parce que
si tu n'as pas de tests, comment ça
fonctionne ? Quelles changées tu fais, comment
tu n'as pas dépassé quelque chose ?
Je me suis dit que j'ai eu
une conversation avec un employé
qui avait parlé de quelque chose
qui a été mis en production,
même si quelqu'un a été en train
de balader les choses.
Ils ont fait toutes les choses correctes
de notre perspective, c'est pas comme
qu'ils n'ont qu'on a juste quitté,
mais qu'on a encore pu balader
les choses, et on a encore eu
un événement, c'est bien, on est humain,
il va se passer, il y aura des
scénarios, mais quand je dis
ce qu'il a dit, je dis,
j'ai une philosophie
qui va être un peu ridicule
sur la surface, mais je pense que
c'est la façon dont je pense de tester.
Si tu es construit un outil,
tu es déliver un outil, ou tu as un fixage
si tu le couches et tu es landé
en production, je dis, assume que
c'est dépassé immédiatement, et c'est
où ça ressemble, parce que tu
dis, Nick, si je l'ai justement
construit et j'ai juste dépassé la
chose, comment peut-il être dépassé
immédiatement, la question
d'auvié, c'est, c'est bien, prouve-moi
que ça fonctionne, et si tu vas,
ok, laisse-moi faire le
chose, laisse-moi faire le
feature, laisse-moi exercer
l'interface, laisse-moi
aller appeler ces appels à la
service, je vous pausera et vous dis
ok, alors, est-ce que vous espérez que
chaque autre développeur sur le team,
quand ils font un code change, pour
faire surement qu'ils ne breakent pas
votre chose que vous avez faite, ils
doivent faire ça, parce que si la
réponse est oui, je dirais, peut-être que
vous voyez comment ça ne scale pas très bien,
donc, c'est un aspect
exaggerateur, mais le point
est de dire, si vous ne vous
mettre des tests en place pour
valider les choses que vous avez, et je ne
ne veux pas que la validation
initiale, parce que des gens vont
dire, hey, nous avons besoin, pour
une raison, nous avons besoin de
tester en production, parce que nous
n'avons pas l'infrastructure pour
ça, ce n'est pas la validation, c'est
l'élection de la régression, donc si
vous n'avez pas de la coverage en
place, je dirais que vous
devez imaginer que la chose que vous
avez faite est toujours dépassée, parce
que vous n'avez pas d'autre chose qui
vous dit ça, et ça finira
en étant un frayement, un
frayement philosophique pour moi, pour
dire, ok, je veux que je sois
dépassé si cette chose a été dépassée
demain, parce que peut-être que je ne
ne sais pas, peut-être que je
peux vite le diagnoser, c'est pas
un point important que je peux
faire, mais si c'est un point
important et je ne peux pas
assumer que ça va être en train
de travailler, alors nous devons
tester quelque chose, donc
c'est un petit aspect.
Je vais pas s'y conclure avec
ce qu'il y a de code change, c'est
un autre chose intéressant,
avez-vous eu un test de mutation?
Oui, j'ai entendu,
surtout pour, je pense que dotnet
a un striker, c'est
un library, je n'ai pas
d'extensif utilisé ça moi-même.
Oui, nous sommes, en retard,
l'épisode 18, Steven Poults,
en parlant de ça, et basiquement,
je ne vais pas trop l'interpréter, mais
le concept est que le
library change ses lines de code
et le but est,
au moins, que votre test
soit faible, parce que c'est
change, ça peut changer,
si ça se trouve, si les
statements se font, ça peut
changer, plus ou moins,
ou changer de la même manière,
ou changer de la même manière,
ou changer de la même manière,
ou changer de la même manière,
et pour chaque des changements,
c'est expectant
que le test va être faible,
parce que si ça ne vous
ne veut pas, vous n'avez pas
le test de coverage.
C'est juste assez intéressant,
j'ai dit après, je vais commencer
à utiliser ça, mais
pour être honest, je n'ai pas.
Mais oui, c'est un de ces
lesquels vous avez
dû utiliser pour le start
d'un projet,
sinon vous allez avoir
beaucoup de choses,
mais oui, c'est un concept
Oui, je me sens très difficile
d'essayer de se coucher,
si vous avez dit,
je vais le faire,
et c'est comme, par contre,
vous avez 7 millions de tests,
vous devez aller bien,
mais le concept,
je pense, est le spot-on,
ce que j'ai dit
que j'avais avec l'employeur,
c'est que l'une des goals
de la fréquence de ce genre
est que je voudrais,
ideally,
que quelqu'un
d'autre soit capable
de venir et toucher
le code que j'ai travaillé sur.
Donc, ça veut dire
que vous pouvez,
d'ailleurs,
avoir une personne
d'une autre,
dire que je vais vous aider
à faire ceci,
je ne parle pas
de la direction architectuelle
nécessaire,
mais si ils peuvent juste
venir et faire un fixe
ou un tweet,
un feature,
ou quelque chose,
ils devraient savoir,
et vous devriez avoir confiance
qu'ils ne vont pas
faire quelque chose.
Il y a des tests
qui vont dire,
quelqu'un qui doit
venir et toucher,
et je me sens confortable
que c'est bon.
Je pense que je pense
que les projets réels
ont travaillé,
et je suis totalement
d'accord avec ça.
Mais je pense que c'est
encore un grand,
si vous avez une histoire d'utilisation
et vous voulez le faire,
et vous êtes produire,
et vous avez fait le feature
très rapidement,
et puis vous allez ajouter
un whole bunch d'essais,
un whole bunch de tests,
et ça fait,
vous pouvez dire que le test
va vous aborder,
et ça va vous aborder
pour un long terme,
parce que votre base de code
est mode bug-free,
mais comme ça,
la scope de cette histoire d'utilisation,
ça ne va pas vous aborder,
parce que ça va prendre
plus de temps pour les tests.
Vous pouvez voir
où c'est presque trop tentant
de dire,
oh, je vais juste
tester ces tests.
Il y a quelques tests,
parce que je veux les voir,
et vous pouvez voir ça.
Vous pouvez certainement voir
pourquoi la base de code
est pas 100%
de code original,
et tout ça.
C'est un peu,
c'est un peu de la puissance.
Oui, et la conversation
d'avoir,
c'est pas fini
avant les tests,
et tout ça,
comme ça,
en réalité,
il y aura des shortcuts
qui sont prêts,
même si vous faites
votre meilleur effort,
même si vous faites
TDD,
et en essayant
de penser
sur les tests,
et en mettant en place,
il y aura des scénarios
et des choses qui vont être mises,
comme les humains,
ce qui va arriver.
Donc,
en temps,
parce que le plus long de la base de code
vit,
il y aura des opportunités
où il y a juste des gaps,
et c'est comme ça.
Mais je pense que c'est un point
intéressant
de penser
sur les tests,
de tester les choses,
je pense que vous avez
dit très bien
que,
sur le long terme,
ils vont...
Si vous pensez que,
littéralement,
je dois faire des lines de code,
juste dans cet sens,
il va vous faire
juste par définition,
vous devez faire
plus de code.
Ce n'est pas que c'est pas correct,
mais,
probablement,
et je pense que c'est un peu d'évidence
qui suggère que,
le long terme,
il va vous speeder,
parce que vous ne vous demandez pas
beaucoup de temps,
comme de se faire des choses fixées.
Je me suis dit que,
en conversation avec Ian Cooper,
littéralement,
il y avait un peu de temps,
mais maintenant,
je vais devoir rélégier,
et voir
ce qu'on a parlé,
mais,
je pense que nous avons
digué bien.
Mais,
en revanche,
je suis un grand,
grand fan,
quand il y avait un studio,
j'ai utilisé le réchaper,
non, je n'ai pas utilisé les rideaux,
mais,
je n'ai pas utilisé les réchaper,
et,
juste,
utilisé tous les
shortcuts
et la fonctionnalité,
pour vraiment aider
avec le réfacteur,
et je pense que ça fait un énorme difference.
C'est-à-dire,
je ne vois pas votre cause,
mais,
pour votre réfacteur,
vous vous avez digué
dans les outils,
et ce genre de choses.
Oui, un peu,
pour sûr,
mais je pense que,
je l'ai découvert
de l'aspect studio,
et je pense que,
probablement,
les rideaux et le réchaper
ont, certainement,
un certain nombre de outils,
mais probablement,
plus.
Certains outils en studio visual,
comme,
j'utilise non-stop,
ou je pense que,
F2 est en train de renamiser,
comme,
comme je l'ai dit,
le réfacteur le plus trivial,
c'est de renamiser.
Donc,
j'utilise ce non-stop,
et les autres choses,
comme, les gens vont discuter avec ça,
c'est juste une sorte de
philosophie design.
J'utilise des interfaces,
beaucoup,
juste parce que c'est
comment j'aime programmer,
parce que,
historiquement,
j'ai écrit beaucoup de tests
des unités,
maintenant que les outils,
les containers tests et autres outils,
font vraiment,
à la fin de la base,
et nous permettent,
de faire des tests de la création,
beaucoup plus vite.
J'ai trouvé moi-même
en écrit plus de tests des unités,
mais,
j'utilise des interfaces,
beaucoup, historiquement,
parce que,
en regardant ce point,
les tests vont ajouter plus de temps.
Le plus que je suis fallu
dans ce spot,
je pense que,
j'ai dû faire les tests,
et je devrais changer
le code pour faire les tests.
J'ai trouvé,
parce que si je vais en faire des tests,
beaucoup,
si je commence à mettre des interfaces,
je peux,
au moins,
avoir l'option
de mouler les choses que je dois.
Maintenant,
il y a des gens qui vont dire,
c'est un overkill,
c'est juste de faire des files,
et de travailler pour vous-même,
ce qui est bon.
Mais,
ce qui est arrivé,
c'est ce que j'ai trouvé,
pour moi,
en tout cas,
un autre tool en studio visual,
c'est de pouvoir
extracter les interfaces.
Je fais mon class,
et je vais dire,
c'est comme ça que je veux,
extracter les interfaces.
Maintenant,
quand je vais utiliser
cette dépendance
dans un autre spot,
je vais juste en dealing
avec les interfaces,
et je pense que je vais
découper les implementations,
en tout cas.
Les petites choses,
comme ça,
et je ne veux pas dire,
que vous devez suivre
ce que je dis.
Je dis,
c'est comme ça,
ce sont les choses qui travaillent pour moi,
et je pense que si vous trouvez
comment vous voulez faire des tests,
et votre style de test,
les packages,
si vous pensez,
quand je vais faire un test,
comment je vais structuremer mon code?
Vous allez trouver ces petits tips
pour vous-même,
et ça se passe
à l'autre part,
comme extracter les interfaces,
renamé les choses,
et un autre,
un super petit,
un paramétre de réorganisation.
Un resharpable,
je suis sûr,
a quelque chose comme ça,
le studio visual a ça,
et le bon chose,
c'est que,
ne juste vous allez
faire le signe de méthode,
et vous vous les démarrez,
et vous allez au site de 1000 calls,
et vous les démarrez,
et vous les faites,
ce qui est très bon,
et c'est...
c'est un couple
au dessus de ma tête.
Oui, c'est comme ça,
avec le réordering,
je pense que...
je pense que c'est un contrôle,
un shift out,
et un up & down,
et vous pouvez prendre un méthode,
et juste,
comme vous le prenez,
il vous met un up,
un méthode,
et vous pouvez mettre des méthodes
autour de réordering,
c'est assez sympa.
Mais oui,
il y a juste beaucoup de choses,
comme ça,
avec les interfaces,
je pense que vous pouvez
mettre un pull member,
et je pense que vous pouvez
mettre un push,
comme une terminologie,
vous pouvez le mettre,
vous savez,
comme le hierarchy
d'inheritance,
ou si c'est un interface,
ou un abstract class,
et vous pouvez,
en bas,
prendre un membre,
et le mettre dans l'interface,
donc il y a un signe
dans l'interface.
Oui,
mettre un pull up,
ou le mettre dans l'interface,
oui,
c'est ça.
Exactement,
et il y a juste de la loads,
je sais,
quand j'ai étudiant
pour un studio,
un bon tip,
c'est de voir
la réchaperie,
à la fois qu'il y avait
une menu,
je ne sais pas ce que c'est,
parce que je suis pas un pilote,
mais,
par le menu,
le menu de drogue
sur le top de l'idée,
et le menu de sub-menus,
parce qu'ils avaient tous des shortcuts
à la suite,
vous pouvez explorer
la réchaperie,
la fonctionnalité,
les refacteurs,
et regarder les hotkeys,
les apprendre
par la menu de drogue
et les menus de sub-menus,
et c'est un moyen
assez puissant
d'apprendre
ce que la réchaperie a fait.
Et je me suis trouvé
que les gens qui ont travaillé
ont utilisé les quotas
de réchaperie,
mais ils n'ont pas utilisé
les features.
C'est assez satisfait
de montrer
les gens
ce qu'ils peuvent faire.
Oui,
avec des outils comme ça,
il y a probablement,
pas même probablement,
il y a beaucoup de fonctionnalité
qui a été construite
par des équipes de gens
qui sont,
c'est que
les développeurs
vont avoir des valeurs.
Et oui,
vous allez falloir
faire votre propre pattern
de ce qui vous fait
effectuer,
et c'est très bien.
Je encourage les gens
à trouver les choses
qui travaillent pour eux.
Mais si vous allez explorer
un peu,
il y aura des choses
comme vous dites,
où je n'ai même pas
compris que cela a existé.
Et vous devez faire
quelque chose de similaire,
mais en main,
et il y a juste
un point de vue
cliquant,
un point de vue
qui fait ça pour vous
et qui a suddenly
attaqué,
qui a pris
même quelques minutes,
ou quelque chose
qui ne vous a pas vu
mal.
Mais vous faites
ça,
vous en avez développé
pour des années
et vous le faites
souvent.
C'est juste
un moment de saveur.
Les choses
comme ça
vont en une longue
façon.
Oui,
c'est certain.
Il y a des choses
dans les bases de code
qui sont vraiment
en train de se faire
faire des détails
et des loops
et des choses
qui vous crée
quand vous le voyez.
Ce qui
doit être refacturé.
Oui,
il y a des...
La sévérité de ces choses
est différente.
La
obviance de ces choses
est différente.
Donc,
des obvies
qui ne sont pas
sévères.
Certainement,
ça va
sembler
un peu
drôle,
surtout parce que
c'est audio
et vous avez besoin
de visualiser ça.
Mais si vous vous pensez
sur les ifs
et même
les loops
et les choses,
juste en pensant
sur la forme de votre code
et sur
comment ça est identifié.
Pour moi,
ce n'est pas
d'y dire que c'est pas correct,
mais c'est
un indiquateur
qu'il y a une opportunité
ici
pour réjager
des choses,
parce que,
surtout pour les développeurs
de nouveau,
ça ne peut pas sembler
évident,
mais il y a un grand taxe
sur votre cerveau
et en essayant
de faire des codes
qui sont plus
indentés.
Ce n'est pas
d'y dire que vous voulez
avoir un
2-character
de toute votre code
ou quelque chose
ridicule,
mais avoir un code
plus vertical
qui tient les yeux
en essayant de scanner
les yeux,
et ça semble
comme un truc trivial.
Je sais
comment réjager
les codes,
je peux le voir
sur ma screen,
mais le plus indenté
c'est
le plus taxé
que votre cerveau
a à essayer
d'allumer
où les choses sont.
Je encourage
les gens,
si vous ne vous inquiétez pas,
c'est comme un petit détail.
Essayez-le,
donnez-le un
coup
et vous voyez
que si
il y a un temps
d'imprové,
je pense que
d'une perspective
de rédabilité,
quelque chose
qui se démarre,
c'est évident,
peut-être pas le plus
critique,
c'est le type
de code
avec l'indentité.
C'est probablement
une chose
à la fin de ma tête.
Si votre cerveau
a l'air
comme un grand son,
ce n'est pas un bon son.
Oui.
Oui, c'est juste
un peu
marreur.
C'est un
intéressant
qui a
été mentionné
par les gens.
C'est un petit
problème,
mais je pense que
beaucoup de gens
ont pu
aller dans la
school
ou un autre type
de bootcamp
ou quelque chose.
Le processus
d'apprentissage,
quelque part
d'une ligne,
quelqu'un a dit
que les méthodes
peuvent seulement
avoir une rétour.
Ils ont pris ça
et ont dit
que c'est
la façon
qu'il peut avoir
une rétour.
Est-ce que
la code
peut donner
plus de rétour?
Bien sûr,
mais on ne la sera pas.
Je ne dis pas
que c'est
le cas
d'un peu.
Mais je pense
que c'est
l'exécution
de l'exécution de la code.
Si je peux
avoir une condition
qui me débrouille
en plus,
je ne dois pas
penser à
tout le monde
qui est après.
Quand vous avez
une rétour
et un scénario
où vous vous dites
que rien ne devrait
se tourner,
la preuve
d'un code
n'est pas
la même chose.
Vous devez
aller
aller
faire
qu'il y a
une rétour
qui peut
sauver
l'indentité
et
la taxe
sur votre rétabilité.
Et
la complexité
est réduite
parce que vous n'avez pas
de vérifier
tout le reste
pour cet scénario.
Je pense
que
si la function
se débrouille
c'est un temps
où vous pensez
que la function
n'est pas
plus
petite.
Le code
se tourne
et
il peut
sécher
un tas de codes
qui
intelligentement
fonctionne
et
qui
sont les paramètres
qui sont les paramètres.
Oui,
c'est super
fort.
Vous vous inquiétez
que les tools
de refacteur
qui peuvent faire
des choses
pour vous,
on parle
de
ce que l'AI
va faire
pour la refacteur.
Oui,
et c'est
intéressant
parce que
les gens
qui utilisent
des tools
de refacteur,
des tools similaires,
c'est un
plus avancé,
automatique,
c'est
ce que je trouve
parce que le refacteur
fonctionne
avec mes bases de code,
il y a des types
de choses que je vais faire.
Les gens
peuvent être
d'accord,
mais je ne les utilise pas
au framework,
pas parce que je l'ai hâte,
c'est pas
comme ça,
j'utilise un
Dapper
et un Db
pour mon développement.
Un jour,
je vais être
sur le team
de l'EF
de la cor.
Je vais être
de l'EF,
mais
ce n'est pas le jour
aujourd'hui.
Je
jure mes propres
repositories,
j'aime avoir
ma sequel
en main.
Mais c'est un
très commun
pattern,
qui est probablement
un framework
en indicateur.
Mais
les tools
les co-pilates,
ils sont très
bons
à predicter
ce que je veux
à la prochaine.
Je trouve
fascinant
que si on peut
commencer à predicter
ce que je veux à la prochaine,
je ne sais pas
la bonne interface
pour le code.
Il me semble
un peu
un peu bizarre
pour
les commandes.
Je pense que ça
fonctionne, mais
il me semble
un peu clonki.
Je pense que c'est
dot-slash
en visual studio
pour co-pilot.
On va vous
mettre un type
pour co-pilot
et dire que
le co-pilot
refacte cette code.
Ce processus
me semble clonki
seulement parce que
il s'en pop une autre
screen,
il a un peu de délai,
mais
la partie auto-complete
est
très
comme, c'est
comme de faire
avant mon cerveau
même pense
ce que je veux.
J'ai
hâte de
être
très close
à ce point
où je peux
littéralement
co-pilot
et
ça va
faire
ce refacte
que je veux.
C'est pas
très
très
très
très
très vite, je pense.
Je le trouve
incroyable.
Imaginez-vous
5 ans plus tard
si nous pouvons
montrer
ce que
le co-pilot
et le chat d'un gpq
tout ça.
Vous ne vous en pensez pas,
c'est juste
un moque
ou quelque chose.
Oui,
c'est certain.
C'est fascinant.
Je sais que
certaines personnes
ne l'ont pas
ou je sais que
certaines personnes
ont le mindset.
Je peux
rationaliser ça,
mais le mindset
de
l'analyse
de la
n'est pas
beaucoup plus
négatif
que
la
personne
C'est
rapide.
C'est
un
peu
plus
rapide.
C'est
un
rapide.
J'ai
euщо
vous vous mesela!
On les determines
de te guide?
o builders
torn
pone
Et maintenant, votre programme ne peut pas vivre sans l'intelligence.
Et c'est le même genre de choses, c'est juste une nouvelle chose.
Donc, vous avez toujours des gens qui disent,
« Oh, il ne faut pas faire ça parce que c'est une élémentation d'effectif ».
Mais oui, totalement.
Vous ne pouvez pas juste faire un...
Bien, l'équivalent de ce que les gens disent,
c'est que c'est un overflow, un pays de copies, c'est fait.
Vous avez dû prendre cette code,
regarder, refactor,
et comprendre, et faire ça.
Donc, vous savez, c'est bug-free,
c'est ce que vous voulez être,
ce n'est pas ce que l'AI a fait.
C'est un peu de la même chose.
Oui, et l'une des plus récente conversations
qui se sont faits avec quelqu'un sur tout ce sujet,
c'est que, est-ce que c'est un shift paradigm
que nous allons passer par?
Parce que c'est probablement beaucoup de nous,
avec cette main exacte,
que nous nous disons,
qu'on doit comprendre ce que vous faites
avant de faire le papier de copies.
Je ne vois pas ce qui se passe,
je pense que vous devriez comprendre les choses,
mais je pense que le détail que vous entendez,
je commence à demander si
il y a des uns qui ont été programmés
pendant longtemps,
que vous devez avoir une grande compréhension,
et qu'il y ait un nouveau mouvement de développeurs
qui sont allés par là où ils disent,
non, je ne les ai pas,
et qu'ils vont être prouvant à nous,
je me suis dit que c'est un peu de la spécifique,
mais ils vont être prouvant à nous
avec une sorte d'une plus chaleurelle compréhension
de certaines des choses qui sont créées,
qu'ils peuvent être extrêmement effectifs.
Et c'est parce que,
quand ils ont des défis,
ils ne savent pas comment promener
effectivement les réponses,
et c'est juste que leur productivité,
en général, est plus grande
parce qu'ils ont utilisé les outils
dans une façon différente.
Donc je suis très curieux de voir
si ça va arriver,
ou vraiment,
maintenir un niveau plus bas
d'étonnement
que probablement beaucoup de nous
qui ont été programmés
pour des années currently.
Donc, c'est intéressant.
Je ne pense pas même que ce niveau
plus bas,
comme comprendre ce qui se passe
dans la coude,
et plus en parlant,
juste comprendre les codes
qui sont en front de vous,
où si c'est comme
un bonbeur,
un whole bunch de codes,
vous copiez le code
de votre idée,
on le voit,
il ne vous a pas even regardé le code,
et puis,
quand vous avez mis le code,
c'est tout,
c'est tout.
C'est ce que je parle
d'actualité,
vous avez déjà lu ce code,
vous n'avez pas besoin de comprendre
comment,
vous n'avez pas besoin de désembrer
et de travailler sur ce qu'il y a
dans la coude,
mais juste
regarder ce code,
c'est ce que ça devrait être,
a-t-il un AI
qui n'a pas été déterminé,
comme je l'ai dit,
et il y a des éducateurs,
ou quelque chose.
Mais,
oui,
comprendre ce qui est en front de vous,
je pense que ça va toujours être un truc,
mais oui,
comme vous le dites,
c'est un peu difficile de savoir,
parce que
dans le futur,
quand l'AI est le point
où
il ne fait pas ces sortes de erreurs,
et vous n'avez pas besoin de spotter les choses,
parce que c'est beaucoup mieux
que la pensée humaine,
alors
nous sommes
des project managers effectivement,
et quand l'AI
peut faire les travail
des project managers,
qu'est-ce qu'on fait ?
Je pense que c'est un peu comme
où beaucoup de gens
sont nerveux
sur ce qui se passe
avec l'AI
et les jobs et les choses.
Je pense que
c'est un mindset
que
je ne vais pas vivre
tant de décennies plus tard.
Très.
Qu'il soit le cas,
l'AI et
les innovations d'aménage
vont arriver
dans le futur.
Je veux voir ça,
parce que je suis juste
excité
de voir.
Envers ce qui se passe,
je vais perdre mon travail
et avoir de la paix
qui est moins paix
et avoir de la paix.
Mais
le facteur est que
avant de me mourir,
je veux voir
ce qui se passe
et c'est
ma mentalité.
Je veux que ça
soit possible
en avance
pour que je puisse
voir ça avant de me changer.
C'est vrai.
Oui, non,
c'est un truc fascinant
de penser,
parce que
je pense que c'est facile.
Peut-être pas pour tout le monde,
mais je pense que c'est probablement
facile de perdre la place
de la manière
que la technologie
progresse dans notre temps de vie.
Donc,
je m'espère que je ne suis pas
au bout de ma vie.
Et ce que j'ai vu
en tant que
déjà pour des changements de technologie
est dromatique.
Mais quand vous
en vivez par ça
et que vous ne faites pas
une réflexion de
OK,
ce que ça a l'air comme
quand j'étais
en première utilisation d'un computer,
comme OK,
j'avais un dial-up.
Je ne pouvais jamais
concevoir
pouvoir délire
un jeu vidéo.
Je l'ai juste acheté
sur Internet
et j'ai vu tout mon computer
en gigabytes
dans des minutes.
Je serais
dans un mois
en déclenchant quelque chose
que je ne pouvais pas
jouer
et que
ça ne se crasse
et que je ne l'ai pas.
Donc,
juste ça
est comme
ce que
c'est un énorme
shift de technologie.
Et c'est
déjà des décennies.
Mais
vous ajoutez
tous ces petits
choses
sur les téléphones,
ou
comment
comment la mémoire
est dans un téléphone.
Comme ram, même.
Et je pense que
mon computer desktop,
je me souviens de
avoir un gigabyte de ram
et de être
comme ça,
c'est fou.
Comme,
personne ne va
avoir un gigabyte de ram.
Et c'est comme,
non,
c'est juste
complètement bafflé.
Donc,
je suis totalement d'accord
avec vous que
être capable de
vivre nos vies
et de voir
ce qui va
arriver avec la technologie
est très cool.
La chose que je voudrais
ajouter
sur le travail
est comme,
je pense qu'il y a beaucoup de gens
qui sont affrayés
que l'A.I.
va prendre nos jobs.
Et mon fraymage
pour cela est comme,
vous n'avez pas besoin
d'A.I. à prendre votre travail.
A.I. est une grande force
capable de faire ça.
Mais je pense que
ce que votre travail a fait
est que vous n'êtes pas
contents de
évoluer.
Donc,
si vous n'avez pas essayé
de se skiller
et de voir
comment les choses se changent,
en tant que l'A.I.,
vous n'aurez pas été
obsélés.
Parce que les choses vont changer.
Et je pense que l'A.I.
est juste un grand boulevard
dans cet espace.
Et je pense que si vous êtes
sur le top
et vous voyez
que les trends sont changés,
je ne vais pas
prendre des codes de temps.
Je vais prendre plus de temps
comme les choses architectes
ou en essayant de coller
les pièces ensemble.
C'est juste un paradis.
Je suis changé.
Et je pense que si vous êtes
en train de faire le ride,
ce n'est pas si risqué.
Je pense qu'il y a un aspect
de cela.
Parce que
c'est des demandes supplémentaires.
Et c'est en ce moment
que les développateurs sont en
high demand.
Donc, on peut charger
des salaris très decents.
Parce que l'A.I.
fait beaucoup plus de choses.
Il y aura moins de demandes
parce que
certains de ces travail sont
faits par l'A.I.
Donc, il y aura moins de travail
et peut-être que les salaris
vont se faire baisser.
Mais l'une chose,
comme quand je parle
de personnes,
l'une chose que je vous conseille
est la networks.
Parce que
si vous êtes en train de faire le travail,
vous voulez beaucoup de gens
de savoir vous
et de savoir que vous êtes en train de faire le travail
et de pouvoir juste
vous envoyer la recherche
pour faire le travail.
Vous aussi voulez que les gens
de savoir
vous connaissiez ce que vous faites.
Donc, vous avez besoin de
ces choses.
Vous avez besoin de savoir ce que vous faites
et vous avez besoin de beaucoup
de gens de savoir cela.
Et si vous avez cela
et si vous pouvez construire
votre networks
et aller aux groupes de utilisation,
faites des choses différentes
et vous rencontrez des gens
et vous connaissez des gens plus
que vous vous vous indiquiez
pour être en position
où vous n'avez pas besoin
et vous ne pouvez pas trouver de plus.
Oui, je l'ai totalement appris.
Et comme l'une des raisons
que j'ai essayé de faire,
comme je l'ai mentionné
plus tard,
que je vais essayer de faire
beaucoup de création de contenu
parce que
cela me fait vraiment
me sentir
fulfillment quand j'ai...
Il y a beaucoup de gens
qui ne savent pas
que c'est bon,
parfois cela se sent
comme seulement créer de contenu.
Mais cela ne fait que l'une personne
qui se dit que
ça m'a aidé beaucoup.
Et c'est comme que vous avez
tout ce moment
pour être comme
OK, c'est tout pour ça.
Donc, c'est un aspect de cela.
Mais l'autre aspect
qui est relative à ce que vous avez dit
était que je veux être
en position où
ce n'est pas comme
un truc fameux.
C'est le bon moyen
de le mettre.
Mais je veux être
en position où
si quelqu'un
qui est en train de
faire le contenu
ou mon propre brand
ce n'est pas comme
ce qu'il se dit.
Et si c'est un bon
fait pour ce qu'on fait,
ce n'est pas comme
qu'ils ne doivent pas être
concernés.
Ils ont confiance
en dire
OK, ce n'est pas comme
ce qu'ils disent.
On a besoin de ce.
C'est comme
ce qui se dit
comme un n'a pas de brain
vers ce qui se dit
OK, comme
on doit essayer
de gager tout ça.
Je veux juste
mettre en place
que les gens vont
si nous avons besoin
de ce poursuivant,
ce qu'on sait.
Donc.
Exactement.
Ils peuvent
se faire
beaucoup de choses
online, des vidéos
comme des podcasts
et des choses.
Des courses
qui, si vous cherchez
à faire un travail
et quelqu'un veut
vous parler,
ils peuvent regarder
ces choses
où quand je fais
l'interview
et je ne connais pas
trop beaucoup
de personnes
que je suis en train de
vous interviewer.
Je ne sais pas
que les podcasts
qui sont en train de faire
et le travail, parce que les gens ne sont pas dans la position où ils peuvent aller et regarder les vidéos.
Je ne sais pas si ils savent ce qu'ils disent, c'est très malade.
Mais si je pouvais juste chercher le nom, trouver les choses et voir les choses, ils savent vraiment ce qu'ils disent.
C'est la moitié de la histoire qui est vendue, non ?
Oui, absolument.
Et pour moi, le refacteur, c'était une chose que,
à mon temps avant Microsoft, c'était un truc qui est un peu bizarre,
mais j'ai travaillé à la start-up, j'ai écrit beaucoup d'autres codes,
le fondateur de la compagnie a construit le produit original, mais c'était un refacteur que nous avons fait,
ce n'est pas une offense à lui, c'est le premier à dire qu'il a besoin de être refacteur.
Je lui ai dit que je devais avoir un équipe qui était très responsable pour le prototype de la nouvelle producteur.
J'ai fait ça pendant 8 ans, donc ce qui était intéressant, c'était que j'ai construit beaucoup de produits originaux qui ont été les codes de la législation.
Et le refacteur a été construit parce que nous avons construit le fondateur original,
on a travaillé, on a prouvé, et les produits de la compagnie ont été formés et nous avons démonté au suivi.
En fin de mon temps, j'aurais pu être un peu plus de team, et ils m'ont dit qu'ils voulaient construire ce produit,
et que vous pouvez expliquer ce côté de la code, comment vous approchez, parce que vous avez évidemment pris du temps,
et pour moi, le refacteur était juste une grande partie de ce que je faisais,
parce que je n'ai pas seulement l'expérience du code, mais je me sens que c'est une chose d'imprégiation
si les gens n'ont pas été dans les start-ups, mais j'ai dit ça plus tard dans notre conversation,
mais quand vous êtes tentant de garder une compagnie en vie, il y a un autre set de trade-offs que vous faites.
Ce n'est pas, est-ce que c'est la plus belle code, c'est, est-ce que nous nous paintingons en un coin,
si pas, ok, peut-être que nous pouvons le faire plus vite avec confiance.
Et je me sens comme avoir des constraints différentes quand vous êtes en train de le faire.
C'est l'une des choses que j'ai parlé de refacteur et de tenter de partager le contenu.
Je vais tenter de partager cet aspect de ma vie, parce que je ne pense pas que beaucoup de gens
vont avoir ce type d'exposé à ces constraints.
Oui, j'ai travaillé avec des grandes et des petits entreprises, et je suis certain que avec les petits entreprises,
c'est une sorte d'une plus forte étude, c'est pas le cas, mais parce que vous êtes en train de mettre beaucoup de haute,
et pas juste un petit coq, c'est assez intéressant.
Je suis heureux d'avoir eu l'opportunité de travailler dans les deux types de entreprises.
Oui, c'est différent.
À Microsoft, c'est une scale complètement différente.
Les choses se bougent plus vite, mais je comprends pourquoi.
Il y a plus de gens qui sont intéressés par la scale de notre software ou de notre base d'usage.
Il y a des choses qu'on doit être plus carences.
Les choses sont différentes, juste basées sur la scale.
Et où je travaillais avant, les phrenziques digitales étaient extrêmement importantes pour les choses accurantes.
Si vous avez eu un date que vous avez rapporté correctement et que cela a été utilisé en courte,
si quelqu'un a dit que ce date est incroyable et que nous pouvons prouver,
tout de suite, tout de suite, que vous avez collecté, que l'investigateur ou l'examen soit utilisé pour faire un cas,
ils pourraient dire qu'on va le mettre en place.
Comment pouvons-nous entrer les outils?
Parce que clairement, il y a un erreur ici, donc si vous ne pouvez pas expliquer,
il y a de la vérité, vous ne pouvez pas utiliser cela effectivement en courte.
Nous avons eu des situations comme ça, où c'est extrêmement important de se faire bien.
Donc, de bouger vite, c'était important, mais pas à l'expérience de l'accuréance.
Ça pourrait être possible que l'utilisation de la feature ne soit pas parfait,
parce que les utilisateurs vont comprendre que,
si je peux avoir le résultat que je veux avoir,
ou si c'est plus clair, si le date est correctement correctement, ils sont heureux.
On peut toujours optimiser.
Et à Microsoft, je trouve que, à la scale que nous sommes,
ma team est maintenant en train de rouler des trillions de requests par jour.
On ne peut pas juste être comme,
« Oups, il y a un bug, et on ne roule pas encore. »
C'est un peu différent de l'impact.
Donc, je pense que, comme vous l'avez dit,
l'intérêt de ces différents types d'organisations est vraiment important.
Oui, oui.
Je ne fais pas le...
Je suis en train de le dire.
Le grand company qui a juste été retiré.
Crowdstrike.
Crowdstrike, c'est ça.
Donc, ne fais pas ça.
Oui, exactement.
C'est la chose à l'inviter.
Oui, je pense que, avec votre précédente,
avant Microsoft, vous étiez en train de faire des criminels et des choses.
Si un erreur comme ça, comme vous l'avez dit,
comme un date, peut causer la whole chose à être élevé.
Et ça, le criminel se rend.
Et puis, ça, le criminel se rend pour faire quelque chose d'autre.
C'est une responsabilité très claire, non?
Oui, absolument.
Et c'est comme, quand on parle de l'impact de cette travail,
un peu de cela est rétroactif, c'est-à-dire,
que, malheureusement, quelque chose de mal a été passé,
il y a une investigation,
il y a des devices de cise,
on utilise notre software sur ça.
Et la partie qui est rétroactif, c'est que,
si quelqu'un est vraiment malade
et vous pouvez les mettre à l'aise,
ça signifie que vous êtes potentiellement en train de sauver d'autres gens.
La autre chose, c'est la clôture pour les victimes.
C'est des gens qui sont vraiment innocents.
C'est vraiment,
je ne me souviens pas de l'exact branding pour la mission,
mais c'est en train de couvrir la vérité
et de construire des softwares qui font ça.
Donc, quand votre data n'est pas accurate,
comme, suddenly,
où est-ce que votre vérité est?
Oui, ça me rend le sens.
Je suis sûr que nous sommes rapidement en train de trouver un moment.
Une chose que je veux vous demander,
parce que, évidemment, nous avons tous fait des courses de train de sauver,
et je sais que je vais vous donner quelques autres articles.
Et je voudrais toujours vous demander
comment vous avez trouvé cette expérience.
Je sais que, une chose pour moi,
c'est de faire la webcam
dans la basse-arrière et la corner,
et tout ça.
Je me suis trouvé ça assez bizarre,
parce que, évidemment,
nous en parlions de l'audio que nous avons vu avant la recording,
et la facture que je faisais juste l'audio,
je pouvais le tomber et il ne peut pas le dire.
Mais avec le vidéo,
il a des cut-doubles et tout.
Donc, je me suis dit,
oh, ce sera très drôle.
Comment avez-vous trouvé ça?
Oui, c'est une bonne question.
Je pense que, pour moi,
le début de 2023,
c'est que j'ai commencé à faire des trucs YouTube.
C'est drôle,
en hindsight,
j'ai commencé à faire des vidéos YouTube.
Et je l'ai dit,
Nick Chapstice,
et ça me ressemble toujours
comme un complément de la back-handed,
et je ne le dis pas de cette façon.
Mais je suis arrivé à un point
où j'ai regardé ses vidéos,
et je me disais,
je pense que je peux le faire.
Si il fait ça, je peux.
Et je ne...
Le côté de la back-handed,
je ne vais pas dire que je suis juste meilleur que lui,
mais ce n'est pas le message.
C'est que je pense que
il fait quelque chose de consistant.
Je pense que c'est l'une des choses
où je me suis dit,
il a des vidéos,
il est éducé,
je pense que je peux l'éducé.
Ça ne veut pas dire que c'est meilleur ou moins,
c'est différent de la façon que les autres personnes vont.
Mais je pense que je peux le faire consistant.
Donc, je me suis dit,
je vais commencer à faire ça.
Donc, je suis commencé à faire des vidéos YouTube.
Et le plus drôle de l'hospital
était que, il a été arrivé à un certain point
il a été arrivé à un certain point.
Je ne sais pas si j'ai eu
1000 abonnés,
mais il a été arrivé à un point
où il me disait,
hey, vous voulez faire des courses de domes
et je me souviens de
le message en étant
que c'est certainement
un tent de pêche.
Ce n'est pas Nick Chaps.
Donc, je voulais vous donner
un peu de histoire.
Mais en termes de créer des vidéos
et de choses,
la partie de la partie de la domes
n'est pas naturelle,
parce que je faisais les vidéos YouTube.
Mais même à ce point
en temps de faire des vidéos YouTube,
c'était encore un peu bizarre pour moi,
parce que je l'ai déjà shared
publiément,
mais historiquement,
j'ai toujours toujours
décrit moi-même
comme, oh, je suis afraid
de la parlance publique.
Donc, avec une caméra,
ce n'est pas
comme un million de gens
qui sont ici,
mais c'est encore une caméra
et ça va aller sur Internet.
Donc,
je me suis senti très nerveuse
et inquiétant.
Et maintenant,
à ce point,
juste pour faire des vidéos YouTube
et commencer à faire des live streams,
je ne veux pas dire
que je suis confortable sur la caméra,
parce que je pense que c'est toujours
un petit peu de quelque chose
où je suis comme, oh, merde,
c'est going to be recorded
or it's live.
Always a little bit uneasy
about it,
but at the same time,
I think what I've overcome
is like this negative self-talk
of like,
that was the thing
that was totally limiting me,
like, oh, you're not good at it,
oh, you're afraid of it.
I'm afraid of it
because I'm not good at it
and I'm not good at it
because I don't do it
and I don't do it
because I'm afraid of it.
Like,
if you just cut the vicious cycle
and say,
I'm doing it,
all of a sudden,
it's not so bad.
Yeah,
and as you say, consistency,
the more you do it,
the less it just becomes the normal.
It's just what you do,
isn't it, really?
Yeah, yeah.
And I don't say that to be like,
oh, I'm amazing at it now,
but it's certainly more comfortable
and there's times where I'm like,
if I have an idea for a YouTube video,
as long as I've done a little bit
of preparation with the code,
like, I don't script my videos.
Like, I don't read from anything.
I prefer to naturally talk about it.
I just have some key points
I want to get across
that I might jot down,
but I originally was trying
to script them
and I was like,
this is counterproductive for me,
trying to be effective
at making a video that feels good.
So, yeah, the consistency is like,
it's just totally this key ingredient
that I think a lot of people miss.
I find with mine,
I script the intro,
which is like just like 20, 30 seconds
just to make that sound more seamless.
But then when I go to actually
share my screen,
showing code and stuff,
I think because I know what I want to demo,
then I'm kind of like just,
what I'm doing is guiding what I'm saying.
So I don't,
they need to script that.
But I think that's,
because I've got,
it's not up now,
it's off to the side,
but I've got a teleprompter for the videos.
So I can put that in front of the camera
and just for the intros though,
but then when I turn,
I'm facing the screen.
Like I am,
sorry, I'm aware,
I'm not looking at you right now
because my camera's off to the side.
My screen's in front.
That's where the screen I'm sharing is.
So I'm looking at this.
So in the bottom left,
it looks like I'm talking to the camera,
then I'll go off and look at the screen,
which when you're in the bottom
around the corner,
it looks like you're just turning
and looking at the screen.
So it's a bit more natural.
Yeah, it's,
no, it's been,
it's been a good experience though.
I feel very fortunate that kind of it
had the opportunity early and,
yeah, it's a,
when I say this,
I don't mean like from a like a
financial perspective,
but I feel like it was a life changing
experience to like get on to YouTube
and then have this opportunity
with Dome Train.
Because like just to give you an example
because I'm not talking financially,
but the fact that we're having this
conversation right now,
the very fact that we're able to do this,
I interviewed Scott Hanselman
two weeks ago or something like,
these types of opportunities to talk
with other people that are in the
industry,
I feel like if I hadn't started creating
content and had some of these
opportunities,
I wouldn't have had these current
opportunities.
It's almost like this cascading
like luckiness that's happening.
So, yeah.
It's like a snowball effect,
the snowball as it rolls down the
hill, it gathers more snow
and then gets bigger and bigger
and bigger.
And yeah.
I'm aware we're quickly wanting
out of time.
One thing I was going to ask,
what are your thoughts on comments
and code?
Oh,
this is a good question.
It's funny,
I think I probably have an opinion
and it doesn't even line up with
what I personally do myself.
So, if I'm building my own
software,
like outside of work and stuff,
there's comments everywhere,
but they're mostly like,
I'm just putting little markers
in the code to say like,
this is bad.
And it's funny,
it probably doesn't need a comment
because the code is bad
and it's pretty obvious,
but it's almost like me recognizing
to my future self like,
just so you know,
you consciously wrote this thing
and like it's a fix mirror to do
like, hey,
future self,
I'm sorry,
but here you go.
So, do I,
do I recommend people are doing
that and their production code base
is like, maybe not,
but I think if you're working in
teams, I think the most important
thing is that you're just aligning
with your team, but what,
what your expectations are in your
code base.
So, I would call that out.
A lot of the advice that I would
give in general is like,
it's going to change.
So, like,
think about the qualities and the
characteristics of the things
you're doing and then if you're
working in teams,
try to align with people on it.
I think comments and code
are totally fine as long as
what you're doing is not putting
like, you're not putting the code
into the comment,
if that makes sense,
because now you have two things
to maintain.
So, abstractions of what the code
is doing, explaining why,
because sometimes you might read
code and go,
perfect example for refactoring,
you come across it and you go,
this is garbage,
like, let me go rewrite this.
And now, you've introduced the bug.
And it's because someone wrote
in a particular way that,
I'm not saying it had to be done
that way, but they got it working
and it doesn't look obvious.
So, that might not be good code,
but it's functional, whatever.
There's different arguments
for doing it.
Leaving a comment to say,
like, from that original author,
like, hey, I played around with this
and here's why this works this way.
And, you know, fair warning,
if you try the obvious path,
it doesn't work because there's a
bug in the SDK we're using,
just making something up.
Like, that could save someone
a lot of time in the future.
So, I think there's little things
like that that can be beneficial,
but certainly saying something
like, this if statement checks
the variable.
I'm like, well, yes, it does.
Like, what?
You don't need to comment that.
So, that's probably a bit of
an exaggerated example,
but I do see a place for it,
but I think it's a team sort
of alignment thing.
Yeah, I agree.
And it goes back to,
I think anyone that says,
this is the way,
this is the only way,
stop listening,
because, as in that,
and some people say
you should never have comments.
Your code should tell a story
and everything.
And yes, to a point,
but there's also scenarios
like you're describing where,
it's kind of a comment could save
someone so much time explaining
why it was done this way,
or if it's just,
sometimes code is complex.
You can try and abstract it
into methods and stuff,
so you, and you should do,
but sometimes just a little comment
just explaining something can make
it so much more readable
and save someone a lot of time.
So, yeah, again,
I completely agree.
It depends.
Yeah, it depends, right?
Like everything, but yeah,
I love how you're framing.
Like if someone says,
like always or never do you
something, it's like,
stop listening.
That's a, my, my philosophy is
basically that I don't think
I've used that, that phrasing,
but it's why, like, I personally
when I'm trying to share information,
I try to often sit in the middle
because I'm like,
if I say always do this,
it only takes one person
to give one example
where it doesn't work
and they've disproven what I've said,
right?
Because now it's like as an absolute,
it's broken, but it's because
the reality is there's always going
to be some things that don't fit
that perfectly.
So I think if you understand why
most of the time or rarely
you should be doing things,
that's the important part.
And then just use your judgment
because you're a software engineer,
you're a smart person,
you know, do the right thing.
Yeah, just to clarify,
when I say stop listening,
that's kind of like,
I'm kind of like an expression.
I mean,
don't literally turn around
and walk away.
Cover my ears.
Oh dear.
Another thing I find quite a bit
with readability is just,
the names of things,
whether it's variables, functions,
classes, whatever,
so many code bases
that look at,
it's like, what does this thing do?
And it could be just a different name
would tell me straight away.
And I don't think people put enough
thought into what they call things,
just thinking,
when I'm writing this code,
will this make sense
to someone else or future me
or whatever?
Will it make a better look at this name
and it's obvious
or is it just called something
because it could be about
thinking what to call it?
Yeah, or it makes sense
in this context,
but like, if I were to zoom out a
little bit in the code base
that I'm in,
it's almost like it's getting lost
in the noise.
It needs a little bit more detail.
Or the other way,
sometimes the names are
overly detailed
to the point where you're like,
and you have so many small classes
and things,
you're like, there's a manager
and a provider
and a thing
and another thing
and you're like,
what are they actually doing?
Because they're so specific
that it's so specific
and there are so many similar things
where it's like,
now you have this other mental
gymnastics to go through.
So naming's hard,
but yeah, it needs attention.
Yeah,
with a complexity,
like my favourite
acronym is KISS,
like keep it super simple.
You've seen the comics
where it shows,
not comic, but like a,
do you call it comic?
It's a single strip,
but where it shows the graph
and it's growing up
as developers get more experienced.
A few years in,
they do things like,
all right,
we're going to start abstracting
this out, having all these
different patterns and everything.
And then as they get more
experienced on the X-axis,
when the graph drops down
and it's just keep it super simple,
get a little code
as possible to do the job.
Yeah, it's almost like,
you get that little bit of experience
and everything is like
crazy levels of abstraction.
Yeah, and then all of a sudden
you become like the Yoda
of programming and you're like,
no, back to,
back to super simple.
I will definitely include
that comic in the show notes.
I think actually,
it was my comic pick
for my lost newsletter, I think.
Oh, nice.
Speaking of which,
you've got a newsletter,
haven't you?
I do have a newsletter, yes.
Yeah.
Yeah, I'll make sure,
yeah, I'll make sure,
I'll include,
that's a weekly one, isn't it?
That is, yeah.
And I've been,
I initially started doing
a lot of .NET stuff
because a lot of my audience
is very .NET heavy,
but it's kind of funny.
A lot of my content is .NET,
but I feel like a lot of the value
that I bring,
I kind of said this earlier,
is like, it's not just C-Sharp
and .NET development,
like I have, as an engineering
manager and someone that worked
as an engineering manager
and a software developer
at the same time.
I just feel like I have a
different set of experiences
that I want to share
with people,
not to say that they're the
right thing all the time,
but to just give some
perspective.
So my newsletter,
I have shifted to try
and be more general
software engineering.
I will periodically dabble
with like,
I want to do one
that's going to be like
building a web application
from scratch and .NET.
And I don't want that to
hyper focus on like,
you know, expert level .NET
developers.
I want it to kind of feel like,
hey, you're general
and software engineering
and you just want to see
how this looks in C-Sharp.
So it'll be basic stuff,
but the newsletter is primarily
just like general software
engineering.
The rest of my content is
very heavy into C-Sharp.
Yeah, that makes sense.
Well, I will include a link
to subscribe to that
in the show notes.
Well, thank you very much.
And I think my one's already
in there anyway.
It's on the side panel.
So if you want to subscribe
to my listeners,
then it's, there's a link there too.
So I'm aware that you've got a
hard stop very soon,
so we'll hop up.
But yeah, well,
I suppose before I say thank you,
where is the best place
if listeners do want to reach out to you?
Sure.
Yeah, if they want to get in
contact with me,
LinkedIn is probably the best.
I am trying to be more active
on on X or Twitter,
however you'd like to call it.
So don't call it X, please.
Don't call it X.
Yes, it feels,
it doesn't feel good.
Yeah, so if people want to get
in touch, that's a good spot to do it.
I would say my primary place
were like creating content.
If you just want to like,
you know, consume the content
is going to be YouTube and LinkedIn.
So I think those are probably
the best two spots.
Awesome.
Well, with that,
just a massive thank you
for joining me on the show.
It's been awesome geeking out on
refactoring and various other stuff.
We're talking about naming before.
I don't know what we're going to call this episode.
Naming things is hard.
Maybe we'll call it that.
Yeah, that sounds like a good name.
No, Dan, I wanted to say thank you.
Like, this has been really cool
for me to be able to jump on here
and have this conversation with you.
So we did cover a lot of ground,
which is really cool.
And I think all intermingled,
intertwined, all related.
So I think it's all all valuable information.
Yeah, definitely.
I love all of these episodes
where it just goes off on tangents.
We talk about different things.
Because that's the fun.
It's organic, isn't it?
Yeah, it's real, right?
Yeah, exactly.
It's real.
But then I'll add his hit.
Then it's not so real.
I don't remove content.
It's just a bit more seamless.
Cool.
And thank you everyone else
for listening.
And a quick reminder
that this podcast is sponsored by Everstack,
which is my own company providing
software development and consultation services
for more information.
Visit everstack.com.
And if you enjoy the podcast,
please do help me spread the word
on social media.
I normally use the hashtag
UnhandledException.
And I can be found on Twitter,
out...
at Dracan,
which is D-R-A-C-A-N.
But the best place to get in touch
with me is Discord
and the link to Discord
is on the website.
As well as the show notes,
which will cover all the stuff
we've mentioned today,
which can be found on
unhandledexceptionpodcast.com.
...
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags