Supercharging Developer Productivity with GitHub Copilot | DEM504

Microsoft Developer · Intermediate ·🛠️ AI Tools & Apps ·1y ago

Key Takeaways

This video demonstrates how to supercharge developer productivity with GitHub Copilot, an AI-powered tool that assists with code completion, refactoring, testing, and documentation. It showcases the tool's capabilities through real-world demos, covering topics such as code completion, test generation, and pull request management.

Full Transcript

I'm very excited to have a chance to introduce April Yoho. Uh she's going to give us a wonderful talk about supercharging developer productivity with GitHub Copilot. Give it up for her. Hey, round of applause. Good morning. All right, we're going to get started. So, we have 15 minutes to make some code changes. How many of you get requests to make code changes and you get more than 15 minutes in your day job? Right. So, we're going to talk about how we can refactor some legacy code. We want to talk about the accuracy with Copilot. It's one of our biggest things when we speak to customers when they're adopting C-pilot. I might be a senior engineer, but I can do it better, right, than C-pilot. So, how do we amend it? How do we get more structure to it? And then how do we do some testing and architecture diagramming with Copilot? So, the first thing I want to talk about life as a developer. When I started writing code a long time ago before some of you were born, um I thought I was going to get to write code for 8 to 12 hours a day. I don't. As a developer, I have very limited time. I'm waiting on access to resources. I'm waiting on others. I'm trying to get access to the codebase. All sorts of things happen. So because of that, we don't get to do a lot of time. We're very conscious of that at GitHub. So we need to maximize our time. So to kick this off, we're going to go straight to my instructions file. So every time I'm giving Copilot that context, whether I'm using ask mode, edits mode, or agent mode, I'm using an instructions file. A lot of us work on Macs. A lot of us work on PCs. How do we do that? So getting started is always tough. So I'm actually going to work on a GitHub code space. If I'm in my code repository and I need to get started, don't worry, you can take a photo in a minute, I promise. Um, when I'm getting started on a project, I need to install libraries. I need to install those prerequisites. We have 15 minutes to make code changes. I don't have time for that. So, instead of cloning my code, I've gone down to the code spaces capability here. I've spun up a code space and for all of you watching, it looks like VS Code and it's a secure development environment in the cloud. It's a containerized environment. It's fast to spin up and we're going to code right away. The other cool thing about a code space is I can code from a Mac, a PC, a Linux device or a tablet. I can code on the fly in a secure place. I don't have to worry about putting code on my machine. So this is actually my instructions file and everything we do today in GitHub Copilot is going to be calling this instructions file. So the first thing I'm going to do at the top is I'm telling it which files I want it to apply to. Really simply for today, it's going to apply to all my source files. On top of that, I'm asking it maybe specific file types. Now, we don't know what kind of code's in this repository, but the hint's going to be in this instructions files. Um, and I can also maybe exclude some patterns or some different types of files that I don't want to put in there, but also I can give it some conventions. So, I'm giving it some standards and practices, best practices. So, a little bit of a spoiler, we're doing a little bit of C# today. Do I have some C# fans in the crowd? Good. All right. So, I want some naming conventions that I want to use. So, a lot of our customers are going, well, we have naming conventions. We have coding styles. We need to embrace that. co-pilot isn't picking that up or maybe we need to improve and refactor our code. This is a great way to put that in there. I can look at my project structure and go right these are the things I want to have in there. I want my coding style to follow these methodologies. I also want my documentation to include certain things because documentation is hard and we're not always good at as a developer. Also, testing. I like XUnit. No debate. Good. I got lots of thumbs up. So, I wanted to use all testing uh x-unit files for all my testing files. So, we're going to start our conversation with copilot chat here. And if we go to copilot chat, we can see that we have our instructions file already included in our I'm going to go ahead and make this bigger for everyone. Our instructions file is going to be in there. So, we're giving it that context. Now, I'm in ask mode. Now, we picked up this repository because maybe our manager gave us something to do. I can go slashexplain, right? Has everyone here used that? It's going to explain this code to me now. But, you know what? It's going to explain the code. So, do we have anyone here where English is not your first language? Shout out a different language. French. So, I'm going to ask GitHub co-pilot to explain this to me in my natural language. Why is this important? I'm based in the UK. I work across teams in AMIA. English is not their first language. So, just being able to get to the developer experience and have that conversation is really important. So, GitHub Copilot is going to use this in Fr. I don't speak a lot of French, so I'm sorry. You're going to have to translate for me. I did take French in school. However, yes. So, it's going to use the structure of the promise, give the style of code, the documentation. It's also reading that file. So, I can add other context to it. I can add other files and folders here. I can add screenshots and visuals. But, so that's the ask mode. I really like that. I can use for simple oneline requests. I could ask it to look at specific files. So, I'm going to open up another file here. I'm going to pull up our models file and look at this broadcast file. Now, this broadcast file is okay. Uh, I don't know what it's doing. And then I could add the context to that to copilot and ask it to do the files and folders. But in ask mode, that's really good. I want to go a step further and I want to use edit mode. We're going to go a step further into this. So, it's going to end that chat mode. It's giving us give us that ne next fresh content. It's putting that broadcast file, but it hasn't given us that instructions file. So, I'm going to go back to our instructions file. Click on that in the screen. It's add that. I want to add the context of our files and folders. And it doesn't want to give me the file that I just opened. There it is at the bottom. It did remember that. So, I can ask GitHub Copilot all sorts of questions. Now, I am working in the code space, but if I go to my IDE of Visual Studio, there's a little cool feature here that I want to show you all. If I go to my edit mode here, I am using my instructions file. I'm going to add a context of the same file. We can talk to copilot. Hey co-pilot, can you please write some tests for my code? Because I don't want to use my hands or maybe I don't have time to use my hands, I can ask Copilot to write those tests for me. Now, it's using my broadcast file that's written in C#, but it's also giving it the context of that instructions file. Now, we're doing this live and on the fly. I've not pre-baked this, so whatever it outputs, we're going to see what happens. I'm sure it's going to be fine. So, it's given us an output file here. Now, I've used my voice versus the actual uh typing capability. It's written some tests for us. It's given us act and assert and arrange. Okay, is everyone happy with this? That's a good starter for pretend. We'll keep that. We'll keep that file. But actually, um, as I'm looking at this, we added some files, but it didn't add any comments or anything. I don't know how to pass this on to my next person. Can we also add documentation and comments to the files? Now, I could also talk to co-pilot and ask it these things. So, I'm going to go ahead and make those edits to it. It's going to add some documentation to it. It's added some XML documentation. Copilot, we need to do better than that. So, this is where I'll often I'm going to go back to our other folder. Uh, I'll keep this one. It's fine. Let's put some comments in our code. Let's not put anything in our test file because I need to add my context for that. Right. All right. So, we added those two files. We've made some changes. What else should we do with our code? We've added some tests. What are some other things we need to refactor maybe in our code? The file's too big. Let's shorten the size of the file. So, it's going to go ahead and make those changes. I wanted to finish this changes and then we're going to switch modes again in Copilot and move on to our agent mode. It's thinking. It's thinking. I'm impatient. We're going to go to agent mode. Um, right. So, we're in agent mode and we can still talk to co-pilot here. We can add the other context to the files. We can also add the toolings in the agent mode in the chat experience. So, I can use GitHub copilot chat. I can find I can add all these tools in that are available to chat about. Um, I can also add in thirdparty bits. So if I'm doing GitHub copilot in Azure, I can add that capability as well. I can also go ahead and put in some other tools. We have other tools available to us. We could add MCP servers, other extensions. Any of you using Docker, this is a great place to implement Docker and do stuff with it. So we've done all these things with our code. I actually want to add the context of a folder and not just that uh file we've been making. I'm going to go to the whole server file and I want to give it more context that entire file. I'm using agent mode and I'm going to talk to copilot again. Can you make our code? No. Oh, let's stop that. Can you make this codebase more secure? Thank you. Nor the file. All right. So, it's giving it the one file. For sake of time, we'll roll with it. All right, we'll keep those changes. We can review them. It's making more changes. I have a lot of issues in this file, don't I? But that happens. So co-pilot's thinking. So what I want to do is before I push my code, come on co-pilot. So before I push my code, I'm just going to let Copilot run in the background because I know we're short on time today. Um I can make a commit message. How many of you write a commit message and go please work? Well, instead of doing that, I'm going to use Copilot here on the right hand side. It's going to summarize our commit message for us and I'm going to go ahead and send those changes up and we're going to push those up. Now, I'm working in Visual Studio Code. This same exact experience works in the code spaces for us. And as I push that code button, I'm going to publish my branch and let's see what the extensions do for us and what C-pilot can help us do. We're going to create our pull request. Shows us the file changes. And often our pull pull request, we can say I did a thing. 50% of pull requests have no description at all. Did you know that? So, that's going to go ahead and create a pull request. And you notice here on the side, it gave me the option to do my file review before I submitted that pull request up. I didn't do it for the sake of time, but I often like showing people how we can review our files before the pull request. This is a great experience to show people how we uh to show to help ourselves write better code. So, if I click on the pull request, I'm going to go straight to that here. And we can see that I did a thing. Now, with that pull request, I want to edit that and say, you know what? Let's make that a little bit more verbose of what we did. I'm gonna ask Copilot to summarize this for us. I'm going to update our comment and it's added in comments and references to what we've done. So, it's given me that kind of endto-end capability to make some changes. I've been able to use the agent mode, the edit mode, and the ask mode in a really short time frame to make some changes. So, from here, we've made some good changes. We've used Copilot and I can even ask C-Pilot to do a PR review for us as well. For the sake of time, we don't have that capability. So, I'm just going to go back to our slides and talk a little bit about some of the other features because we're so short on time today. There's so much to show with Copilot. We want to build an experience for you as a developer. It's not just making some code edits, but that whole experience end to end. So, what do we not like doing as a developer? The same tasks every day, fixing bugs that are really tedious or security flaws. We need to improve our security in our code and help ourselves review code and have faster implementation time. So in terms of all the things you can do with co-pilot, there's quite a lot, but we have some great references for you to learn C-pilot. So we had a very flash in the pan experience with Copilot today using the difference asked, edit, agent mode, but I want you to continue learning. We have some interactive courses, some learning pathways. We also have the GitHub co-pilot exam that you can take. Um, and we have the GitHub copilot trust center if you have any questions for how user data is being used and uh any other questions about the legality side of co-pilot. So, I appreciate everyone's time today. I know it was a flash in the pan with Copilot. We'll be over at the GitHub booth for any further questions and thank you all for coming. [Music]

Original Description

Move beyond code completion—discover how GitHub Copilot can transform your workflow. In this demo-focused session, explore AI techniques most developers miss. Learn to frame complex problems for optimal solutions, auto-generate test suites, and create clear documentation. Through real-world demos, master effective Copilot communication to tackle tough dev challenges. Whether building, debugging, or maintaining code, unlock AI’s full potential and boost your productivity. To learn more, please check out these resources: * https://aka.ms/build25/plan/AAI_DevAppGitHubCop_Plan * https://github.com/features/copilot?utm_campaign=msft_build_github_splash&utm_medium=site&utm_source=msft_build * https://github.com/features/issues?utm_campaign=msft_build_github_splash&utm_medium=site&utm_source=msft_build * https://github.com/enterprise?utm_campaign=msft_build_github_splash&utm_medium=site&utm_source=msft_build * https://github.com/security/advanced-security?utm_campaign=msft_build_github_splash&utm_medium=site&utm_source=msft_build * https://resources.github.com/learn/certifications/ 𝗦𝗽𝗲𝗮𝗸𝗲𝗿𝘀: * April Yoho 𝗦𝗲𝘀𝘀𝗶𝗼𝗻 𝗜𝗻𝗳𝗼𝗿𝗺𝗮𝘁𝗶𝗼𝗻: This is one of many sessions from the Microsoft Build 2025 event. View even more sessions on-demand and learn about Microsoft Build at https://build.microsoft.com DEM504 | English (US) | Developer Tools & .NET Related Sessions: BRK113 -- https://build.microsoft.com/sessions/BRK113?wt.mc_id=yt_PLlrxD0HtieHgzfZCDP1dYD-AvB7zrQ7O2 BRK124 -- https://build.microsoft.com/sessions/BRK124?wt.mc_id=yt_PLlrxD0HtieHgzfZCDP1dYD-AvB7zrQ7O2 DEM500 -- https://build.microsoft.com/sessions/DEM500?wt.mc_id=yt_PLlrxD0HtieHgzfZCDP1dYD-AvB7zrQ7O2 #MSBuild Chapters: 0:00 - Benefits and structure of using GitHub Copilot 00:01:51 - Advantages of using GitHub Code Spaces for development 00:02:38 - Discussion on Naming Conventions and Coding Styles 00:04:59 - Transition from Chat to Edit Mode 00:06:05 - Live Demonstration of AI Capabil
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Microsoft Developer · Microsoft Developer · 0 of 60

← Previous Next →
1 Prepare for the DP-300 exam & the Azure Database Administrator Associate cert | Data Exposed
Prepare for the DP-300 exam & the Azure Database Administrator Associate cert | Data Exposed
Microsoft Developer
2 What I Wish I Knew ... about landing a job in tech
What I Wish I Knew ... about landing a job in tech
Microsoft Developer
3 Igniting Developer Innovation with Vector Search
Igniting Developer Innovation with Vector Search
Microsoft Developer
4 Combining the power of vector search with Azure OpenAI then revolutionize image search with vectors!
Combining the power of vector search with Azure OpenAI then revolutionize image search with vectors!
Microsoft Developer
5 What I Wish I Knew ... about finding your place in tech
What I Wish I Knew ... about finding your place in tech
Microsoft Developer
6 Fluent UI React Insights: Accessible by default
Fluent UI React Insights: Accessible by default
Microsoft Developer
7 Signing Container Images with Notary Project
Signing Container Images with Notary Project
Microsoft Developer
8 What I Wish I Knew ... about finding your place in tech
What I Wish I Knew ... about finding your place in tech
Microsoft Developer
9 What programming languages does GitHub Copilot support?
What programming languages does GitHub Copilot support?
Microsoft Developer
10 What I Wish I Knew ... about how much your job can change
What I Wish I Knew ... about how much your job can change
Microsoft Developer
11 What I Wish I Knew ... about how much your job can change
What I Wish I Knew ... about how much your job can change
Microsoft Developer
12 How do I become more confident about AI?
How do I become more confident about AI?
Microsoft Developer
13 How do I become more confident about AI?
How do I become more confident about AI?
Microsoft Developer
14 Performance Demos of SQL’s Intelligent Query Processing Feedback capabilities | Data Exposed
Performance Demos of SQL’s Intelligent Query Processing Feedback capabilities | Data Exposed
Microsoft Developer
15 What I Wish I Knew ... about coming to Microsoft
What I Wish I Knew ... about coming to Microsoft
Microsoft Developer
16 What I Wish I Knew ... about coming to Microsoft
What I Wish I Knew ... about coming to Microsoft
Microsoft Developer
17 Revolutionizing Image Search with Vectors
Revolutionizing Image Search with Vectors
Microsoft Developer
18 Igniting developer innovation with Vector search and Azure OpenAI
Igniting developer innovation with Vector search and Azure OpenAI
Microsoft Developer
19 Getting Started with Azure AI Studio's Prompt Flow - Part 2
Getting Started with Azure AI Studio's Prompt Flow - Part 2
Microsoft Developer
20 What I Wish I Knew ... about finding my career path
What I Wish I Knew ... about finding my career path
Microsoft Developer
21 What I Wish I Knew ... about finding my career path
What I Wish I Knew ... about finding my career path
Microsoft Developer
22 Windows Terminal's journey to Open Source
Windows Terminal's journey to Open Source
Microsoft Developer
23 Can I trust the code that GitHub Copilot generates?
Can I trust the code that GitHub Copilot generates?
Microsoft Developer
24 What I Wish I Knew ... about interviewing
What I Wish I Knew ... about interviewing
Microsoft Developer
25 What I Wish I Knew ... about interviewing
What I Wish I Knew ... about interviewing
Microsoft Developer
26 What is the Microsoft TechSpark Program?
What is the Microsoft TechSpark Program?
Microsoft Developer
27 SQL Server 2022: Accelerate query performance while reducing query compile time - w/ no code changes
SQL Server 2022: Accelerate query performance while reducing query compile time - w/ no code changes
Microsoft Developer
28 What I Wish I Knew ... about discovering computer science
What I Wish I Knew ... about discovering computer science
Microsoft Developer
29 What I Wish I Knew ... about discovering computer science
What I Wish I Knew ... about discovering computer science
Microsoft Developer
30 Call center transcription and analysis using Azure AI
Call center transcription and analysis using Azure AI
Microsoft Developer
31 How to use Text Analytics for health in Azure AI Language
How to use Text Analytics for health in Azure AI Language
Microsoft Developer
32 Azure OpenAI-powered summarization in Azure AI Language
Azure OpenAI-powered summarization in Azure AI Language
Microsoft Developer
33 Accelerate data labeling using Azure OpenAI and Azure AI Language
Accelerate data labeling using Azure OpenAI and Azure AI Language
Microsoft Developer
34 Building a Private ChatGPT with Azure OpenAI
Building a Private ChatGPT with Azure OpenAI
Microsoft Developer
35 What I Wish I Knew ... about how to interview
What I Wish I Knew ... about how to interview
Microsoft Developer
36 What I Wish I Knew ... about how to interview
What I Wish I Knew ... about how to interview
Microsoft Developer
37 Getting Started with Azure AI Studio's Prompt Flow - Part 3
Getting Started with Azure AI Studio's Prompt Flow - Part 3
Microsoft Developer
38 Intelligent Apps with Azure Kubernetes Service (AKS)
Intelligent Apps with Azure Kubernetes Service (AKS)
Microsoft Developer
39 Getting Started with Azure Blob Storage | Data Exposed: MVP Edition
Getting Started with Azure Blob Storage | Data Exposed: MVP Edition
Microsoft Developer
40 Chat + Your Data + Plugins
Chat + Your Data + Plugins
Microsoft Developer
41 What I Wish I Knew ... about different career paths
What I Wish I Knew ... about different career paths
Microsoft Developer
42 What I Wish I Knew ... about different career paths
What I Wish I Knew ... about different career paths
Microsoft Developer
43 Advanced Dev Tunnels Features | OD122
Advanced Dev Tunnels Features | OD122
Microsoft Developer
44 Learn Live - Manage performance and availability in Azure Cosmos DB for PostgreSQL
Learn Live - Manage performance and availability in Azure Cosmos DB for PostgreSQL
Microsoft Developer
45 Plan your SQL Migration to Azure with confidence | Data Exposed
Plan your SQL Migration to Azure with confidence | Data Exposed
Microsoft Developer
46 What I Wish I Knew ... about social skills in a tech career
What I Wish I Knew ... about social skills in a tech career
Microsoft Developer
47 What I Wish I Knew ... about social skills in a tech career
What I Wish I Knew ... about social skills in a tech career
Microsoft Developer
48 All About Vectors, Search, and Function Calling in Azure OpenAI - Labor Day Special
All About Vectors, Search, and Function Calling in Azure OpenAI - Labor Day Special
Microsoft Developer
49 Introduction to project ORAS
Introduction to project ORAS
Microsoft Developer
50 What I Wish I Knew ... about finding the right major
What I Wish I Knew ... about finding the right major
Microsoft Developer
51 What I Wish I Knew ... about finding the right major
What I Wish I Knew ... about finding the right major
Microsoft Developer
52 What I Wish I Knew ... about how to approach programming
What I Wish I Knew ... about how to approach programming
Microsoft Developer
53 What I Wish I Knew ... about how to approach programming
What I Wish I Knew ... about how to approach programming
Microsoft Developer
54 Learn Live - Scale from a single node to multiple nodes with Azure Cosmos DB for PostgreSQL
Learn Live - Scale from a single node to multiple nodes with Azure Cosmos DB for PostgreSQL
Microsoft Developer
55 What I Wish I Knew ... about diversity in tech #1
What I Wish I Knew ... about diversity in tech #1
Microsoft Developer
56 What I Wish I Knew ... about diversity in tech #1
What I Wish I Knew ... about diversity in tech #1
Microsoft Developer
57 Get started with SQL Server AGs across Windows, Linux and Container Replicas | Data Exposed
Get started with SQL Server AGs across Windows, Linux and Container Replicas | Data Exposed
Microsoft Developer
58 Writing LLM Apps with Azure AI and PromptFlow
Writing LLM Apps with Azure AI and PromptFlow
Microsoft Developer
59 What I Wish I Knew ... about how cool working in tech could be
What I Wish I Knew ... about how cool working in tech could be
Microsoft Developer
60 Open Source foundation models in Azure Machine Learning & optimization techniques behind the scenes
Open Source foundation models in Azure Machine Learning & optimization techniques behind the scenes
Microsoft Developer

This video showcases the capabilities of GitHub Copilot, an AI-powered tool that assists with code completion, refactoring, testing, and documentation. It provides real-world demos and examples of how to use the tool to improve developer productivity and streamline development workflows. By watching this video, developers can learn how to leverage GitHub Copilot to transform their workflow and improve their coding efficiency.

Key Takeaways
  1. Create an instructions file for GitHub Copilot
  2. Set up a GitHub code space for development
  3. Use naming conventions and coding styles in the instructions file
  4. Write documentation and tests using XUnit
  5. Ask GitHub Copilot to explain code
  6. Use Copilot to generate tests for code
  7. Add context to Copilot from multiple files and folders
  8. Add tests with act and assert and arrange
  9. Add documentation and comments to files
  10. Refactor code to shorten file size
💡 GitHub Copilot can be used in various modes, including agent mode, edit mode, and ask mode, to assist with coding tasks and improve developer productivity.

Related Reads

Chapters (5)

Benefits and structure of using GitHub Copilot
1:51 Advantages of using GitHub Code Spaces for development
2:38 Discussion on Naming Conventions and Coding Styles
4:59 Transition from Chat to Edit Mode
6:05 Live Demonstration of AI Capabil
Up next
how i use a.i. to create viral UGC influencer facebook ads.
Austin Rabin
Watch →