Key Concepts:
- GitHub Copilot: An AI pair programmer that assists developers with code completion, code generation, and debugging.
- Agent Mode: A Copilot mode that allows it to execute commands and interact with the environment.
- Custom Instructions: Tailored instructions that guide Copilot's behavior and code generation style.
- Prompt Files: Reusable prompts stored as files that can be invoked with slash commands.
- Code Spaces: Cloud-based development environments that provide a consistent and pre-configured setup.
- Dev Container: A configuration file that defines the development environment for Code Spaces.
- Multi-Tier Application: An application with distinct presentation, logic, and data layers.
- Django: A Python web framework used for building the backend.
- React: A JavaScript library used for building the frontend.
- MongoDB: A NoSQL database used for storing data.
- REST API: An architectural style for building web services.
- GitHub Actions: A CI/CD platform for automating workflows.
- Skills Exercises: Interactive, issue-based tutorials for learning GitHub features.
- High Velocity Engineering (HVE): Leveraging AI to manage the full Software Development Life Cycle (SDLC).
1. Building Applications with Copilot: A Methodical Approach
- Ari Levy from the ACE team at GitHub discusses a framework for building applications using Copilot.
- The framework originated from a fit tracker application built during Universe 2024.
- The application uses a multi-tier architecture with React for the presentation layer, Python Django for the logic layer, and MongoDB for the data layer.
- The framework has been iterated into a skills exercise, an issue-based platform for self-service learning.
- The skills exercise is open source and publicly available, allowing users to build the application step-by-step.
- The exercise is designed to be completed within 60 minutes and includes a backstory about a gym teacher building a fitness tracker app.
2. Setting Up the Development Environment with Code Spaces
- The skills exercise utilizes Code Spaces to provide a consistent development environment.
- Code Spaces includes custom instructions and prompt files for consistent development.
- A dev container is used to pre-configure the environment with necessary tools and dependencies, such as npm, Python, and MongoDB.
- The dev container also includes post-creation and post-start scripts to ensure the database service is running.
- The environment includes extensions for Copilot, markdown linting, and debugging.
- Ports are opened for the database, Django backend, and React frontend.
3. Interacting with Copilot Using Prompts and Instructions
- The skills exercise provides prompts that guide users on how to interact with Copilot.
- Prompts are used to create branches, generate code, and fix errors.
- Agent mode allows Copilot to self-heal and iterate on solutions.
- Custom instructions are used to define the desired architecture, frontend, and backend.
- "You have to know what you want to build in order to build it with Copilot." - Cadesha
- Users can also use ask mode to have Copilot generate custom instructions.
4. Step-by-Step Walkthrough of Building the Fitness Tracker App
- The walkthrough begins with creating a Python virtual environment and installing dependencies.
- Copilot is used to generate the Django app structure and connect to the MongoDB database.
- The database is populated with data, including superheroes and teams from Marvel and DC.
- Copilot is used to create a prompt file for updating the Django backend.
- The Django models, serializers, URLs, and views are generated using Copilot.
- The application is launched using VS Code launch files.
5. Debugging and Troubleshooting with Copilot
- When errors occur, users can provide Copilot with screenshots or error messages.
- Copilot can suggest solutions and iterate on the code.
- Users can try different models or start a new chat to resolve issues.
- "The more context you can give Copilot, the less creative it's going to be and the less hallucinations you're going to get." - Ari
- It is important to stage and commit changes frequently to avoid losing progress.
6. Managing Files and Instructions
- Instructions are broken down by setup, logic layer, and React frontend.
- Instructions can be applied to all files or specific parts of the repository.
- Prompt files are used to define reusable prompts that can be invoked with slash commands.
- Steps are used to guide users through the skills exercise.
- Workflows are used to automate tasks and provide visual feedback.
7. Addressing Security Concerns
- There is a possibility of security issues with autogenerated code.
- Copilot attempts to eliminate vulnerabilities.
- Users can ask Copilot to check for vulnerabilities.
- GitHub provides advanced security features for code review and vulnerability detection.
- Secure coding practices are prioritized at GitHub.
8. Community Engagement and Future Plans
- The skills exercise is open source and can be used by others to create their own exercises.
- The exercise manager will be open sourced to allow users to create issue-based exercises.
- There are plans to have show and tell sessions on how users are using Copilot.
- The advocate hub project will continue to be built in future streams.
9. Key Quotes
- "You have to know what you want to build in order to build it with Copilot." - Cadesha
- "The more context you can give Copilot, the less creative it's going to be and the less hallucinations you're going to get." - Ari
- "Where there's an API, there's a way."
10. Conclusion
The video provides a comprehensive overview of how to build applications with Copilot using a methodical approach. The skills exercise offers a step-by-step walkthrough of building a fitness tracker app, demonstrating how to use prompts, instructions, and Code Spaces to streamline the development process. The video also highlights the importance of debugging, troubleshooting, and addressing security concerns when working with AI-assisted coding tools. The open-source nature of the skills exercise and the plans for future community engagement underscore GitHub's commitment to empowering developers with AI.
AI summaries can miss context or contain errors. Check important details against the original video.





