乐于分享
好东西不私藏

开发项目中AI代码行占比统计方案

开发项目中AI代码行占比统计方案
AI代码占比核心计算公式:AI有效代码占比 = AI生成有效代码行 ÷ 项目总有效业务代码行 × 100%
核心小原则:我们只统计有效业务代码行(SLOC),空行、注释、配置文件、静态资源、第三方代码、测试代码全部剔除,避免数据虚高或偏低,统计结果可以直接用来做周报、迭代复盘、个人产能统计。

一、统一统计口径

1. 算【AI代码行】的情况

AI一次性完整生成的函数、组件、接口、业务逻辑模块
AI补全、续写、重构优化的核心业务代码
Copilot、IDE智能补全、大模型生成后,人工小幅修改(改动<30%)的代码
AI帮忙优化、精简、纠错,主体逻辑完全保留的代码

2. 不算【AI代码行】的情况

纯人工手写的所有原始代码
AI生成后,人工大幅改写(改动≥30%)、重构逻辑、替换核心功能的代码(直接归为人工代码)
脚手架自动生成、项目框架初始化的基础代码
配置文件、文档、日志、纯注释、空行这类非业务代码
单元测试、测试脚本、第三方依赖、压缩代码

3. 项目总行数统计规则

项目总有效行 = 人工手写有效业务行 + AI生成有效业务行,只算核心业务源码,所有无效代码一律剔除。

二、两种常用统计场景

场景1:增量统计(迭代/新项目,最常用)

只统计本次迭代、当前开发周期里的新增代码,能精准看出AI的辅助开发效率。
适用场景:周报更新、迭代复盘、个人开发产能统计

场景2:全量统计

统计整个项目所有存量代码,算出整体的AI代码占比。
适用场景:项目整体复盘、技术沉淀分析

三、手把手统计流程

步骤1:划定统计范围,过滤无效内容

统一过滤无效目录和文件,所有统计都按这套规则来,保证数据统一、不翻车:
需排除目录:node_modules、dist、build、target、out、docs、test、vendor、.git
需排除文件:所有配置类、文档类、压缩类文件
仅保留内容:项目核心业务源码(java、py、js、ts、vue、go、cpp、c等)

步骤2:区分人工代码和AI代码(核心关键)

这是统计最关键的一步,分享两个超好落地的区分方法,按需选用即可:

方式A:目录隔离法

开发时把所有AI生成的代码,统一放进固定目录(比如 ai_gen/),人工代码正常存放,物理隔离后,统计起来超级简单。

方式B:Git溯源法

翻看Git提交记录快速区分:短时批量新增、格式规整统一、模板化严重的代码,基本都是AI生成;风格随性、带有个人编码习惯、迭代式修改的,就是人工代码。

步骤3:用cloc工具统计有效行数

全程用cloc工具统计有效代码行(看输出的code列),自动过滤空行和注释,数据标准又靠谱。
  1. 项目总有效代码行:执行上方命令,取最终SUM行的code数值
  2. AI有效代码行:进入AI代码专属目录,对AI新增文件执行同款过滤命令,即可得出AI代码行数

步骤4:快速算出最终占比

AI代码占比 = (AI有效代码行 ÷ 项目总有效代码行)× 100%
结果保留1-2位小数,干净规整,直接用来汇报完全没问题。

四、迭代专属:增量AI占比统计

专门针对单次迭代的新增代码统计,避开历史存量代码干扰,数据更精准:

查看本次迭代新增文件

git diff HEAD~1 --name-only

统计本次新增代码的有效总行数与AI行数,再计算占比

cloc 本次新增源码文件 --exclude-ext=md,json

五、AI代码判定规则

没有做目录隔离的老项目,直接按这套标准判定,统一口径不扯皮:
100%计入AI行:整体模板化、格式极度规整、无个人编码风格、过度兜底判空、自带标准化注释的完整代码模块
50%计入AI行:AI生成后,仅微调变量名、参数、文案,核心逻辑完全没改动
不计入AI行:人工重写核心逻辑、重构架构,改动超30%,仅保留少量基础代码

六、常见统计坑点

坑点1:统计时带入空行、注释、配置文件 → 最终占比偏低
坑点2:把脚手架初始代码、第三方代码算成AI代码 → 数据虚高
坑点3:大幅改写的AI代码全额算作AI产出 → 数据失真不准
坑点4:混用物理行、有效行两种统计标准 → 数据无法对比复盘