🧑‍💻 Introduction to the Conference: The keynote starts with a warm welcome, acknowledging David MacArthur's contributions and the focus of the conference on code quality. The speaker, Mahesh Chan, introduces himself and sets the stage for a discussion on how AI, specifically GitHub Copilot, can improve code quality.
🛠️ GitHub Copilot's Capabilities: Mahesh highlights the benefits of using GitHub Copilot as an AI assistant that integrates with various IDEs, like Visual Studio and JetBrains, to help developers write, review, and refactor code. It supports multiple programming languages and has significantly improved developer productivity.
đź§ą Improving Code Quality: The speaker outlines five key aspects of code quality: readability, reusability, conciseness, maintainability, and regulation (error handling and logging). He emphasizes the importance of these qualities in writing clean and effective code.
🚀 Live Demonstration of GitHub Copilot: Mahesh provides a live demonstration of how to use GitHub Copilot to add comments, update old code to newer standards (e.g., from C# 3.0 to C# 12), and write documentation and unit tests. He shows how Copilot can assist in generating code comments, creating logs for error handling, and updating code with the latest features.
🔍 Refactoring Code: The keynote also includes a segment on refactoring legacy code using AI tools. Sean, another developer, demonstrates how Copilot can be used to refactor code to make it more understandable and maintainable, especially when dealing with legacy codebases.
📊 Challenges and Considerations: The speaker concludes by discussing the challenges of using AI tools like GitHub Copilot, including concerns about code security, accuracy, and the potential for using outdated code snippets from public data sources. He advises developers to always review and verify AI-generated code.
👉 Code Quality Conference 2024
https://codequalityconf.com/
📺 CSharp TV - Dev Streaming Destination http://csharp.tv
🌎 C# Corner - Community of Software and Data Developers https://www.c-sharpcorner.com/
Show More Show Less View Video Transcript
0:03
everybody good morning good evening uh
0:05
everybody good morning good evening uh
0:05
everybody good morning good evening uh good afternoon wherever you joining us
0:07
good afternoon wherever you joining us
0:07
good afternoon wherever you joining us from and also again I think Simon just
0:11
from and also again I think Simon just
0:11
from and also again I think Simon just mentioned shout out to David
0:13
mentioned shout out to David
0:13
mentioned shout out to David MacArthur David MacArthur is U one of
0:17
MacArthur David MacArthur is U one of
0:17
MacArthur David MacArthur is U one of our MVPs and prominent speaker he's the
0:20
our MVPs and prominent speaker he's the
0:20
our MVPs and prominent speaker he's the one who came up with this idea for code
0:23
one who came up with this idea for code
0:23
one who came up with this idea for code doing a conference just focused on code
0:25
doing a conference just focused on code
0:25
doing a conference just focused on code quality so if you know a little bit
0:27
quality so if you know a little bit
0:27
quality so if you know a little bit about David MacArthur he has a
0:30
about David MacArthur he has a
0:30
about David MacArthur he has a weekly show on C sharp
0:33
weekly show on C sharp
0:33
weekly show on C sharp tv um and he's always uh fascinated with
0:37
tv um and he's always uh fascinated with
0:37
tv um and he's always uh fascinated with the code quality and he loves it and uh
0:41
the code quality and he loves it and uh
0:41
the code quality and he loves it and uh that's his idea this year uh he was a
0:43
that's his idea this year uh he was a
0:43
that's his idea this year uh he was a little bit I guess busy hopefully as
0:46
little bit I guess busy hopefully as
0:46
little bit I guess busy hopefully as Simon said we will see him next year so
0:49
Simon said we will see him next year so
0:49
Simon said we will see him next year so all right let's get back to the keynote
0:52
all right let's get back to the keynote
0:52
all right let's get back to the keynote everybody welcome my name is Mahesh Chan
0:55
everybody welcome my name is Mahesh Chan
0:55
everybody welcome my name is Mahesh Chan founder of C Corner and my keynote
0:57
founder of C Corner and my keynote
0:57
founder of C Corner and my keynote today's is all about and co-pilot how we
1:01
today's is all about and co-pilot how we
1:01
today's is all about and co-pilot how we can benefit from AI in in the improving
1:06
can benefit from AI in in the improving
1:06
can benefit from AI in in the improving our code
1:07
our code
1:07
our code quality but before that you know I've
1:10
quality but before that you know I've
1:10
quality but before that you know I've been watching this conference for last
1:11
been watching this conference for last
1:11
been watching this conference for last five six hours and I must say amazing
1:14
five six hours and I must say amazing
1:14
five six hours and I must say amazing speakers amazing speakers I saw Saga
1:17
speakers amazing speakers I saw Saga
1:17
speakers amazing speakers I saw Saga covered code quality in devops and then
1:19
covered code quality in devops and then
1:19
covered code quality in devops and then V came and Satya talked about co-pilot
1:23
V came and Satya talked about co-pilot
1:23
V came and Satya talked about co-pilot you know Co refecting your code amazing
1:26
you know Co refecting your code amazing
1:26
you know Co refecting your code amazing amazing and then AB Shake talk about you
1:29
amazing and then AB Shake talk about you
1:29
amazing and then AB Shake talk about you know you know how we should look at the
1:31
know you know how we should look at the
1:31
know you know how we should look at the metrices when looking for co-pilot and
1:33
metrices when looking for co-pilot and
1:33
metrices when looking for co-pilot and then we we saw some good numbers on
1:36
then we we saw some good numbers on
1:36
then we we saw some good numbers on technical debt and details on other
1:39
technical debt and details on other
1:39
technical debt and details on other topics from Paco and Adam and David just
1:42
topics from Paco and Adam and David just
1:42
topics from Paco and Adam and David just talked about uh you know writing clean
1:44
talked about uh you know writing clean
1:44
talked about uh you know writing clean code so clean code is always been my you
1:47
code so clean code is always been my you
1:47
code so clean code is always been my you know one of the first thing is like
1:49
know one of the first thing is like
1:49
know one of the first thing is like listen if you're writing code it has to
1:51
listen if you're writing code it has to
1:51
listen if you're writing code it has to be clean so that said thank you
1:53
be clean so that said thank you
1:53
be clean so that said thank you everybody all the speakers before me and
1:55
everybody all the speakers before me and
1:55
everybody all the speakers before me and after me uh this is going great you guys
1:58
after me uh this is going great you guys
1:58
after me uh this is going great you guys are amazing let's get back to this
2:01
are amazing let's get back to this
2:01
are amazing let's get back to this GitHub copilot I'm sure most of you have
2:04
GitHub copilot I'm sure most of you have
2:04
GitHub copilot I'm sure most of you have already heard of GitHub copilot if you
2:06
already heard of GitHub copilot if you
2:06
already heard of GitHub copilot if you have not I highly recommend you check it
2:09
have not I highly recommend you check it
2:09
have not I highly recommend you check it out GitHub copilot is is your AI
2:12
out GitHub copilot is is your AI
2:12
out GitHub copilot is is your AI assistant it is your code reviewer it is
2:15
assistant it is your code reviewer it is
2:15
assistant it is your code reviewer it is your prer code reviewer it could also
2:19
your prer code reviewer it could also
2:19
your prer code reviewer it could also help you answer your questions so many
2:21
help you answer your questions so many
2:21
help you answer your questions so many of you you know when you go
2:23
of you you know when you go
2:24
of you you know when you go to Google and search for some quick
2:26
to Google and search for some quick
2:26
to Google and search for some quick questions answers code simple you don't
2:29
questions answers code simple you don't
2:29
questions answers code simple you don't need to do anymore or you're already
2:30
need to do anymore or you're already
2:30
need to do anymore or you're already there you can do everything and GitHub
2:33
there you can do everything and GitHub
2:33
there you can do everything and GitHub goil um it is available through Mo most
2:36
goil um it is available through Mo most
2:36
goil um it is available through Mo most of the popular idees especially from uh
2:40
of the popular idees especially from uh
2:40
of the popular idees especially from uh Microsoft Microsoft Visual Studio has it
2:42
Microsoft Microsoft Visual Studio has it
2:42
Microsoft Microsoft Visual Studio has it vs code jet Brands and other IDs so
2:45
vs code jet Brands and other IDs so
2:45
vs code jet Brands and other IDs so visual studio the latest version already
2:48
visual studio the latest version already
2:48
visual studio the latest version already has copilot integrated in it uh but some
2:52
has copilot integrated in it uh but some
2:52
has copilot integrated in it uh but some other IDs you may have to download a
2:54
other IDs you may have to download a
2:54
other IDs you may have to download a Plugin or um something extra for that it
2:59
Plugin or um something extra for that it
2:59
Plugin or um something extra for that it support major programming languages
3:00
support major programming languages
3:01
support major programming languages right C C++ C Java python any majority
3:04
right C C++ C Java python any majority
3:05
right C C++ C Java python any majority of them are already supported it also
3:07
of them are already supported it also
3:07
of them are already supported it also actually supports the the JavaScript and
3:10
actually supports the the JavaScript and
3:10
actually supports the the JavaScript and JavaScript framework so you can ask
3:13
JavaScript framework so you can ask
3:13
JavaScript framework so you can ask copilot to write something in react or
3:15
copilot to write something in react or
3:15
copilot to write something in react or angular it will write that for you um
3:19
angular it will write that for you um
3:19
angular it will write that for you um and the results say that copilot is is
3:21
and the results say that copilot is is
3:21
and the results say that copilot is is incre increase the productivity of
3:23
incre increase the productivity of
3:23
incre increase the productivity of developers big time so I highly
3:25
developers big time so I highly
3:25
developers big time so I highly recommend you check out
3:28
recommend you check out
3:28
recommend you check out copal um oops what going on
3:32
copal um oops what going on
3:32
copal um oops what going on here okay so let's talk about code
3:34
here okay so let's talk about code
3:35
here okay so let's talk about code quality in today's session I'm just
3:36
quality in today's session I'm just
3:36
quality in today's session I'm just going to focus on code quality and how
3:39
going to focus on code quality and how
3:39
going to focus on code quality and how you can use GitHub copilot for improving
3:42
you can use GitHub copilot for improving
3:42
you can use GitHub copilot for improving code quality so when you think of code
3:44
code quality so when you think of code
3:44
code quality so when you think of code quality look for these five things
3:46
quality look for these five things
3:46
quality look for these five things readable is your code readable can
3:48
readable is your code readable can
3:48
readable is your code readable can somebody just join your team they can
3:51
somebody just join your team they can
3:51
somebody just join your team they can you know look at the code and they find
3:53
you know look at the code and they find
3:53
you know look at the code and they find it very easy to understand that's easy
3:56
it very easy to understand that's easy
3:56
it very easy to understand that's easy the first one reusable can you write in
3:58
the first one reusable can you write in
3:58
the first one reusable can you write in the code that can be reused including
4:02
the code that can be reused including
4:02
the code that can be reused including like classes libraries whatever
4:04
like classes libraries whatever
4:04
like classes libraries whatever functions so can they be reused you
4:07
functions so can they be reused you
4:07
functions so can they be reused you don't have to duplicate the code is it
4:09
don't have to duplicate the code is it
4:09
don't have to duplicate the code is it concise you don't want to you know
4:11
concise you don't want to you know
4:11
concise you don't want to you know especially if there's latest versions of
4:13
especially if there's latest versions of
4:13
especially if there's latest versions of the language coming especially you know
4:15
the language coming especially you know
4:15
the language coming especially you know I work with c and if you look at the
4:18
I work with c and if you look at the
4:18
I work with c and if you look at the code written in C 3 versus 12 it's a big
4:21
code written in C 3 versus 12 it's a big
4:21
code written in C 3 versus 12 it's a big difference are you using maintainable
4:24
difference are you using maintainable
4:24
difference are you using maintainable are you building a maintainable code is
4:26
are you building a maintainable code is
4:26
are you building a maintainable code is the code maintainable right clear
4:28
the code maintainable right clear
4:28
the code maintainable right clear transparence uh in and then regland
4:30
transparence uh in and then regland
4:30
transparence uh in and then regland right it's your you have error handling
4:32
right it's your you have error handling
4:32
right it's your you have error handling locking notifications how what happens
4:34
locking notifications how what happens
4:34
locking notifications how what happens if something crashes in my code so these
4:37
if something crashes in my code so these
4:37
if something crashes in my code so these are the five major things you know we
4:40
are the five major things you know we
4:40
are the five major things you know we need you know when you think of code
4:41
need you know when you think of code
4:41
need you know when you think of code quality you think of these five these
4:43
quality you think of these five these
4:43
quality you think of these five these features in your
4:45
features in your
4:45
features in your code these are some numbers from GitHub
4:48
code these are some numbers from GitHub
4:48
code these are some numbers from GitHub co-pilot and I really I care about the
4:50
co-pilot and I really I care about the
4:51
co-pilot and I really I care about the first number only that 85% of um
4:54
first number only that 85% of um
4:54
first number only that 85% of um developers are actually happy and felt
4:57
developers are actually happy and felt
4:57
developers are actually happy and felt that they have a better code when they
5:00
that they have a better code when they
5:00
that they have a better code when they use copilot when it comes to code
5:02
use copilot when it comes to code
5:02
use copilot when it comes to code quality so definitely check it out and
5:05
quality so definitely check it out and
5:05
quality so definitely check it out and you probably know what GitHub copilot
5:07
you probably know what GitHub copilot
5:07
you probably know what GitHub copilot does is as everybody said multiple times
5:09
does is as everybody said multiple times
5:09
does is as everybody said multiple times in this conference is um that uh GitHub
5:14
in this conference is um that uh GitHub
5:14
in this conference is um that uh GitHub pilot is just using Ai and it is using
5:17
pilot is just using Ai and it is using
5:17
pilot is just using Ai and it is using GitHub code repositor using also online
5:20
GitHub code repositor using also online
5:20
GitHub code repositor using also online websites it also uses it Microsoft has a
5:23
websites it also uses it Microsoft has a
5:23
websites it also uses it Microsoft has a lot of code as well through its own
5:25
lot of code as well through its own
5:25
lot of code as well through its own documentation so it's using all that and
5:28
documentation so it's using all that and
5:28
documentation so it's using all that and try to give you the best code
5:31
try to give you the best code
5:31
try to give you the best code possible however it doesn't mean that
5:34
possible however it doesn't mean that
5:34
possible however it doesn't mean that all code written by GitHub copilot or
5:38
all code written by GitHub copilot or
5:38
all code written by GitHub copilot or any chat GPT or any the generative AI
5:40
any chat GPT or any the generative AI
5:40
any chat GPT or any the generative AI tools is correct it's also you can't be
5:44
tools is correct it's also you can't be
5:44
tools is correct it's also you can't be sure that it's the latest version you
5:45
sure that it's the latest version you
5:45
sure that it's the latest version you can also be sure that it has best
5:48
can also be sure that it has best
5:48
can also be sure that it has best quality so you have that's your job to
5:51
quality so you have that's your job to
5:51
quality so you have that's your job to verify that and something we can try to
5:53
verify that and something we can try to
5:53
verify that and something we can try to do this using in using the
5:57
do this using in using the
5:57
do this using in using the tool so I'm going to cover these seven
6:00
tool so I'm going to cover these seven
6:00
tool so I'm going to cover these seven things how are you going to use copilot
6:03
things how are you going to use copilot
6:03
things how are you going to use copilot to uh explain your existing code right
6:07
to uh explain your existing code right
6:07
to uh explain your existing code right right let's let's say I'm going to do is
6:09
right let's let's say I'm going to do is
6:09
right let's let's say I'm going to do is uh I'm going to share my screen let's
6:12
uh I'm going to share my screen let's
6:12
uh I'm going to share my screen let's see if I can do share my screen I'm
6:14
see if I can do share my screen I'm
6:14
see if I can do share my screen I'm going to show you live how to do
6:16
going to show you live how to do
6:16
going to show you live how to do these share
6:19
screen
6:23
uh let me try that
6:33
okay I'm going to share
6:37
okay I'm going to share
6:37
okay I'm going to share my window you know what I'm going to
6:40
my window you know what I'm going to
6:40
my window you know what I'm going to share my entire screen
6:45
right
6:48
right
6:48
right perfect okay
6:52
perfect okay
6:52
perfect okay um S I see your screen you're inside
6:55
um S I see your screen you're inside
6:55
um S I see your screen you're inside streamyard once you move away I'll add
6:57
streamyard once you move away I'll add
6:57
streamyard once you move away I'll add it to the Stream
7:00
it to the Stream
7:00
it to the Stream okay tell me when you see my screen yeah
7:02
okay tell me when you see my screen yeah
7:02
okay tell me when you see my screen yeah I see a visual studio I've added it to
7:04
I see a visual studio I've added it to
7:04
I see a visual studio I've added it to the stream great so this is some of my
7:07
the stream great so this is some of my
7:07
the stream great so this is some of my existing code and funny thing is I wrote
7:09
existing code and funny thing is I wrote
7:10
existing code and funny thing is I wrote this whole code using copilot I didn't
7:12
this whole code using copilot I didn't
7:12
this whole code using copilot I didn't try it single line of code but uh this
7:15
try it single line of code but uh this
7:15
try it single line of code but uh this is not where I'm going to show you today
7:17
is not where I'm going to show you today
7:17
is not where I'm going to show you today imagine you already have the code or
7:19
imagine you already have the code or
7:19
imagine you already have the code or you're writing already code so first
7:22
you're writing already code so first
7:22
you're writing already code so first thing we will start with is that the
7:23
thing we will start with is that the
7:23
thing we will start with is that the code commands right that's where first
7:25
code commands right that's where first
7:25
code commands right that's where first you want to start right now this code
7:26
you want to start right now this code
7:26
you want to start right now this code has no commands and um I'm sure you
7:30
has no commands and um I'm sure you
7:30
has no commands and um I'm sure you already know there's multiple ways you
7:32
already know there's multiple ways you
7:32
already know there's multiple ways you can access GitHub co-pilot one is you
7:34
can access GitHub co-pilot one is you
7:34
can access GitHub co-pilot one is you can go from here and open the chat
7:36
can go from here and open the chat
7:36
can go from here and open the chat window right open chat window here and
7:39
window right open chat window here and
7:39
window right open chat window here and you can start chatting and asking this
7:41
you can start chatting and asking this
7:41
you can start chatting and asking this you know questions or code you can put
7:44
you know questions or code you can put
7:44
you know questions or code you can put your code there and ask whatever so
7:46
your code there and ask whatever so
7:46
your code there and ask whatever so that's really not what I'm going to do
7:48
that's really not what I'm going to do
7:48
that's really not what I'm going to do you can
7:49
you can
7:49
you can also uh do is uh you know WR click on
7:54
also uh do is uh you know WR click on
7:54
also uh do is uh you know WR click on this here you say ask Co pilot or you
7:56
this here you say ask Co pilot or you
7:56
this here you say ask Co pilot or you can use you know short key shortcut here
7:58
can use you know short key shortcut here
7:58
can use you know short key shortcut here alt Plus
8:00
alt Plus
8:00
alt Plus you know slash here that's what I use
8:02
you know slash here that's what I use
8:02
you know slash here that's what I use all the time so I okay so I open here so
8:05
all the time so I okay so I open here so
8:05
all the time so I okay so I open here so you can uh put this uh cursor depends on
8:09
you can uh put this uh cursor depends on
8:09
you can uh put this uh cursor depends on where you put your cursor so I'll just
8:10
where you put your cursor so I'll just
8:10
where you put your cursor so I'll just put right here so what I'm going to do
8:12
put right here so what I'm going to do
8:12
put right here so what I'm going to do is I'm going to ask go pilot to do some
8:16
is I'm going to ask go pilot to do some
8:16
is I'm going to ask go pilot to do some work for me hey can
8:20
work for me hey can
8:20
work for me hey can you comment this program and again if
8:24
you comment this program and again if
8:24
you comment this program and again if you're not familiar with how generative
8:27
you're not familiar with how generative
8:27
you're not familiar with how generative AI Works um prompts are the the key
8:30
AI Works um prompts are the the key
8:30
AI Works um prompts are the the key prompts means how do you ask questions
8:33
prompts means how do you ask questions
8:33
prompts means how do you ask questions and there's a prompt engineering and
8:35
and there's a prompt engineering and
8:35
and there's a prompt engineering and there art how do you ask and write
8:37
there art how do you ask and write
8:37
there art how do you ask and write prompts on C Corner I have written a
8:40
prompts on C Corner I have written a
8:40
prompts on C Corner I have written a great big long article on how prompt is
8:43
great big long article on how prompt is
8:43
great big long article on how prompt is broken down into different components so
8:46
broken down into different components so
8:46
broken down into different components so if you don't know how to write AI
8:48
if you don't know how to write AI
8:48
if you don't know how to write AI prompts definitely highly recommended
8:50
prompts definitely highly recommended
8:50
prompts definitely highly recommended check check that out because your answer
8:52
check check that out because your answer
8:52
check check that out because your answer can be much better by writing more
8:55
can be much better by writing more
8:55
can be much better by writing more detailed prompts all right but this go
8:58
detailed prompts all right but this go
8:58
detailed prompts all right but this go pilot in the the code editor is simple
9:01
pilot in the the code editor is simple
9:01
pilot in the the code editor is simple it only cares about the code and it
9:03
it only cares about the code and it
9:03
it only cares about the code and it knows what your code you are in so
9:05
knows what your code you are in so
9:05
knows what your code you are in so that's easy part you can straightforward
9:07
that's easy part you can straightforward
9:07
that's easy part you can straightforward just ask question so I'll say hey can
9:09
just ask question so I'll say hey can
9:09
just ask question so I'll say hey can you commend this program so let's see
9:12
you commend this program so let's see
9:12
you commend this program so let's see what it does here I'll show you right
9:15
what it does here I'll show you right
9:15
what it does here I'll show you right now it's working now it's probably
9:17
now it's working now it's probably
9:17
now it's working now it's probably reading my code uh that's what it does
9:19
reading my code uh that's what it does
9:20
reading my code uh that's what it does first um and uh what this is a code is
9:22
first um and uh what this is a code is
9:22
first um and uh what this is a code is simply let's so look let's look at here
9:25
simply let's so look let's look at here
9:25
simply let's so look let's look at here right so what it does is as you can see
9:28
right so what it does is as you can see
9:28
right so what it does is as you can see that it has written the right side here
9:30
that it has written the right side here
9:30
that it has written the right side here showing me the the recommendations how
9:33
showing me the the recommendations how
9:33
showing me the the recommendations how you know so if you go through that if
9:36
you know so if you go through that if
9:36
you know so if you go through that if you like the code you can accept it and
9:38
you like the code you can accept it and
9:38
you like the code you can accept it and if you don't like you can ask him again
9:40
if you don't like you can ask him again
9:40
if you don't like you can ask him again you can even give more details you can
9:41
you can even give more details you can
9:41
you can even give more details you can cancel it and say uh you can I want the
9:47
detail uh let me show you
9:50
detail uh let me show you
9:50
detail uh let me show you quickly can
9:52
quickly can
9:52
quickly can you document this code with detail
9:57
you document this code with detail
9:57
you document this code with detail explanation
10:04
whatever you
10:08
know
10:11
know
10:11
know explaination right so you can do that it
10:14
explaination right so you can do that it
10:14
explaination right so you can do that it can probably write more details now so
10:17
can probably write more details now so
10:17
can probably write more details now so more more you give more you tell him
10:19
more more you give more you tell him
10:20
more more you give more you tell him like you can even say uh so now this a
10:23
like you can even say uh so now this a
10:23
like you can even say uh so now this a little bit different you know it's
10:24
little bit different you know it's
10:24
little bit different you know it's writing on top of the each line a little
10:26
writing on top of the each line a little
10:26
writing on top of the each line a little bit more so say okay I say accept so as
10:29
bit more so say okay I say accept so as
10:29
bit more so say okay I say accept so as soon as you accept you can see that your
10:32
soon as you accept you can see that your
10:32
soon as you accept you can see that your code is U commented here and again just
10:36
code is U commented here and again just
10:36
code is U commented here and again just because code is commented it just try go
10:39
because code is commented it just try go
10:39
because code is commented it just try go goil try to do its job but you can
10:41
goil try to do its job but you can
10:41
goil try to do its job but you can always go back and read it make sure
10:43
always go back and read it make sure
10:43
always go back and read it make sure it's done right you always want to
10:45
it's done right you always want to
10:45
it's done right you always want to verify the code written by co-pilot or
10:48
verify the code written by co-pilot or
10:48
verify the code written by co-pilot or text or anything comments right uh so
10:51
text or anything comments right uh so
10:52
text or anything comments right uh so this didn't uh comment on this so
10:54
this didn't uh comment on this so
10:54
this didn't uh comment on this so because I said program only now I'm
10:55
because I said program only now I'm
10:56
because I said program only now I'm going to say can you comment
11:04
author
11:05
author
11:06
author class so now I'm going to commment that
11:08
class so now I'm going to commment that
11:08
class so now I'm going to commment that right so this is going to add commments
11:10
right so this is going to add commments
11:10
right so this is going to add commments to my author class here so you can see
11:13
to my author class here so you can see
11:13
to my author class here so you can see right here so you get the idea you can
11:15
right here so you get the idea you can
11:15
right here so you get the idea you can go and you know whatever you can ask for
11:18
go and you know whatever you can ask for
11:18
go and you know whatever you can ask for add more things and that's all so that's
11:20
add more things and that's all so that's
11:20
add more things and that's all so that's one thing uh you can think about when it
11:22
one thing uh you can think about when it
11:22
one thing uh you can think about when it comes to code quality is as U commenting
11:27
comes to code quality is as U commenting
11:27
comes to code quality is as U commenting the code now second is explain existing
11:30
the code now second is explain existing
11:30
the code now second is explain existing code I missed that so I'm going to
11:32
code I missed that so I'm going to
11:32
code I missed that so I'm going to explain you know how many of you write
11:34
explain you know how many of you write
11:34
explain you know how many of you write code and say you know what I'm going to
11:36
code and say you know what I'm going to
11:36
code and say you know what I'm going to write a documentation on that code and
11:38
write a documentation on that code and
11:38
write a documentation on that code and how boring is that you know we know
11:41
how boring is that you know we know
11:41
how boring is that you know we know developers we just trite to like to
11:43
developers we just trite to like to
11:43
developers we just trite to like to write our code we just try to solve the
11:45
write our code we just try to solve the
11:45
write our code we just try to solve the problems we just want to we want to just
11:47
problems we just want to we want to just
11:47
problems we just want to we want to just launch the program and run and test it
11:50
launch the program and run and test it
11:50
launch the program and run and test it there's no we don't have time to write
11:52
there's no we don't have time to write
11:52
there's no we don't have time to write articles and blogs and documents on that
11:55
articles and blogs and documents on that
11:55
articles and blogs and documents on that so I'm going to Simply say
11:57
so I'm going to Simply say
11:57
so I'm going to Simply say okay can you you write
12:02
a a detailed
12:06
a a detailed
12:06
a a detailed blog
12:08
blog
12:08
blog uh about this entire
12:13
uh about this entire
12:13
uh about this entire application so let's see what copil this
12:16
application so let's see what copil this
12:16
application so let's see what copil this right look at that so here we go it has
12:19
right look at that so here we go it has
12:19
right look at that so here we go it has quickly written in blog already this
12:21
quickly written in blog already this
12:21
quickly written in blog already this title is building a file processing
12:23
title is building a file processing
12:23
title is building a file processing application in C so I didn't tell him I
12:26
application in C so I didn't tell him I
12:26
application in C so I didn't tell him I didn't tell copilot anything I didn't
12:27
didn't tell copilot anything I didn't
12:27
didn't tell copilot anything I didn't tell it like what it is so it already
12:30
tell it like what it is so it already
12:30
tell it like what it is so it already goes reads my application try to
12:32
goes reads my application try to
12:32
goes reads my application try to understand what it is it's a building a
12:34
understand what it is it's a building a
12:34
understand what it is it's a building a file processing application and c and
12:36
file processing application and c and
12:36
file processing application and c and there's introduction
12:37
there's introduction
12:38
there's introduction here um it also explains step by step
12:41
here um it also explains step by step
12:41
here um it also explains step by step there's author class and then there's
12:44
there's author class and then there's
12:44
there's author class and then there's main method using a stream reader split
12:47
main method using a stream reader split
12:47
main method using a stream reader split method so it whatever you would usually
12:50
method so it whatever you would usually
12:50
method so it whatever you would usually write it's all there so if you want to
12:52
write it's all there so if you want to
12:52
write it's all there so if you want to document your code um this is first to
12:55
document your code um this is first to
12:56
document your code um this is first to start with it's it's like 80% of your
12:58
start with it's it's like 80% of your
12:58
start with it's it's like 80% of your work is already done maybe 90 right
13:01
work is already done maybe 90 right
13:01
work is already done maybe 90 right sometimes you may say oh this is enough
13:02
sometimes you may say oh this is enough
13:02
sometimes you may say oh this is enough for me or for my team now you can just
13:05
for me or for my team now you can just
13:05
for me or for my team now you can just go and add a little bit more to it and
13:07
go and add a little bit more to it and
13:07
go and add a little bit more to it and that's your
13:09
that's your
13:09
that's your documentation now third thing I'm going
13:11
documentation now third thing I'm going
13:12
documentation now third thing I'm going to cover is uh talk about error handling
13:14
to cover is uh talk about error handling
13:14
to cover is uh talk about error handling right now so right now it's it's fine
13:16
right now so right now it's it's fine
13:16
right now so right now it's it's fine right now there's a little bit error
13:17
right now there's a little bit error
13:17
right now there's a little bit error handling is already added here but you
13:19
handling is already added here but you
13:19
handling is already added here but you can expand more on that you know you say
13:21
can expand more on that you know you say
13:22
can expand more on that you know you say say you know what uh error is great but
13:24
say you know what uh error is great but
13:25
say you know what uh error is great but I'm going to do
13:27
I'm going to do
13:27
I'm going to do is can you add a log
13:32
is can you add a log
13:32
is can you add a log logging
13:35
functionality to this program and
13:39
functionality to this program and
13:39
functionality to this program and save log error and log
13:44
save log error and log
13:44
save log error and log errors in a text
13:49
file name you can you can even give
13:52
file name you can you can even give
13:52
file name you can you can even give detail instructions what you want your
13:54
detail instructions what you want your
13:54
detail instructions what you want your log file to be where do you want it to
13:55
log file to be where do you want it to
13:55
log file to be where do you want it to be store you can even have different
13:58
be store you can even have different
13:58
be store you can even have different kind different types formats you can say
14:00
kind different types formats you can say
14:00
kind different types formats you can say I want you to you know store all these
14:03
I want you to you know store all these
14:03
I want you to you know store all these errors in a database then you know you
14:05
errors in a database then you know you
14:05
errors in a database then you know you can go Way Beyond and build the entire
14:08
can go Way Beyond and build the entire
14:08
can go Way Beyond and build the entire application here without just typing
14:10
application here without just typing
14:10
application here without just typing this you don't have to write a single
14:11
this you don't have to write a single
14:11
this you don't have to write a single line of
14:13
line of
14:13
line of code
14:17
um so let's see what it does right and
14:21
um so let's see what it does right and
14:21
um so let's see what it does right and again just because it's typing the code
14:24
again just because it's typing the code
14:24
again just because it's typing the code it's going to write majority of the code
14:26
it's going to write majority of the code
14:26
it's going to write majority of the code you still have to test the code for
14:27
you still have to test the code for
14:27
you still have to test the code for accuracy performance make sure it's
14:29
accuracy performance make sure it's
14:29
accuracy performance make sure it's doing working right you have to do still
14:32
doing working right you have to do still
14:32
doing working right you have to do still you have to do test just don't assume
14:34
you have to do test just don't assume
14:34
you have to do test just don't assume that everything is written by this is
14:37
that everything is written by this is
14:37
that everything is written by this is 100% uh
14:40
100% uh
14:40
100% uh correct uh still writing looks like
14:42
correct uh still writing looks like
14:42
correct uh still writing looks like there you go so here we go right you can
14:45
there you go so here we go right you can
14:45
there you go so here we go right you can compare here you will see that okay so
14:47
compare here you will see that okay so
14:47
compare here you will see that okay so there is this has added log error method
14:50
there is this has added log error method
14:50
there is this has added log error method here as you can see log error method
14:53
here as you can see log error method
14:53
here as you can see log error method just below the catch in catch State
14:55
just below the catch in catch State
14:55
just below the catch in catch State catch block here uh and then
14:59
catch block here uh and then
14:59
catch block here uh and then uh think at the bottom you will see the
15:01
uh think at the bottom you will see the
15:01
uh think at the bottom you will see the log error so log is a static method it's
15:03
log error so log is a static method it's
15:03
log error so log is a static method it's added to our class see it's also our our
15:08
added to our class see it's also our our
15:08
added to our class see it's also our our text file which is error log which is
15:10
text file which is error log which is
15:10
text file which is error log which is stored in Camp errors the reason setting
15:12
stored in Camp errors the reason setting
15:12
stored in Camp errors the reason setting to Camp is because I'm already creating
15:15
to Camp is because I'm already creating
15:15
to Camp is because I'm already creating another file in cm at the top so now
15:19
another file in cm at the top so now
15:19
another file in cm at the top so now every time any ex an exception comes
15:21
every time any ex an exception comes
15:21
every time any ex an exception comes it's going to write to our this log file
15:24
it's going to write to our this log file
15:24
it's going to write to our this log file so how cool is that right so far I have
15:27
so how cool is that right so far I have
15:27
so how cool is that right so far I have not typed a single line of code here so
15:30
not typed a single line of code here so
15:30
not typed a single line of code here so far that makes sense so let's go back to
15:33
far that makes sense so let's go back to
15:33
far that makes sense so let's go back to my list here so a point here is really
15:37
my list here so a point here is really
15:37
my list here so a point here is really guys is that a co-pilot can save you a
15:40
guys is that a co-pilot can save you a
15:40
guys is that a co-pilot can save you a lot of time and do some of the work you
15:43
lot of time and do some of the work you
15:43
lot of time and do some of the work you really don't like to do the boring work
15:45
really don't like to do the boring work
15:45
really don't like to do the boring work like typing and writing commands and all
15:48
like typing and writing commands and all
15:48
like typing and writing commands and all so update code to the latest feature
15:51
so update code to the latest feature
15:51
so update code to the latest feature same thing you can do is you can if you
15:54
same thing you can do is you can if you
15:54
same thing you can do is you can if you have an old code right you have code I
15:56
have an old code right you have code I
15:56
have an old code right you have code I have a lot of old code I I was looking
15:58
have a lot of old code I I was looking
15:58
have a lot of old code I I was looking at C Corner my code I wrote 10 years ago
16:01
at C Corner my code I wrote 10 years ago
16:01
at C Corner my code I wrote 10 years ago it's for C 2.0 or 3.0 or whatever now
16:05
it's for C 2.0 or 3.0 or whatever now
16:05
it's for C 2.0 or 3.0 or whatever now it's C
16:06
it's C
16:06
it's C 12 um you can literally ask your I'll go
16:10
12 um you can literally ask your I'll go
16:10
12 um you can literally ask your I'll go and I think this one is latest score so
16:12
and I think this one is latest score so
16:12
and I think this one is latest score so it will be hard and we don't have time
16:14
it will be hard and we don't have time
16:14
it will be hard and we don't have time to show you but I can just go here and
16:20
say let me see
16:23
say let me see
16:23
say let me see this can you update this below this
16:27
this can you update this below this
16:28
this can you update this below this program because this whole
16:30
program because this whole
16:30
program because this whole programing do c 12 right I don't know
16:34
programing do c 12 right I don't know
16:34
programing do c 12 right I don't know what version it's written I'm probably
16:35
what version it's written I'm probably
16:35
what version it's written I'm probably it's in a little older version uh so
16:38
it's in a little older version uh so
16:38
it's in a little older version uh so let's see what it
16:40
let's see what it
16:40
let's see what it does uh you can also be specific that
16:42
does uh you can also be specific that
16:42
does uh you can also be specific that can you write you know certain function
16:46
can you write you know certain function
16:46
can you write you know certain function certain method more detail you do it's
16:48
certain method more detail you do it's
16:48
certain method more detail you do it's going to try to help you write your code
16:50
going to try to help you write your code
16:50
going to try to help you write your code what you want to do anyway so look at
16:52
what you want to do anyway so look at
16:52
what you want to do anyway so look at this so in left side we were using using
16:55
this so in left side we were using using
16:55
this so in left side we were using using statement right we are using us that
16:58
statement right we are using us that
16:58
statement right we are using us that means clear it's a o old version of c
17:02
means clear it's a o old version of c
17:02
means clear it's a o old version of c and also using this parenthesis and new
17:04
and also using this parenthesis and new
17:04
and also using this parenthesis and new C we don't need anymore right new CP
17:07
C we don't need anymore right new CP
17:07
C we don't need anymore right new CP just you just go and call Direct so same
17:10
just you just go and call Direct so same
17:11
just you just go and call Direct so same thing with the while statement right
17:12
thing with the while statement right
17:12
thing with the while statement right here right is not this one is using is
17:15
here right is not this one is using is
17:15
here right is not this one is using is not that's a new feature in you know C
17:17
not that's a new feature in you know C
17:17
not that's a new feature in you know C 12 things like that and look at this is
17:20
12 things like that and look at this is
17:20
12 things like that and look at this is also new feature here so now out of
17:23
also new feature here so now out of
17:23
also new feature here so now out of sudden you know we don't use plus
17:25
sudden you know we don't use plus
17:25
sudden you know we don't use plus anymore in string concatenation right
17:27
anymore in string concatenation right
17:27
anymore in string concatenation right that's the old way to write this is a
17:29
that's the old way to write this is a
17:29
that's the old way to write this is a old way to write when you want to
17:31
old way to write when you want to
17:31
old way to write when you want to concatenate strings in C now now this is
17:34
concatenate strings in C now now this is
17:34
concatenate strings in C now now this is the new way to write in C 12 and boom
17:38
the new way to write in C 12 and boom
17:38
the new way to write in C 12 and boom guess what my code is now even look at
17:40
guess what my code is now even look at
17:40
guess what my code is now even look at the new when you're creating a new
17:41
the new when you're creating a new
17:41
the new when you're creating a new object auth author class here you don't
17:44
object auth author class here you don't
17:44
object auth author class here you don't have to specifically call the name you
17:46
have to specifically call the name you
17:46
have to specifically call the name you just call the construction this
17:49
just call the construction this
17:49
just call the construction this way so now I can say accept in this my
17:53
way so now I can say accept in this my
17:53
way so now I can say accept in this my code is now updated to C 12 how cool is
17:57
code is now updated to C 12 how cool is
17:57
code is now updated to C 12 how cool is that right so
17:59
that right so
17:59
that right so I just wrote comments I just commented
18:01
I just wrote comments I just commented
18:01
I just wrote comments I just commented my entire code I just also created a
18:04
my entire code I just also created a
18:04
my entire code I just also created a documentation I just updated also that
18:06
documentation I just updated also that
18:07
documentation I just updated also that to C 12 in literally few minutes and how
18:10
to C 12 in literally few minutes and how
18:10
to C 12 in literally few minutes and how cool is
18:12
cool is
18:12
cool is that next thing is test cases right how
18:14
that next thing is test cases right how
18:14
that next thing is test cases right how many of you really love writing test Cas
18:17
many of you really love writing test Cas
18:17
many of you really love writing test Cas not too many I don't um so and let's you
18:22
not too many I don't um so and let's you
18:22
not too many I don't um so and let's you know same thing we'll go back to our you
18:24
know same thing we'll go back to our you
18:24
know same thing we'll go back to our you know same thing I'll just say hey
18:26
know same thing I'll just say hey
18:26
know same thing I'll just say hey co-pilot can you
18:31
WR
18:32
WR
18:32
WR unit test
18:35
unit test
18:35
unit test for uh this
18:39
program it sometimes take a little time
18:42
program it sometimes take a little time
18:42
program it sometimes take a little time because working thinking it's reading
18:44
because working thinking it's reading
18:44
because working thinking it's reading your code um but while it's doing that
18:48
your code um but while it's doing that
18:48
your code um but while it's doing that it's going to come and write the whole
18:49
it's going to come and write the whole
18:49
it's going to come and write the whole unit test look at this so there's class
18:52
unit test look at this so there's class
18:52
unit test look at this so there's class program test right just scoll the whole
18:54
program test right just scoll the whole
18:54
program test right just scoll the whole thing just as you can go through this
18:57
thing just as you can go through this
18:57
thing just as you can go through this out of sudden your whole unit test is
18:59
out of sudden your whole unit test is
18:59
out of sudden your whole unit test is created in it so now accept you can then
19:04
created in it so now accept you can then
19:04
created in it so now accept you can then go back again and read make sure that
19:07
go back again and read make sure that
19:07
go back again and read make sure that all the you know whatever you want to do
19:10
all the you know whatever you want to do
19:10
all the you know whatever you want to do is doing the right thing you know you
19:11
is doing the right thing you know you
19:11
is doing the right thing you know you can change that manually now you can
19:13
can change that manually now you can
19:13
can change that manually now you can test it that's up to you but guess what
19:16
test it that's up to you but guess what
19:16
test it that's up to you but guess what majority of the work is already done for
19:18
majority of the work is already done for
19:18
majority of the work is already done for you um and so how cool is that it's
19:21
you um and so how cool is that it's
19:21
you um and so how cool is that it's making I would say 88% productivity
19:24
making I would say 88% productivity
19:24
making I would say 88% productivity sounds really good because uh more you
19:28
sounds really good because uh more you
19:28
sounds really good because uh more you learn more you learn more you learn
19:30
learn more you learn more you learn
19:30
learn more you learn more you learn about what it can do how you can use
19:32
about what it can do how you can use
19:32
about what it can do how you can use different tricks and also you can train
19:36
different tricks and also you can train
19:36
different tricks and also you can train your co-pilot on your existing project
19:39
your co-pilot on your existing project
19:39
your co-pilot on your existing project so let's say you have a old Legacy
19:41
so let's say you have a old Legacy
19:41
so let's say you have a old Legacy project um but you don't you just join
19:45
project um but you don't you just join
19:45
project um but you don't you just join and it happens all the time when you
19:46
and it happens all the time when you
19:46
and it happens all the time when you join a large company big company
19:48
join a large company big company
19:48
join a large company big company sometimes you join you will get put into
19:51
sometimes you join you will get put into
19:51
sometimes you join you will get put into this big large project where sometimes
19:53
this big large project where sometimes
19:53
this big large project where sometimes takes you like days and weeks just to
19:56
takes you like days and weeks just to
19:56
takes you like days and weeks just to understand the code and reference and
19:58
understand the code and reference and
19:58
understand the code and reference and what dll it is in libraries all that so
20:02
what dll it is in libraries all that so
20:02
what dll it is in libraries all that so out of sudden first of all you can say
20:04
out of sudden first of all you can say
20:04
out of sudden first of all you can say hey can you just explain me this code
20:06
hey can you just explain me this code
20:06
hey can you just explain me this code it's going to go and read larger the
20:08
it's going to go and read larger the
20:08
it's going to go and read larger the code bases it's going to take a little
20:09
code bases it's going to take a little
20:09
code bases it's going to take a little more time but uh eventually once it's
20:13
more time but uh eventually once it's
20:13
more time but uh eventually once it's learned it's going to explain you that
20:14
learned it's going to explain you that
20:14
learned it's going to explain you that code for you it can write commands for
20:16
code for you it can write commands for
20:16
code for you it can write commands for you it's can error handling you can say
20:18
you it's can error handling you can say
20:18
you it's can error handling you can say oh I want to use certain note certain
20:21
oh I want to use certain note certain
20:21
oh I want to use certain note certain kind of formatting in this code it can
20:22
kind of formatting in this code it can
20:22
kind of formatting in this code it can rewrite the whole code for you same
20:25
rewrite the whole code for you same
20:25
rewrite the whole code for you same thing with the performance security you
20:27
thing with the performance security you
20:27
thing with the performance security you can if you search there's also I think
20:29
can if you search there's also I think
20:30
can if you search there's also I think there was already session or not coming
20:31
there was already session or not coming
20:31
there was already session or not coming up we already had this but you can also
20:34
up we already had this but you can also
20:34
up we already had this but you can also say can you check my code for
20:35
say can you check my code for
20:35
say can you check my code for performance can you check my code for
20:37
performance can you check my code for
20:38
performance can you check my code for security if there's a security um
20:40
security if there's a security um
20:40
security if there's a security um something you're doing around security
20:42
something you're doing around security
20:42
something you're doing around security for for example you may be calling an
20:44
for for example you may be calling an
20:44
for for example you may be calling an API or there may be some kind of you
20:47
API or there may be some kind of you
20:47
API or there may be some kind of you know login thing going on for the API
20:50
know login thing going on for the API
20:50
know login thing going on for the API all that so it's a you know potential is
20:55
all that so it's a you know potential is
20:55
all that so it's a you know potential is Limitless here unlimited you just learn
20:57
Limitless here unlimited you just learn
20:57
Limitless here unlimited you just learn more and start using it so with that
21:00
more and start using it so with that
21:00
more and start using it so with that said let me invite I think good thing is
21:03
said let me invite I think good thing is
21:03
said let me invite I think good thing is I saw a a session already on code
21:06
I saw a a session already on code
21:06
I saw a a session already on code refactoring but uh I'm going to cover
21:08
refactoring but uh I'm going to cover
21:08
refactoring but uh I'm going to cover this anyway so let me invite Sean here
21:11
this anyway so let me invite Sean here
21:11
this anyway so let me invite Sean here he's the Rockstar developer he's going
21:13
he's the Rockstar developer he's going
21:13
he's the Rockstar developer he's going to show us um code refactoring feature
21:16
to show us um code refactoring feature
21:16
to show us um code refactoring feature of copilot Sean hey Sean hey can you
21:20
of copilot Sean hey Sean hey can you
21:20
of copilot Sean hey Sean hey can you hear me how's my audio audio is great
21:24
hear me how's my audio audio is great
21:24
hear me how's my audio audio is great you're looking sharp I like your T-shirt
21:26
you're looking sharp I like your T-shirt
21:26
you're looking sharp I like your T-shirt thank you thanks yeah y uh so how do I
21:30
thank you thanks yeah y uh so how do I
21:30
thank you thanks yeah y uh so how do I share my screen here present yep there's
21:33
share my screen here present yep there's
21:33
share my screen here present yep there's a right here present and share
21:35
a right here present and share
21:35
a right here present and share screen
21:37
screen
21:37
screen okay all right should be my
21:45
desktop cool all right all right thank
21:48
desktop cool all right all right thank
21:48
desktop cool all right all right thank you I'm just gonna start
21:50
you I'm just gonna start
21:50
you I'm just gonna start here um yeah so uh for me when it comes
21:53
here um yeah so uh for me when it comes
21:53
here um yeah so uh for me when it comes to AI uh one of my favorite superpowers
21:56
to AI uh one of my favorite superpowers
21:56
to AI uh one of my favorite superpowers uh you get as a developer is uh saving
21:58
uh you get as a developer is uh saving
21:58
uh you get as a developer is uh saving keystrokes I'm someone who's been
22:00
keystrokes I'm someone who's been
22:00
keystrokes I'm someone who's been programming for a long time uh 17 years
22:03
programming for a long time uh 17 years
22:03
programming for a long time uh 17 years of hacking away at a keyboard I've
22:04
of hacking away at a keyboard I've
22:04
of hacking away at a keyboard I've struggled with carpal tunnel syndrome
22:06
struggled with carpal tunnel syndrome
22:06
struggled with carpal tunnel syndrome and other injuries related to software
22:08
and other injuries related to software
22:08
and other injuries related to software programming um I use a fancy ergonomic
22:10
programming um I use a fancy ergonomic
22:10
programming um I use a fancy ergonomic keyboard and do everything I can to
22:12
keyboard and do everything I can to
22:12
keyboard and do everything I can to reduce injury um but AI guided
22:14
reduce injury um but AI guided
22:14
reduce injury um but AI guided autocomplete and generative programming
22:16
autocomplete and generative programming
22:16
autocomplete and generative programming can save an enormous amount of
22:17
can save an enormous amount of
22:17
can save an enormous amount of keystrokes which has been very pleasant
22:20
keystrokes which has been very pleasant
22:20
keystrokes which has been very pleasant for my
22:21
for my
22:21
for my wrists but uh enough about that um I
22:24
wrists but uh enough about that um I
22:24
wrists but uh enough about that um I think there are many practical
22:25
think there are many practical
22:25
think there are many practical applications of AI and programming but
22:26
applications of AI and programming but
22:26
applications of AI and programming but one of my favorite uses is for
22:28
one of my favorite uses is for
22:28
one of my favorite uses is for understand understanding and working on
22:29
understand understanding and working on
22:29
understand understanding and working on Legacy code bases um it's common as
22:32
Legacy code bases um it's common as
22:32
Legacy code bases um it's common as developers that we find ourselves
22:33
developers that we find ourselves
22:33
developers that we find ourselves working on existing codebases with a lot
22:35
working on existing codebases with a lot
22:35
working on existing codebases with a lot of history um and these code bases can
22:37
of history um and these code bases can
22:37
of history um and these code bases can be hard to understand especially if
22:39
be hard to understand especially if
22:39
be hard to understand especially if there hasn't been a consistent uh
22:41
there hasn't been a consistent uh
22:41
there hasn't been a consistent uh standard enforced throughout the years
22:43
standard enforced throughout the years
22:43
standard enforced throughout the years um but AI tools can be pretty helpful
22:45
um but AI tools can be pretty helpful
22:45
um but AI tools can be pretty helpful here um if I have to work on a old part
22:47
here um if I have to work on a old part
22:47
here um if I have to work on a old part of a code base one of my first things
22:49
of a code base one of my first things
22:49
of a code base one of my first things that I do is apply some basic
22:51
that I do is apply some basic
22:51
that I do is apply some basic refactoring uh to the code I'm working
22:53
refactoring uh to the code I'm working
22:53
refactoring uh to the code I'm working in uh and I'm talking basic down toe
22:55
in uh and I'm talking basic down toe
22:55
in uh and I'm talking basic down toe refactoring that doesn't make sweeping
22:56
refactoring that doesn't make sweeping
22:56
refactoring that doesn't make sweeping changes to the code base because of
22:58
changes to the code base because of
22:58
changes to the code base because of course uh if we're going to do that make
23:00
course uh if we're going to do that make
23:00
course uh if we're going to do that make sweeping changes then we're going to uh
23:01
sweeping changes then we're going to uh
23:01
sweeping changes then we're going to uh want to plan that plan that with the
23:03
want to plan that plan that with the
23:03
want to plan that plan that with the team to make sure that we can test it
23:04
team to make sure that we can test it
23:04
team to make sure that we can test it properly um I mean traditionally for uh
23:07
properly um I mean traditionally for uh
23:07
properly um I mean traditionally for uh refactoring we use tools like resharper
23:09
refactoring we use tools like resharper
23:09
refactoring we use tools like resharper or the built-in refactoring and the IDE
23:12
or the built-in refactoring and the IDE
23:12
or the built-in refactoring and the IDE um but I find that AI tools especially
23:14
um but I find that AI tools especially
23:14
um but I find that AI tools especially co-pilot being integrated directly to
23:15
co-pilot being integrated directly to
23:15
co-pilot being integrated directly to the IDE uh works pretty well as a
23:17
the IDE uh works pretty well as a
23:17
the IDE uh works pretty well as a refactoring tool um turning a sentence
23:20
refactoring tool um turning a sentence
23:20
refactoring tool um turning a sentence of natural language into practical
23:22
of natural language into practical
23:22
of natural language into practical refactoring steps it's pretty powerful
23:25
refactoring steps it's pretty powerful
23:25
refactoring steps it's pretty powerful um and and of course there's a big
23:27
um and and of course there's a big
23:27
um and and of course there's a big difference of how AI handles refactoring
23:29
difference of how AI handles refactoring
23:29
difference of how AI handles refactoring versus uh traditional refactoring tools
23:32
versus uh traditional refactoring tools
23:32
versus uh traditional refactoring tools uh so and thus it can get code wrong um
23:34
uh so and thus it can get code wrong um
23:34
uh so and thus it can get code wrong um since we know it can get code wrong we
23:36
since we know it can get code wrong we
23:36
since we know it can get code wrong we can review those changes it tries to
23:37
can review those changes it tries to
23:37
can review those changes it tries to make and uh in the process of reviewing
23:40
make and uh in the process of reviewing
23:40
make and uh in the process of reviewing those changes we actually do the work of
23:42
those changes we actually do the work of
23:42
those changes we actually do the work of understanding the code which is crucial
23:43
understanding the code which is crucial
23:43
understanding the code which is crucial in a legacy code base um so you're
23:46
in a legacy code base um so you're
23:46
in a legacy code base um so you're understanding the code while you're
23:47
understanding the code while you're
23:47
understanding the code while you're improving it slightly which is a nice
23:49
improving it slightly which is a nice
23:49
improving it slightly which is a nice little combination of
23:51
little combination of
23:51
little combination of things see if I'm sharing the correct
23:54
things see if I'm sharing the correct
23:54
things see if I'm sharing the correct code here all right so what we're
23:55
code here all right so what we're
23:56
code here all right so what we're looking at here is a uh snippet of code
23:58
looking at here is a uh snippet of code
23:58
looking at here is a uh snippet of code um it's some leg Legacy code um from C
24:01
um it's some leg Legacy code um from C
24:01
um it's some leg Legacy code um from C Corner um and you know I I come into
24:04
Corner um and you know I I come into
24:04
Corner um and you know I I come into this code and I need to work on this um
24:06
this code and I need to work on this um
24:06
this code and I need to work on this um this isn't bad this isn't too bad um it
24:09
this isn't bad this isn't too bad um it
24:09
this isn't bad this isn't too bad um it takes a couple of minutes to maybe parse
24:11
takes a couple of minutes to maybe parse
24:11
takes a couple of minutes to maybe parse through these if statements and uh I
24:13
through these if statements and uh I
24:13
through these if statements and uh I noticed that there's some repeated code
24:15
noticed that there's some repeated code
24:15
noticed that there's some repeated code here like repeated logic um so I think
24:18
here like repeated logic um so I think
24:18
here like repeated logic um so I think we can just make some improvements to
24:20
we can just make some improvements to
24:20
we can just make some improvements to this to um make it a little bit easier
24:23
this to um make it a little bit easier
24:23
this to um make it a little bit easier to work on so uh as mahes demonstrated
24:26
to work on so uh as mahes demonstrated
24:26
to work on so uh as mahes demonstrated um we can use this uh inline um co-pilot
24:30
um we can use this uh inline um co-pilot
24:30
um we can use this uh inline um co-pilot so if I select some code and bring as
24:33
so if I select some code and bring as
24:33
so if I select some code and bring as co-pilot you can see that um when it
24:36
co-pilot you can see that um when it
24:36
co-pilot you can see that um when it comes up here that there's some uh this
24:38
comes up here that there's some uh this
24:38
comes up here that there's some uh this pink line on the left side that
24:41
pink line on the left side that
24:41
pink line on the left side that surrounds the code this is actually
24:43
surrounds the code this is actually
24:43
surrounds the code this is actually showing what code is uh in context to
24:48
showing what code is uh in context to
24:48
showing what code is uh in context to your prompt so when you're uh asking
24:50
your prompt so when you're uh asking
24:50
your prompt so when you're uh asking something in the prompt here this is in
24:53
something in the prompt here this is in
24:53
something in the prompt here this is in the context of this code here so uh
24:56
the context of this code here so uh
24:56
the context of this code here so uh first thing I can just say uh maybe
24:59
first thing I can just say uh maybe
24:59
first thing I can just say uh maybe change this code to use bar instead
25:03
change this code to use bar instead
25:03
change this code to use bar instead of explicit
25:07
of explicit
25:07
of explicit types uh because I mean nowadays we want
25:09
types uh because I mean nowadays we want
25:09
types uh because I mean nowadays we want to do that so that's just like you know
25:11
to do that so that's just like you know
25:11
to do that so that's just like you know something
25:14
basic all right then we can see the diff
25:16
basic all right then we can see the diff
25:16
basic all right then we can see the diff here uh we're just going to compare real
25:18
here uh we're just going to compare real
25:18
here uh we're just going to compare real quick we're using VAR VAR VAR that's
25:20
quick we're using VAR VAR VAR that's
25:20
quick we're using VAR VAR VAR that's good that's fine I'll accept that um
25:23
good that's fine I'll accept that um
25:24
good that's fine I'll accept that um this is an error it's uh an INT so this
25:27
this is an error it's uh an INT so this
25:27
this is an error it's uh an INT so this one specifically we we have to use the
25:28
one specifically we we have to use the
25:28
one specifically we we have to use the type because we're using that as an
25:30
type because we're using that as an
25:30
type because we're using that as an outar here um
25:34
outar here um
25:34
outar here um so
25:36
so
25:36
so uh
25:38
uh
25:38
uh yeah all right so that's
25:41
yeah all right so that's
25:41
yeah all right so that's fine um you know the variable names they
25:44
fine um you know the variable names they
25:44
fine um you know the variable names they don't look great so um I'm just going to
25:46
don't look great so um I'm just going to
25:46
don't look great so um I'm just going to select as
25:50
co-pilot and we have capital letters
25:52
co-pilot and we have capital letters
25:52
co-pilot and we have capital letters here in the local variables which isn't
25:54
here in the local variables which isn't
25:54
here in the local variables which isn't you know a best
25:56
you know a best
25:56
you know a best practice bear with me I have a lot of
25:58
practice bear with me I have a lot of
25:58
practice bear with me I have a lot of stuff running on my PC here so it might
26:00
stuff running on my PC here so it might
26:00
stuff running on my PC here so it might be a little bit
26:02
be a little bit
26:02
be a little bit uh slow here and there so I'm just going
26:04
uh slow here and there so I'm just going
26:04
uh slow here and there so I'm just going to say uh you know can we simplify this
26:09
to say uh you know can we simplify this
26:09
to say uh you know can we simplify this further
26:11
further
26:11
further um oh you know let's
26:14
um oh you know let's
26:14
um oh you know let's uh let's use the
26:18
uh now we can just try basic natural
26:21
uh now we can just try basic natural
26:21
uh now we can just try basic natural language prompts like this uh doesn't
26:22
language prompts like this uh doesn't
26:22
language prompts like this uh doesn't always have to be very technical um the
26:24
always have to be very technical um the
26:24
always have to be very technical um the prompts you know um it can understand
26:25
prompts you know um it can understand
26:25
prompts you know um it can understand English pretty well so yeah uh just
26:27
English pretty well so yeah uh just
26:27
English pretty well so yeah uh just based on it's huge amount of code that
26:30
based on it's huge amount of code that
26:30
based on it's huge amount of code that it has online to reference it's just GNA
26:33
it has online to reference it's just GNA
26:33
it has online to reference it's just GNA you know fix this for
26:35
you know fix this for
26:35
you know fix this for us and this is you know maybe fine maybe
26:37
us and this is you know maybe fine maybe
26:37
us and this is you know maybe fine maybe this is part of the uh the style
26:39
this is part of the uh the style
26:39
this is part of the uh the style guideline for the code base that you
26:40
guideline for the code base that you
26:40
guideline for the code base that you know this is a um you know an out
26:42
know this is a um you know an out
26:42
know this is a um you know an out variable so maybe it just has a little
26:44
variable so maybe it just has a little
26:44
variable so maybe it just has a little name there to you know make that easy to
26:46
name there to you know make that easy to
26:46
name there to you know make that easy to know um but yeah I like this it changed
26:48
know um but yeah I like this it changed
26:48
know um but yeah I like this it changed the variable
26:50
the variable
26:50
the variable names and and we don't have to just keep
26:52
names and and we don't have to just keep
26:52
names and and we don't have to just keep doing this individual steps but I'm
26:53
doing this individual steps but I'm
26:53
doing this individual steps but I'm doing this to demonstrate uh step by
26:55
doing this to demonstrate uh step by
26:55
doing this to demonstrate uh step by step the these uh refactoring steps that
26:57
step the these uh refactoring steps that
26:57
step the these uh refactoring steps that we can make make um so I can say like
27:00
we can make make um so I can say like
27:00
we can make make um so I can say like I'd like to reduce the number of if else
27:05
I'd like to reduce the number of if else
27:05
I'd like to reduce the number of if else statements and I'll just say branches
27:08
statements and I'll just say branches
27:08
statements and I'll just say branches branches better um I don't like how the
27:13
branches better um I don't like how the
27:13
branches better um I don't like how the response.
27:14
response.
27:14
response. redirect to page not found is
27:20
repeated um we'll see what it what it
27:22
repeated um we'll see what it what it
27:22
repeated um we'll see what it what it does
27:25
here all right now for something like
27:27
here all right now for something like
27:27
here all right now for something like this uh we defitely have to do
27:30
this uh we defitely have to do
27:30
this uh we defitely have to do some do some checking here so um when we
27:34
some do some checking here so um when we
27:34
some do some checking here so um when we make a change like this um this could
27:37
make a change like this um this could
27:37
make a change like this um this could potentially break existing logic um I
27:40
potentially break existing logic um I
27:40
potentially break existing logic um I mean I don't know what it's doing here
27:42
mean I don't know what it's doing here
27:42
mean I don't know what it's doing here this is not um what I wanted here so
27:45
this is not um what I wanted here so
27:45
this is not um what I wanted here so let's try this
27:48
again yeah part of learning to use
27:50
again yeah part of learning to use
27:50
again yeah part of learning to use co-pilot is learning to get the prompts
27:51
co-pilot is learning to get the prompts
27:51
co-pilot is learning to get the prompts correctly so let me say uh can we
27:54
correctly so let me say uh can we
27:54
correctly so let me say uh can we simplify
27:56
simplify
27:56
simplify this um
28:00
I'll uh I'll cheat here I actually have
28:01
I'll uh I'll cheat here I actually have
28:01
I'll uh I'll cheat here I actually have this prompt already copied so I'm going
28:05
this prompt already copied so I'm going
28:05
this prompt already copied so I'm going to see and and yeah see you have to be
28:09
to see and and yeah see you have to be
28:09
to see and and yeah see you have to be careful here that the selected context
28:11
careful here that the selected context
28:11
careful here that the selected context that we're using is what I want to
28:13
that we're using is what I want to
28:13
that we're using is what I want to operate on I'm not operating on any code
28:16
operate on I'm not operating on any code
28:16
operate on I'm not operating on any code besides this section here because this
28:18
besides this section here because this
28:18
besides this section here because this is where I'm working in uh so I'm going
28:22
is where I'm working in uh so I'm going
28:22
is where I'm working in uh so I'm going to take this
28:26
prompt all right so this looks a little
28:28
prompt all right so this looks a little
28:28
prompt all right so this looks a little bit more reasonable it's it's applying
28:29
bit more reasonable it's it's applying
28:29
bit more reasonable it's it's applying early returns which is u in my opinion a
28:32
early returns which is u in my opinion a
28:32
early returns which is u in my opinion a good practice for reducing the amount of
28:34
good practice for reducing the amount of
28:34
good practice for reducing the amount of branching that we have in the code base
28:35
branching that we have in the code base
28:35
branching that we have in the code base so we have some early returns here
28:38
so we have some early returns here
28:38
so we have some early returns here um and yeah at the very end it's going
28:41
um and yeah at the very end it's going
28:41
um and yeah at the very end it's going to do this page not found redirect so
28:43
to do this page not found redirect so
28:43
to do this page not found redirect so that's that's kind of what I was looking
28:46
that's that's kind of what I was looking
28:46
that's that's kind of what I was looking for
28:48
for
28:48
for um yeah it looks like
28:52
it added some code there at the end all
28:56
it added some code there at the end all
28:56
it added some code there at the end all right so this is a little little bit
28:58
right so this is a little little bit
28:58
right so this is a little little bit cleaner we don't have as many uh
29:00
cleaner we don't have as many uh
29:00
cleaner we don't have as many uh branches to look for uh we can kind of
29:02
branches to look for uh we can kind of
29:02
branches to look for uh we can kind of just like look at this top to bottom and
29:04
just like look at this top to bottom and
29:04
just like look at this top to bottom and decide uh you know what's happening and
29:06
decide uh you know what's happening and
29:06
decide uh you know what's happening and then the by default it's just going to
29:08
then the by default it's just going to
29:08
then the by default it's just going to redirect to a page not found so if it
29:10
redirect to a page not found so if it
29:10
redirect to a page not found so if it gets to that point then it hasn't found
29:12
gets to that point then it hasn't found
29:12
gets to that point then it hasn't found any um information
29:15
any um information
29:15
any um information um I mean one thing that I can do for
29:18
um I mean one thing that I can do for
29:18
um I mean one thing that I can do for for this you know just to make this even
29:21
for this you know just to make this even
29:21
for this you know just to make this even better is to just break it out to a
29:23
better is to just break it out to a
29:23
better is to just break it out to a helper method so we're not making major
29:24
helper method so we're not making major
29:24
helper method so we're not making major sweeping refactoring changes here so
29:26
sweeping refactoring changes here so
29:26
sweeping refactoring changes here so like breaking some code out to a help a
29:28
like breaking some code out to a help a
29:28
like breaking some code out to a help a helper method can be a good way to just
29:29
helper method can be a good way to just
29:29
helper method can be a good way to just make some code a little bit cleaner
29:31
make some code a little bit cleaner
29:31
make some code a little bit cleaner without having to uh think about it too
29:33
without having to uh think about it too
29:33
without having to uh think about it too much so I'll say create a helper method
29:36
much so I'll say create a helper method
29:37
much so I'll say create a helper method for this
29:38
for this
29:38
for this code place the early
29:41
code place the early
29:41
code place the early returns with return
29:44
returns with return
29:45
returns with return true this method should return false by
29:49
true this method should return false by
29:49
true this method should return false by default and I'm saying it like this
29:51
default and I'm saying it like this
29:51
default and I'm saying it like this because I know that I want to do the
29:53
because I know that I want to do the
29:53
because I know that I want to do the check for this helper method before I um
29:58
check for this helper method before I um
29:58
check for this helper method before I um before I redirect so um it's actually
30:01
before I redirect so um it's actually
30:01
before I redirect so um it's actually just inserting the code right here in
30:03
just inserting the code right here in
30:03
just inserting the code right here in place uh but that's no problem we can
30:06
place uh but that's no problem we can
30:06
place uh but that's no problem we can just pop it out here into a separate
30:09
just pop it out here into a separate
30:09
just pop it out here into a separate method and then what we're going to do
30:10
method and then what we're going to do
30:10
method and then what we're going to do is we're going to say if process query
30:14
is we're going to say if process query
30:14
is we're going to say if process query string you know let's do if not process
30:17
string you know let's do if not process
30:17
string you know let's do if not process query string that
30:20
would all right and so now that we've
30:22
would all right and so now that we've
30:22
would all right and so now that we've broken it out into a separate helper
30:24
broken it out into a separate helper
30:24
broken it out into a separate helper method uh now who uh when a developer
30:26
method uh now who uh when a developer
30:26
method uh now who uh when a developer comes through here to this method to
30:27
comes through here to this method to
30:28
comes through here to this method to work on it um they can see this is much
30:29
work on it um they can see this is much
30:29
work on it um they can see this is much easier saying okay we're going to
30:31
easier saying okay we're going to
30:31
easier saying okay we're going to redirect to a page notot found whenever
30:32
redirect to a page notot found whenever
30:32
redirect to a page notot found whenever this fails what is this all right so now
30:34
this fails what is this all right so now
30:35
this fails what is this all right so now we can look at it and if we care we can
30:36
we can look at it and if we care we can
30:36
we can look at it and if we care we can dig deep into the logic um so yeah this
30:40
dig deep into the logic um so yeah this
30:40
dig deep into the logic um so yeah this has been just a you know a couple of
30:42
has been just a you know a couple of
30:42
has been just a you know a couple of steps practical steps down to Earth this
30:43
steps practical steps down to Earth this
30:44
steps practical steps down to Earth this isn't anything crazy or fancy it's just
30:47
isn't anything crazy or fancy it's just
30:47
isn't anything crazy or fancy it's just something you might have already done
30:48
something you might have already done
30:48
something you might have already done but without me having to do all the in
30:51
but without me having to do all the in
30:51
but without me having to do all the in place editing um it still takes
30:53
place editing um it still takes
30:53
place editing um it still takes keystrokes to type a prompt but uh with
30:55
keystrokes to type a prompt but uh with
30:55
keystrokes to type a prompt but uh with practice you can get the prompts reduced
30:56
practice you can get the prompts reduced
30:56
practice you can get the prompts reduced to something that's efficient and uh
30:58
to something that's efficient and uh
30:58
to something that's efficient and uh doesn't hurt your hand as much as just
31:00
doesn't hurt your hand as much as just
31:00
doesn't hurt your hand as much as just typing huge amounts of
31:02
typing huge amounts of
31:02
typing huge amounts of cod um yep
31:05
cod um yep
31:05
cod um yep and so hopefully that's uh that's
31:07
and so hopefully that's uh that's
31:07
and so hopefully that's uh that's helpful and if uh there's any questions
31:09
helpful and if uh there's any questions
31:09
helpful and if uh there's any questions about using co-pilot in visual studio um
31:12
about using co-pilot in visual studio um
31:12
about using co-pilot in visual studio um you can ask a question in the
31:15
you can ask a question in the
31:15
you can ask a question in the comments hopefully
31:22
I okay that was great Sean thank you
31:25
I okay that was great Sean thank you
31:25
I okay that was great Sean thank you appreciate it that was good um
31:28
appreciate it that was good um
31:28
appreciate it that was good um yeah you can also you can also do a high
31:32
yeah you can also you can also do a high
31:32
yeah you can also you can also do a high level commands prom saying hey can you
31:35
level commands prom saying hey can you
31:35
level commands prom saying hey can you Rec suggest me refactoring this code and
31:39
Rec suggest me refactoring this code and
31:39
Rec suggest me refactoring this code and maybe it will cover a lot of those
31:40
maybe it will cover a lot of those
31:40
maybe it will cover a lot of those things you are really giving it very
31:43
things you are really giving it very
31:43
things you are really giving it very basic instructions like I would do to my
31:45
basic instructions like I would do to my
31:45
basic instructions like I would do to my daughter sit here eat this yeah yeah
31:48
daughter sit here eat this yeah yeah
31:48
daughter sit here eat this yeah yeah yeah I'm giving it very specific
31:50
yeah I'm giving it very specific
31:50
yeah I'm giving it very specific instructions yeah so you can at least
31:52
instructions yeah so you can at least
31:52
instructions yeah so you can at least for sorry go ahead yeah so copilot can
31:56
for sorry go ahead yeah so copilot can
31:56
for sorry go ahead yeah so copilot can be used however the way you like want to
31:58
be used however the way you like want to
31:58
be used however the way you like want to tell it to do a certain specific things
32:00
tell it to do a certain specific things
32:01
tell it to do a certain specific things the way you like that's fine you or you
32:03
the way you like that's fine you or you
32:03
the way you like that's fine you or you say can you do it yourself and show me
32:05
say can you do it yourself and show me
32:05
say can you do it yourself and show me what you can do depends on everybody's
32:07
what you can do depends on everybody's
32:07
what you can do depends on everybody's choice right yeah yes for sure if I if I
32:10
choice right yeah yes for sure if I if I
32:10
choice right yeah yes for sure if I if I didn't know what I wanted I would ask it
32:12
didn't know what I wanted I would ask it
32:12
didn't know what I wanted I would ask it higher level questions and have it
32:14
higher level questions and have it
32:14
higher level questions and have it decide for me uh but in this case when I
32:16
decide for me uh but in this case when I
32:16
decide for me uh but in this case when I I mean this is something I I do all the
32:18
I mean this is something I I do all the
32:18
I mean this is something I I do all the time so maybe I'm experienced with this
32:19
time so maybe I'm experienced with this
32:19
time so maybe I'm experienced with this type of process but I I know what I want
32:21
type of process but I I know what I want
32:21
type of process but I I know what I want from it and I'm going to force it to do
32:23
from it and I'm going to force it to do
32:23
from it and I'm going to force it to do what I want in this case right that's
32:26
what I want in this case right that's
32:26
what I want in this case right that's good a lot all right thank you so much
32:28
good a lot all right thank you so much
32:28
good a lot all right thank you so much Sean I appreciate it yeah not a problem
32:30
Sean I appreciate it yeah not a problem
32:30
Sean I appreciate it yeah not a problem it's great to be
32:31
it's great to be
32:31
it's great to be here all right so you just saw multiple
32:34
here all right so you just saw multiple
32:34
here all right so you just saw multiple use cases of let me go back to my screen
32:37
use cases of let me go back to my screen
32:37
use cases of let me go back to my screen again my slides so we just saw how to
32:40
again my slides so we just saw how to
32:40
again my slides so we just saw how to explain your code if you have an
32:42
explain your code if you have an
32:42
explain your code if you have an existing code you can use coil to
32:44
existing code you can use coil to
32:44
existing code you can use coil to explain it also maybe write a blog or
32:47
explain it also maybe write a blog or
32:47
explain it also maybe write a blog or article or even create a documentation
32:49
article or even create a documentation
32:50
article or even create a documentation for your team in your company right
32:52
for your team in your company right
32:52
for your team in your company right documentation is always a timec
32:54
documentation is always a timec
32:54
documentation is always a timec consuming process you can always ask it
32:56
consuming process you can always ask it
32:56
consuming process you can always ask it to write commands with your code error
32:59
to write commands with your code error
32:59
to write commands with your code error handling exception handling you can
33:01
handling exception handling you can
33:01
handling exception handling you can update code with the latest features in
33:04
update code with the latest features in
33:04
update code with the latest features in unit testing and code refecting and
33:05
unit testing and code refecting and
33:06
unit testing and code refecting and performance this always takes time and I
33:08
performance this always takes time and I
33:08
performance this always takes time and I know how many times I have asked team to
33:11
know how many times I have asked team to
33:11
know how many times I have asked team to hey create unit test case make sure they
33:13
hey create unit test case make sure they
33:13
hey create unit test case make sure they run before the pro project is being you
33:15
run before the pro project is being you
33:15
run before the pro project is being you know even deployed and test all that so
33:18
know even deployed and test all that so
33:18
know even deployed and test all that so you can do all that using co-pilot and
33:21
you can do all that using co-pilot and
33:21
you can do all that using co-pilot and more this was just about code
33:24
more this was just about code
33:24
more this was just about code quality um so that covers my keynote
33:28
quality um so that covers my keynote
33:28
quality um so that covers my keynote today um we already covered that uh so
33:31
today um we already covered that uh so
33:31
today um we already covered that uh so what are some of the challenges so
33:34
what are some of the challenges so
33:34
what are some of the challenges so copilot is you know it's still early
33:37
copilot is you know it's still early
33:37
copilot is you know it's still early stage it's learning it's being developed
33:39
stage it's learning it's being developed
33:39
stage it's learning it's being developed it's not perfect so there are certain
33:42
it's not perfect so there are certain
33:42
it's not perfect so there are certain things you need to always keep in mind
33:44
things you need to always keep in mind
33:44
things you need to always keep in mind that number one copilot is it's a trend
33:46
that number one copilot is it's a trend
33:46
that number one copilot is it's a trend on public data so all generative AI
33:50
on public data so all generative AI
33:50
on public data so all generative AI works on the data and they use these big
33:52
works on the data and they use these big
33:52
works on the data and they use these big llms right so copile is a train on you
33:55
llms right so copile is a train on you
33:55
llms right so copile is a train on you know GitHub code and some Microsoft code
33:58
know GitHub code and some Microsoft code
33:58
know GitHub code and some Microsoft code and some websites code so the code it's
34:01
and some websites code so the code it's
34:01
and some websites code so the code it's learning from if the code is bad means
34:05
learning from if the code is bad means
34:05
learning from if the code is bad means the data is old or Obsolete and that's
34:08
the data is old or Obsolete and that's
34:08
the data is old or Obsolete and that's the only data it's learning from that
34:10
the only data it's learning from that
34:10
the only data it's learning from that means the code it's going to give you is
34:13
means the code it's going to give you is
34:13
means the code it's going to give you is also may be bad so you have to always
34:15
also may be bad so you have to always
34:15
also may be bad so you have to always make sure that the code is accurate and
34:18
make sure that the code is accurate and
34:18
make sure that the code is accurate and also it's the way you like it's doing
34:21
also it's the way you like it's doing
34:21
also it's the way you like it's doing the some it's doing exactly what you
34:22
the some it's doing exactly what you
34:23
the some it's doing exactly what you want it to do you cannot just
34:24
want it to do you cannot just
34:24
want it to do you cannot just automatically assume that that's your
34:26
automatically assume that that's your
34:26
automatically assume that that's your job so I would say majority of code it
34:29
job so I would say majority of code it
34:29
job so I would say majority of code it can write for you but you still have to
34:31
can write for you but you still have to
34:31
can write for you but you still have to do the the final review and rewrite and
34:33
do the the final review and rewrite and
34:33
do the the final review and rewrite and fix things however you like it um you
34:37
fix things however you like it um you
34:37
fix things however you like it um you can also as I said if cop language just
34:42
can also as I said if cop language just
34:42
can also as I said if cop language just came out let's say C 15 just come out
34:45
came out let's say C 15 just come out
34:45
came out let's say C 15 just come out then last week and you are building a
34:47
then last week and you are building a
34:47
then last week and you are building a new project on C 15 there's no way
34:50
new project on C 15 there's no way
34:50
new project on C 15 there's no way co-pilot will have those features right
34:52
co-pilot will have those features right
34:52
co-pilot will have those features right away it might take a time so that means
34:55
away it might take a time so that means
34:55
away it might take a time so that means any code you will see from co-pilot is
34:57
any code you will see from co-pilot is
34:57
any code you will see from co-pilot is not in code for your project so you have
35:00
not in code for your project so you have
35:00
not in code for your project so you have to be careful with that side and plus if
35:03
to be careful with that side and plus if
35:03
to be careful with that side and plus if you're working on an older project let's
35:05
you're working on an older project let's
35:05
you're working on an older project let's say you have an existing project that
35:07
say you have an existing project that
35:07
say you have an existing project that was written in Net 5 and C 10 I'm just
35:10
was written in Net 5 and C 10 I'm just
35:10
was written in Net 5 and C 10 I'm just giving an
35:11
giving an
35:11
giving an example you have to make sure that the
35:14
example you have to make sure that the
35:14
example you have to make sure that the code generated is also Net 5 and cop 10
35:17
code generated is also Net 5 and cop 10
35:17
code generated is also Net 5 and cop 10 because if you generate code in net 8
35:20
because if you generate code in net 8
35:21
because if you generate code in net 8 there may be something me break
35:22
there may be something me break
35:22
there may be something me break something in your existing code so
35:24
something in your existing code so
35:24
something in your existing code so that's really your decision um if you
35:26
that's really your decision um if you
35:26
that's really your decision um if you are leading a team or you are an
35:28
are leading a team or you are an
35:28
are leading a team or you are an architect of project that's where you
35:30
architect of project that's where you
35:30
architect of project that's where you have to set up these guidelines that
35:33
have to set up these guidelines that
35:33
have to set up these guidelines that what Specific Instructions you want to
35:35
what Specific Instructions you want to
35:35
what Specific Instructions you want to give it to co-pilot so the code is
35:37
give it to co-pilot so the code is
35:37
give it to co-pilot so the code is generating is matching your existing
35:41
generating is matching your existing
35:41
generating is matching your existing project um you can definitely I highly
35:44
project um you can definitely I highly
35:45
project um you can definitely I highly recommend so how many developers I'll
35:46
recommend so how many developers I'll
35:46
recommend so how many developers I'll ask this to everybody here how many
35:48
ask this to everybody here how many
35:48
ask this to everybody here how many developers really focus on code security
35:52
developers really focus on code security
35:52
developers really focus on code security and performance when they write their
35:53
and performance when they write their
35:53
and performance when they write their code I bet not too many some some
35:57
code I bet not too many some some
35:57
code I bet not too many some some Architects and some teams have already
36:00
Architects and some teams have already
36:00
Architects and some teams have already security uh and performance guidelines
36:03
security uh and performance guidelines
36:03
security uh and performance guidelines set up but not everybody especially if
36:07
set up but not everybody especially if
36:07
set up but not everybody especially if team is a younger Team new team they're
36:10
team is a younger Team new team they're
36:10
team is a younger Team new team they're working on a new project and they are
36:12
working on a new project and they are
36:12
working on a new project and they are Behind These deadlines they have to uh
36:14
Behind These deadlines they have to uh
36:14
Behind These deadlines they have to uh release certain features so what happens
36:17
release certain features so what happens
36:17
release certain features so what happens they don't have enough time to just
36:20
they don't have enough time to just
36:20
they don't have enough time to just think about security about performance
36:22
think about security about performance
36:22
think about security about performance about best practices so that's where
36:25
about best practices so that's where
36:25
about best practices so that's where co-pilot can also help you that
36:28
co-pilot can also help you that
36:28
co-pilot can also help you that um other concern is that so thees when
36:32
um other concern is that so thees when
36:32
um other concern is that so thees when you say ask go pilot to write the secure
36:35
you say ask go pilot to write the secure
36:35
you say ask go pilot to write the secure code it may not be secure because
36:37
code it may not be secure because
36:37
code it may not be secure because remember it's learning from public data
36:39
remember it's learning from public data
36:39
remember it's learning from public data so if somebody wrote a code publicly
36:42
so if somebody wrote a code publicly
36:42
so if somebody wrote a code publicly it's available and co-al in that code it
36:44
it's available and co-al in that code it
36:44
it's available and co-al in that code it has a bug or flaw now that will come to
36:47
has a bug or flaw now that will come to
36:47
has a bug or flaw now that will come to your code as well so that's where you
36:49
your code as well so that's where you
36:49
your code as well so that's where you have to be make sure you have to make
36:50
have to be make sure you have to make
36:50
have to be make sure you have to make sure that um the code you're using
36:53
sure that um the code you're using
36:53
sure that um the code you're using especially for security is is really
36:56
especially for security is is really
36:56
especially for security is is really tested and I mean security side I would
36:59
tested and I mean security side I would
36:59
tested and I mean security side I would probably stay away from copilot I would
37:01
probably stay away from copilot I would
37:01
probably stay away from copilot I would not use copilot to write some kind of
37:04
not use copilot to write some kind of
37:04
not use copilot to write some kind of security for me because that could
37:05
security for me because that could
37:05
security for me because that could create a big issue and and some kind of
37:08
create a big issue and and some kind of
37:08
create a big issue and and some kind of leak in my code in future IP is another
37:12
leak in my code in future IP is another
37:12
leak in my code in future IP is another problem intellectual property right
37:14
problem intellectual property right
37:14
problem intellectual property right because copilot is is a train on public
37:17
because copilot is is a train on public
37:17
because copilot is is a train on public data it may be using some of the data
37:20
data it may be using some of the data
37:20
data it may be using some of the data that's you know you're not supposed to
37:21
that's you know you're not supposed to
37:21
that's you know you're not supposed to use because the author of that code has
37:24
use because the author of that code has
37:24
use because the author of that code has not given permissions to use the code
37:27
not given permissions to use the code
37:27
not given permissions to use the code all also if you're building this for a
37:28
all also if you're building this for a
37:28
all also if you're building this for a company or yourself as a product and
37:31
company or yourself as a product and
37:31
company or yourself as a product and you're selling the product that could
37:33
you're selling the product that could
37:33
you're selling the product that could also create some problems and challenges
37:35
also create some problems and challenges
37:35
also create some problems and challenges in coming time so those are some of the
37:37
in coming time so those are some of the
37:37
in coming time so those are some of the major things you have to keep in mind
37:39
major things you have to keep in mind
37:39
major things you have to keep in mind when you're using
37:41
when you're using
37:41
when you're using co-pilot
37:43
co-pilot
37:43
co-pilot um with that said uh let's take some
37:45
um with that said uh let's take some
37:45
um with that said uh let's take some questions um again uh we are launching a
37:48
questions um again uh we are launching a
37:48
questions um again uh we are launching a co-pilot series on cop. TV uh it's
37:52
co-pilot series on cop. TV uh it's
37:52
co-pilot series on cop. TV uh it's coming so it's probably going to have 10
37:54
coming so it's probably going to have 10
37:54
coming so it's probably going to have 10 or 12 episodes where we are going to
37:56
or 12 episodes where we are going to
37:56
or 12 episodes where we are going to break down on each
37:58
break down on each
37:58
break down on each feature uh in one episode with very
38:01
feature uh in one episode with very
38:01
feature uh in one episode with very detailed so if you don't know what cop
38:04
detailed so if you don't know what cop
38:04
detailed so if you don't know what cop TV is check it out c sharp.tv um it's
38:07
TV is check it out c sharp.tv um it's
38:07
TV is check it out c sharp.tv um it's our C Corners live streaming uh where
38:11
our C Corners live streaming uh where
38:11
our C Corners live streaming uh where experts come and um show we have
38:14
experts come and um show we have
38:14
experts come and um show we have different shows hosted by different
38:16
different shows hosted by different
38:16
different shows hosted by different experts uh that's where we also doing
38:19
experts uh that's where we also doing
38:19
experts uh that's where we also doing live streaming this conference as well
38:21
live streaming this conference as well
38:21
live streaming this conference as well so check it out make sure you tell
38:23
so check it out make sure you tell
38:23
so check it out make sure you tell everybody about your friends uh what
38:25
everybody about your friends uh what
38:25
everybody about your friends uh what we're doing about these conferences I
38:27
we're doing about these conferences I
38:27
we're doing about these conferences I think Simon already mentioned there's
38:29
think Simon already mentioned there's
38:29
think Simon already mentioned there's more conference coming up we are have a
38:31
more conference coming up we are have a
38:31
more conference coming up we are have a react conference coming up we have a
38:33
react conference coming up we have a
38:33
react conference coming up we have a leadership conference coming up we have
38:35
leadership conference coming up we have
38:35
leadership conference coming up we have architecture software architecture which
38:37
architecture software architecture which
38:37
architecture software architecture which is my favorite by the way software
38:39
is my favorite by the way software
38:39
is my favorite by the way software architecture conference coming up uh and
38:42
architecture conference coming up uh and
38:42
architecture conference coming up uh and there's a lot more so with that said
38:45
there's a lot more so with that said
38:45
there's a lot more so with that said Simon I think I'm done here and thank
38:47
Simon I think I'm done here and thank
38:47
Simon I think I'm done here and thank you everybody thank you so much for
38:49
you everybody thank you so much for
38:49
you everybody thank you so much for everybody uh all the speakers they're
38:51
everybody uh all the speakers they're
38:51
everybody uh all the speakers they're doing amazing job um I watch some
38:54
doing amazing job um I watch some
38:54
doing amazing job um I watch some sessions they're great sessions I didn't
38:56
sessions they're great sessions I didn't
38:56
sessions they're great sessions I didn't know certain things
38:57
know certain things
38:58
know certain things um so with that thank you everybody and
39:00
um so with that thank you everybody and
39:00
um so with that thank you everybody and let's take some questions
39:06
[Music]


