Skip to content

🚀 Copilot as an Enabler

Welcome to the final frosting layer of your Code without Barriers journey! 🧁

In this section, we’ll explore how GitHub Copilot can enable you to write cleaner, smarter, and more maintainable code—without taking over the kitchen.


🌟✨ What does “Enabler” mean?

An enabler helps you do more with what you already know.
Copilot can: - ✨Refactor messy code - 🧠Suggest improvements - 🧮Write tests - 💕Add helpful comments - 💡Help you debug

But remember: you’re still the baker. Copilot just hands you better tools.


💻 Refactoring with Copilot

Let’s say you’ve written a function that works, but it’s a bit messy:

function bakeCupcakes(flavor, quantity) {
  if (quantity > 0) {
    console.log("Baking " + quantity + " " + flavor + " cupcakes");
  } else {
    console.log("No cupcakes to bake");
  }
}

Now prompt Copilot:

// Refactor this function to use template literals and handle edge cases

Copilot might suggest:

function bakeCupcakes(flavor, quantity) {
  if (quantity > 0) {
    console.log(`Baking ${quantity} ${flavor} cupcakes`);
  } else {
    console.log("Please enter a valid quantity of cupcakes to bake.");
  }
}

You’ve just leveled up your code with Copilot’s help!


🍩 Writing Tests with Copilot

Testing is a skill many coders avoid—but Copilot makes it easier.

Example:

// Write a test for the bakeCupcakes function

Copilot might generate:

test('bakeCupcakes logs correct message', () => {
  console.log = jest.fn();
  bakeCupcakes('Vanilla', 3);
  expect(console.log).toHaveBeenCalledWith('Baking 3 Vanilla cupcakes');
});

Now I don't want it to write tests for me, I want it to teach me how to write tests - so I might say:

"Could you explain this test to me like I'm 5 years old?"

GitHub Copilot replies:

**Absolutely! Let me explain this test using a fun cupcake analogy! 🧁

Imagine you're playing "Pretend Bakery" with your toys! 🎮

First, we tell our pretend friend (Jest) that they're going to play the role of the "message announcer" (console.log = jest.fn()). It's like giving them a toy microphone! 🎤

Then, we ask our baker (bakeCupcakes) to make 3 vanilla cupcakes (bakeCupcakes('Vanilla', 3)). It's like telling your toy baker "Please make 3 vanilla cupcakes!" 🧑‍🍳

Finally, we check if our pretend friend with the microphone said exactly the right words: "Baking 3 Vanilla cupcakes" (expect(console.log).toHaveBeenCalledWith(...)). It's like asking "Did they say the magic words correctly?" ✨

So in kid terms:

  • We have a pretend friend (Jest) 🤖
  • We give them a toy microphone (mock console.log) 🎤
  • We ask the baker to make cupcakes 🧁
  • We check if our friend announced it correctly! ✅

It's just like when you're playing with toys and making sure everyone follows the story correctly. If someone says the wrong words, the test fails - just like if someone didn't follow the rules in a game!

Isn't testing fun when you think about it like playing pretend? 🌟

Would you like me to explain any other part of testing in a fun way? Maybe we can come up with more cupcake-related testing examples! 🍰**

Now you’ve got a test—and a better understanding of how to write one.


🍬 Adding Comments and Documentation

Copilot can help you document your code clearly.

Example:

// Add JSDoc comments to this function
function rateCupcake(flavor, rating) {
  return `${flavor} gets a ${rating}/5!`;
}

Copilot might suggest:

/**
 * Rates a cupcake flavor.
 * @param {string} flavor - The flavor of the cupcake.
 * @param {number} rating - The rating from 1 to 5.
 * @returns {string} A formatted rating message.
 */
function rateCupcake(flavor, rating) {
  return `${flavor} gets a ${rating}/5!`;
}

Now your code is easier to read and maintain!


⭐ Debugging with Copilot

Stuck on a bug? Copilot can help you spot the issue.

Example:

// Why is this function returning undefined?
function getCupcake(flavor) {
  const cupcakes = { Vanilla: 5, Chocolate: 3 };
  cupcakes.flavor;
}

Copilot might suggest:

// You need to use bracket notation to access dynamic keys
return cupcakes[flavor];

Boom! Bug fixed, lesson learned.


🧠⚡ GitHub Copilot Features: What’s Hot & What’s Dropping

Status: ✅ Completed
XP: 💯 100
Time: ⏱️ 6 mins


🚀 Copilot = Your AI Coding Sidekick

GitHub Copilot’s got a growing list of features for solo devs and orgs. Some are 🔒 exclusive, others are 🔓 public preview. What you get depends on your plan.


🧩 Core Features (General Availability)

✨ Code Completion

  • Autocomplete vibes in VS Code, Visual Studio, JetBrains, Azure Data Studio, Xcode, Vim/Neovim, Eclipse.
  • In VS Code: “Next edit suggestions” predict your next move and help you code faster.

💬 Copilot Chat

  • Ask coding Qs, update files, get help.
  • Available in GitHub Web, GitHub Mobile, IDEs (VS Code, Visual Studio, JetBrains, Eclipse, Xcode), and Windows Terminal.
  • GitHub Skills in Chat (not in Free plan).

🛠️ Copilot Edits

Edit across files from one chat prompt.

  • Edit Mode: You control the files, context, and edits.
  • Agent Mode: Copilot takes the wheel, edits code, runs terminal commands, and fixes stuff until the task’s done. (Only in VS Code)

🔍 Code Review

AI-powered suggestions to help you write cleaner, smarter code.


🧑‍💻 Copilot in the CLI

Chat with Copilot in your terminal. Ask for command help, get suggestions, and explanations. Works in Windows Terminal Canary too.


📦 Pull Request Summaries

Copilot auto-generates summaries of PR changes, impacted files, and review tips. (Not in Free plan)


🧪 Copilot Extensions

Plug external tools into Copilot Chat via GitHub Apps. Build your own or grab from GitHub Marketplace.


🧠 Custom Instructions

Tell Copilot your coding style, tools, and preferences to get better responses.


📚 Knowledge Bases (Enterprise Only)

Create doc collections to use as context in Copilot Chat. Ask smarter questions in GitHub or VS Code.


🧠 TL;DR

Copilot’s stacked with features to level up your coding game. From smart suggestions to full-on AI agents, it’s built to boost your dev flow. What you get depends on your plan, but even the basics are 🔥.

💖 Final Thought

Copilot is like a cupcake decorator who helps you make your creations shine.
It doesn’t bake for you—but it helps you refine, polish, and perfect your code.

Use it to: - Improve readability - Learn best practices - Write cleaner code - Build confidence

You’re not just coding—you’re crafting something sweet and smart. 🍰
Keep experimenting, keep improving, and keep baking brilliance! 🧁