惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
J
Java Code Geeks
I
InfoQ
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
V
Visual Studio Blog
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
有赞技术团队
有赞技术团队
月光博客
月光博客
Martin Fowler
Martin Fowler
量子位
L
LangChain Blog
B
Blog
Last Week in AI
Last Week in AI
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I Used AI for Code Review on a Production ERP for 6 Month...
sumit2401 · 2026-05-20 · via DEV Community

Six months ago I started running every non-trivial piece of code through AI before it shipped. Not prototypes — real ERP and CRM modules with paying clients on the other end. Batch processing tables, MRP allocation logic, dynamic invoice builders, real-time dashboards.

Here's what I found out.


What AI is actually good at

Duplicate functions. In a codebase that's been touched by multiple devs over months, this is AI's most reliable win. It flagged things like: "This mirrors formatCurrency in utils/formatters.ts" — the kind of thing that slips through human review because everyone assumes someone else already checked.

Calculation bugs in self-contained utilities. Off-by-one errors, wrong operator precedence, bad unit conversions — if the function is isolated and doesn't depend on external state, AI catches these consistently. In ERP systems, a broken landed cost formula or tax calculation is instant client trust damage. AI has saved me here more than once.

Direct React state mutations. Pushing directly to an array, mutating nested objects without spreading — AI flags these reliably in simple components. Not groundbreaking, but useful as a first pass before compilation.


Where it completely fell apart

Race conditions. This was my most painful production bug in the last 6 months.

Our batch item table allows rapid concurrent mutations — user triggers cascading calculations, multiple async state updates overlap, one override silently wins. Classic race condition.

I ran the component through every AI tool I was using at the time. Zero flags. Not even a "this might be worth checking." The bug only surfaced when a client hit a specific sequence of interactions in rapid succession.

AI does static analysis. It cannot simulate erratic user interaction timing. Race conditions are invisible to it.

Web Worker memory leaks. I implemented workers for heavy client-side calculations. Suspicious of potential leaks from rapid event-driven spawning, I tasked my entire AI stack with auditing the cleanup patterns.

Every tool gave a confident green pass.

My manual browser profiling found that workers weren't reliably terminating under specific runtime exceptions. Ghost processes, staying alive. The AI verified the cleanup code existed. It could not verify the cleanup actually ran across every execution path.

CSS layout bugs on custom components. Built a proprietary data grid from scratch to hit strict UX requirements. Ran into padding misalignments and layout collapse under certain data payloads.

AI was almost useless. I'd describe the visual bug, it would claim to fix it, the rendered output would still be broken. Without a real rendering environment, it's guessing at cascade behavior.


The thing nobody talks about: chunking

This was my biggest operational discovery.

I was building an MRP allocation table — quantities, supply constraints, fulfillment priorities cascading across hundreds of rows. I fed the full spec into the AI in a single pass.

Every tool failed. Not "slightly off" — confidently wrong logic that looked correct until you traced execution. Broken dependencies, misallocated quantities, state updates that would silently fail on specific edge cases.

Then I split it:

  1. One prompt — just the core allocation math
  2. One prompt — data validation constraints only
  3. One prompt — the immutable React state update pattern
  4. Final prompt — audit each module against the others

Every piece came back clean. Assembled system worked perfectly in production.

The mental model shift: AI degrades under compound logical dependencies, not under token length. An ERP module has overlapping validation paths, tax calculations, database state requirements. Feeding all of it simultaneously overloads the model's situational logic.

If you can't explain the task scope to a senior dev in 2 minutes out loud, chunk it before it touches an LLM.


The confidence problem

This is the part that actually concerns me.

When my Web Worker had a memory leak, no tool said: "This syntax looks valid, but I can't verify runtime cleanup behavior — profile this manually." They said it looked fine. Clean pass. Ship it.

The framing I've settled on:

An AI bug flag is high-signal — act on it immediately.
An AI clean pass is weak evidence — it means no obvious patterns matched, not that the code is safe.

The deadline trap is real. When you're pushing to meet a sprint, "the AI said it's fine" becomes a substitute for actual testing. That's where production regressions come from.


My actual tool stack after 6 months

  • Codeium — inline autocomplete for single-file work. Hits a ceiling fast on cross-file reasoning.
  • ChatGPT — useful for isolated logic audits, but snippet output creates integration friction at scale.
  • Cursor (Claude Sonnet) — my go-to for refactoring. Full-file editing context is genuinely better than any chat interface.
  • Google Gemini Code Assist — primary daily driver. Large context window, cost-efficient for heavy ERP work.
  • Claude direct — architectural audits and high-level logic design. Most willing to flag issues with caveats instead of blind passes.
  • OpenAI Codex App — pre-PR repository-wide audits in sandboxed worktrees. Runs parallel agents without touching my local environment.

Each tool serves a distinct step. Switching between them isn't tool-hopping — it's using the right instrument for the job.


Quick reference

Trust AI for:

  • Utility functions under ~50 lines with clear I/O
  • Catching duplicate/redundant modules across large repos
  • Refactoring known-safe logic into cleaner patterns
  • Boilerplate React hooks, contexts, basic reducers

Verify manually:

  • Multi-tiered stateful components with rapid user interactions
  • Web Workers, Sockets, async lifecycle management
  • Custom visual components (non-library)
  • Core financial/billing calculations
  • Anything you can't explain to a teammate in 2 minutes

Chunk before sending:

  • Features spanning more than 2 interacting subsystems
  • Full ERP modules with cascading state (MRP, inventory allocation)
  • Any prompt that needs multiple paragraphs just to define the constraints

The engineers getting the most out of AI aren't the ones who trust it blindly. They're the ones who know exactly where that trust stops.

Full breakdown with the complete MRP case study, tool-by-tool notes, and a practical checklist here → stacknovahq.com