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 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 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: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: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 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 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 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 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 you document this code with detail
9:57
you document this code with detail
9:57
you document this code with detail explanation
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: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: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 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 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: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 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 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: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 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 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 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: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 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 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 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: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 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 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 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 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. 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
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 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 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 code place the early
29:41
code place the early
29:41
code place the early 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 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 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 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 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 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: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