Mark Ku's Blog
Podcast ConversationAI dialogue version of this article · Mandarin audio
Audio for this article is powered by VoAIVoAI

The rise and challenges of Vibe Coding

As AI coding tools become widespread, many developers are trying "Vibe coding" — giving the AI a brief description or direction and letting it auto-generate code. While this can produce new code quickly, real-world project development reveals plenty of limits.

The core idea of Vibe coding is describing requirements in natural language and having AI auto-generate the matching code. This approach is genuinely useful for prototypes and quickly validating ideas, but it tends to hit various challenges in complex enterprise-grade projects.

1️⃣ Layering features on existing complexity is hard

AI can quickly produce new modules, but problems surface when integrating new features into an already-complex system.

Concrete example: shopping-cart discount feature

The issue:

  • AI didn't account for membership-tier discount rules
  • Ignored special discounts by product category
  • Didn't handle the discount cap

2️⃣ For obscure or complex new problems, AI often can't answer

AI's capabilities depend on its training data. When a problem is obscure or involves entirely new concepts, AI often can't provide a complete solution.

3️⃣ Limited "brain capacity" (Context) — hard to handle huge projects

Even powerful AI has context limits — only so much code can be "remembered" at once. Beyond that, full understanding falls apart.

Concrete example: large e-commerce site

Real problem:

  • AI only sees code snippets in the current conversation
  • Can't understand complex inter-module dependencies
  • Lacks awareness of overall architecture

4️⃣ Insufficient "association" when implementing complex features — easy to "fix A, break B"

AI still falls short on understanding internal system dependencies — it lacks the intuition human engineers build through experience.

Concrete example: changing a price-calculation function

Consequences:

  • Price calculation is correct, but sales-report data is incomplete
  • Statistics reports show errors
  • Sales data can't be tracked

5️⃣ Memory deficits — hard to reuse approaches it has been taught

AI can learn instructions within a single conversation, but lacks long-term memory — so it can't reuse past solutions.

Concrete example: array sorting

When asked a similar request today, AI might forget entirely and produce a less efficient version.

6️⃣ Quality wobbles when switching models

In many dev environments, people write part of the code with a higher-tier model (e.g., GPT-4.5), then switch to a cheaper model to save cost — and code quality drops sharply.

Concrete example: user registration

Issues that may arise during low-tier-model maintenance: simplified versions, missing important checks

7️⃣ Inconsistent style and design

Unless you explicitly tell the AI which architectural principles and naming rules to follow, every output may have different style.

Concrete example: login feature

Second time: class-based design — completely different style version

Many of the above can be mitigated with Cursor and Copilot guidelines

1. Cursor usage guide

Cursor, an AI-based code editor, can dramatically boost dev efficiency — but you need the right strategy.

Set up a project context file

Location: project root
Filename: .cursorrules

Steps:

  1. Create .cursorrules at the project root
  2. Copy a template above and adapt to your project's needs
  3. Save — Cursor automatically reads and applies these settings

Effective Cursor prompting tips

2. GitHub Copilot usage guide

GitHub Copilot, a code-completion tool, provides real-time suggestions — but needs the right configuration.

Set up a Copilot config file

Location: .copilot folder at the project root
Filename: settings.json

Steps:

  1. Create .copilot at the project root
  2. Inside .copilot, create settings.json
  3. Copy a template above and adapt to your project's needs
  4. Save — Copilot automatically reads and applies these settings

Project file structure summary

Important reminders:

  • .cursorrules and the .copilot folder should be checked into version control
  • These files affect AI tool behavior for everyone on the team
  • Recommend standardizing the format and content across the team

Copilot best practices

3. Integrated usage strategy

Build a development workflow

Example usage:

  1. Use Cursor for design:

    • Describe feature requirements
    • Provide code context
    • Specify architectural patterns
  2. Use Copilot for implementation:

    • Write code in files
    • Use comments to guide
    • Accept or reject suggestions
  3. Use Cursor for optimization:

    • Refactor code
    • Add tests
    • Ensure quality

Common issue solutions

Conclusion

While Vibe coding can quickly generate code and accelerate prototyping, AI still can't fully replace engineers when facing large projects, complex logic, and long-term maintenance. Human engineers can grasp the entire system architecture, have long-term memory, solve unknown problems, and ensure consistent code style — none of which AI fully matches today.

By using AI tools like Cursor and Copilot correctly, developers can dramatically boost efficiency. The key is establishing a sound strategy and workflow that turns AI into a capable assistant — not a substitute you completely depend on.

Author

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。Read More

Found this useful?

The author's free tools, daily podcasts and newsletter are all here.

Mark Ku · This article is licensed under CC BY 4.0. Credit the author and link back to the original when reusing it.

Comments

Subscribe to Newsletter

Subscribe to get new posts delivered instantly — never miss a tech share.

By submitting, you agree to receive emails. You can anytime.

Popular Posts

View all
Mark Ku
··602

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution
Mark Ku
··490

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.
Mark Ku
··333

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki
Mark Ku
··264

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning
Mark Ku
··221

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1
Mark Ku
··215

Setting Up Samba on Ubuntu to Share Folders with Windows 11

Setting Up Samba on Ubuntu to Share Folders with Windows 11
深入探討 Vibe Coding 限制 - Mark Ku's Tech Notes