Using GitHub Copilot in VS Code: Friend or Friction?

👋 Introduction

Like many developers today, I often code in VS Code with the help of GitHub Copilot. It’s fast, it’s clever, and sometimes it’s... too clever.
I decided to reflect on my real-world use of AI in my daily workflow: what works, what doesn’t, and what still needs a human touch.


🧩 Where Copilot Truly Shines: Documentation

If there’s one task where Copilot really excels, it’s documentation updates.

  • It reads the function signature and context.

  • It generates relevant PHPDoc blocks, Markdown explanations, or even API docs with little effort.

  • When I refactor a method, it automatically proposes accurate comments that evolve with the code.

🟢 Conclusion: For keeping documentation consistent and up to date, AI is a brilliant assistant — as long as I double-check the results.


🛑 Code Reviews: When AI Becomes Too Opinionated

I also tested AI-powered code review tools (like Copilot Suggestions or other extensions).
Honestly? That’s where the magic started to fall apart.

  • The AI flags nearly everything: naming, spacing, architecture, structure, even when the code is clean.

  • It blocks merge requests on stylistic details or differences in philosophy.

  • It often ignores project-specific conventions in favor of some abstract “perfect code.”

My take: Code reviews should help, not hinder. An AI should align itself with the project’s standards — not impose new ones.


🧪 New Features: Copilot is Only as Good as Your Prompts

When building new features, Copilot can save time — or waste it.

  • If I guide it with clear prompts, it proposes good boilerplate code and clean structures.

  • If I let it “improvise,” I get inconsistent logic, mismatched naming, and even code that breaks project conventions.

🧭 Lesson learned: Don’t expect the AI to follow your architectural style unless you teach it. Show it. Guide it. Prompt it.


🔍 The Prompt Matters More Than the Code

In all cases, there’s one recurring truth: the prompt is everything.

  • Be precise. Example: create a Laravel service to send notification emails, using the existing EmailNotification interface and respecting PSR naming conventions.

  • Give context. Don’t assume the AI knows your project.

  • Always review, refactor, and question what Copilot generates.


💬 Final Thoughts

AI is a powerful ally — but not a replacement for your brain.

  • Use it where it adds value: documentation, repetitive code, boilerplate.

  • Be skeptical during code reviews or feature design.

  • Always prompt intelligently and trust your human intuition.

“Copilot is your assistant, not your architect.”


📌 TL;DR

AreaCopilot ValueCaution
Documentation✅ ExcellentStill needs a human eye
Code Reviews⚠️ Too strictMay block merge requests for trivialities
New Features🤖 Prompt-dependentCan produce inconsistent logic
Prompts🎯 CrucialDefine scope, structure, style explicitly

🎯 Tips for Prompting Copilot Efficiently

🧠 Think like a teacher, not a typist. Give Copilot clear instructions and context.

Be specific

// Bad
"create a notification"

// Good
"Create a Laravel Notification class named OrderShippedNotification that uses MailChannel"

Define structure

"Generate a DTO class with public readonly properties and a fromModel() method"

Set context

"We use snake_case for DB columns and camelCase for variables. Don't use helper() functions; use services."

Review & Refactor

  • Never copy blindly

  • Refactor the result to match your project

  • Add your own business logic

🧩 AI needs clarity — the more context you give, the better the result.

0
Subscribe to my newsletter

Read articles from Jean-Marc Strauven directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Jean-Marc Strauven
Jean-Marc Strauven

Jean-Marc (aka Grazulex) is a developer with over 30 years of experience, driven by a passion for learning and exploring new technologies. While PHP is his daily companion, he also enjoys diving into Python, Perl, and even Rust when the mood strikes. Jean-Marc thrives on curiosity, code, and the occasional semicolon. Always eager to evolve, he blends decades of experience with a constant hunger for innovation.