屎山代码检测器 fuck-u-code:只需一条命令就知道你的代码写得有多烂

该文章已生成可运行项目,

1. 开场先聊两句

每次开 Code Review,最怕队友幽幽地说一句:“这段代码……我改不动。”
潜台词:这坨东西已经长成屎山了。
问题是,屎没味道还能忍,代码烂到发指是真忍不了。
于是,我找到了一个专治“看不下去”的神器——fuck-u-code(名字很暴躁,效果很温柔)。

2. 它到底干嘛的?

一句话:用 7 个维度给项目打分,分数越高越像“屎山”。

  • • 循环复杂度(Cyclomatic Complexity)

  • • 函数长度

  • • 注释覆盖率

  • • 错误处理

  • • 命名规范

  • • 代码重复度

  • • 代码结构(包/模块耦合)

跑完后会输出一张彩色终端报告,哪里烂、烂到什么程度,写得比老板骂人还清楚。

3. 能测哪些语言?

Go、JavaScript/TypeScript、Python、Java、C/C++ 都支持。
前端 node_modules、后端 vendor、编译产物统统帮你排除,省心。

4. 安装——两步到位

  • • 有 Go 环境:go install github.com/Done-0/fuck-u-code/cmd/fuck-u-code@latest

  • • 没 Go 环境:git clone … && go build …(README 里复制黏贴就行)

5. 上手——一条命令

fuck-u-code analyze ./my-project
默认给你前 5 个最烂的文件,每个文件列 5 个最臭的问题。
想细看?加 -v,想只看总结?加 -s,英文报告?-l en-US,全都有。

6. 实测截图(文字版)

我随手扔了一个遗留 Java 项目:

屎山指数:87 / 100
Top 3 恶臭文件:
 1. LegacyService.java (屎味 94)
    - 函数 avg() 复杂度 78,建议拆成 7 个
    - catch 块里直接 `e.printStackTrace()` 7 次
    ...
 2. ...

看到 87 分那一刻,我默默打开 IDE,开始还债。

7. 几个小技巧

  • • 前端项目:fuck-u-code analyze --exclude "**/build/**"

  • • 只看前 3 烂文件:-t 3

  • • CI 集成:把阈值设成 60,超过直接 Pipeline 挂掉,谁 push 谁修。

结尾:

烂代码不会自己变好,但至少有工具能告诉你它到底有多烂。
今晚就把 fuck-u-code 跑一遍,明早把报告甩到群里,让队友们一起笑着哭。
仓库地址放这儿了:https://github.com/Done-0/fuck-u-code
好用回来点个赞,不好用……就当给生活加点味道。

本文章已经生成可运行项目
`cd fuck-u-code && go build -o fuck-u-code ./cmd/fuck-u-code` 是一条组合命令,由 `cd` 命令和 `go build` 命令通过逻辑与运算符 `&&` 连接而成。下面分别解析这两个命令及其组合的作用: #### `cd fuck-u-code` `cd` 是一个用于切换当前工作目录的命令。`cd fuck-u-code` 表示将当前工作目录切换到名为 `fuck-u-code` 的目录中。例如,在执行此命令前,当前工作目录可能是 `/home/user/projects`,执行该命令后,如果 `fuck-u-code` 目录存在于 `/home/user/projects` 下,那么当前工作目录就会变为 `/home/user/projects/fuck-u-code`。 #### `go build -o fuck-u-code ./cmd/fuck-u-code` - `go build`:这是 Go 语言的一个命令,用于编译 Go 代码。它会将指定路径下的 Go 源文件编译成可执行文件。 - `-o fuck-u-code`:`-o` 是 `go build` 命令的一个选项,用于指定编译后生成的可执行文件的名称。这里指定生成的可执行文件名为 `fuck-u-code`。 - `./cmd/fuck-u-code`:这是指定要编译的 Go 代码所在的路径。`./` 表示当前目录,所以 `./cmd/fuck-u-code` 表示当前目录下的 `cmd/fuck-u-code` 目录中的 Go 代码会被编译。 #### `&&` 的作用 `&&` 是逻辑与运算符,它的作用是只有当 `&&` 左边的命令执行成功(返回状态码为 0)时,才会执行右边的命令。所以在 `cd fuck-u-code && go build -o fuck-u-code ./cmd/fuck-u-code` 中,只有当 `cd fuck-u-code` 命令成功将当前工作目录切换到 `fuck-u-code` 目录后,才会执行 `go build -o fuck-u-code ./cmd/fuck-u-code` 命令来编译代码。 下面是一个简单的使用示例: ```bash # 假设当前目录下有 fuck-u-code 目录 cd fuck-u-code # 检查是否成功切换目录 pwd # 执行编译命令 go build -o fuck-u-code ./cmd/fuck-u-code ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值