CodeReview/README.md

243 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# XCodeReviewer - 智能代码审计系统
[![Build Status](https://img.shields.io/badge/build-passing-brightgreen)](https://github.com/lintsinghua/XCodeReviewer)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![React](https://img.shields.io/badge/React-18.0.0-blue.svg)](https://reactjs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.7.2-blue.svg)](https://www.typescriptlang.org/)
[![Vite](https://img.shields.io/badge/Vite-5.1.4-646CFF.svg)](https://vitejs.dev/)
**一个基于大语言模型LLM驱动的现代化代码审计平台为开发者提供智能、全面的代码质量分析和审查服务。**
## 📖 项目简介
XCodeReviewer 是一个智能代码审计系统,利用 Google Gemini AI 的强大能力,为代码仓库和代码片段提供深度的质量分析。系统不仅能够发现代码中的问题,还能提供详细的解释和修复建议,帮助开发者提升代码质量。
### 🎯 核心价值
- **AI 驱动分析**:基于 Google Gemini 的智能代码分析引擎
- **多维度评估**:覆盖安全性、性能、可维护性、代码风格等多个维度
- **可解释性**:提供 What-Why-How 模式的详细解释
- **实时分析**:支持即时代码片段分析和仓库级审计
- **现代化界面**:基于 React + TypeScript 的响应式 Web 界面
## ✨ 核心功能
### 🚀 项目管理
- **项目创建与管理**:支持 GitHub、GitLab 等代码仓库集成
- **多语言支持**:支持 JavaScript、TypeScript、Python、Java、Go、Rust 等主流编程语言
- **分支管理**:支持指定分支的代码审计
### ⚡ 即时分析
- **代码片段分析**:直接在 Web 界面中粘贴代码进行即时分析
- **多语言支持**:支持 10+ 种编程语言的代码分析
- **实时反馈**:快速获得代码质量评分和问题建议
### 🧠 智能审计
- **AI 驱动分析**:基于 Google Gemini 的深度代码理解
- **多维度检测**
- 🐛 **潜在 Bug**:发现逻辑错误和边界条件问题
- 🔒 **安全漏洞**:识别安全风险和漏洞
-**性能问题**:检测性能瓶颈和优化点
- 🎨 **代码风格**:确保代码符合最佳实践
- 🔧 **可维护性**:评估代码的可读性和可维护性
### 💡 可解释性分析
- **What-Why-How 模式**
- **What**:问题是什么
- **Why**:为什么是问题
- **How**:如何修复
- **代码定位**:精确定位问题代码行和列
- **修复建议**:提供具体的代码修复示例
### 📊 可视化报告
- **质量评分**0-100 分的综合质量评估
- **问题统计**:按类型和严重程度分类的问题统计
- **趋势分析**:代码质量变化趋势图表
- **性能指标**:系统性能监控和报告
## 🛠️ 技术栈
### 前端技术
- **React 18** - 现代化的用户界面框架
- **TypeScript** - 类型安全的 JavaScript 超集
- **Vite** - 快速的构建工具和开发服务器
- **Tailwind CSS** - 实用优先的 CSS 框架
- **Radix UI** - 无样式的 UI 组件库
- **Recharts** - 基于 React 的图表库
- **React Router** - 客户端路由管理
### AI 与后端
- **Google Gemini AI** - 大语言模型驱动的代码分析
- **Supabase** - 后端即服务BaaS平台
- **PostgreSQL** - 关系型数据库
- **Axios** - HTTP 客户端
### 开发工具
- **Biome** - 快速的代码格式化和检查工具
- **Ast-grep** - 基于 AST 的代码搜索工具
- **ESLint** - JavaScript 代码检查工具
## 🚀 快速开始
### 环境要求
- Node.js 18+
- pnpm 8+ (推荐) 或 npm/yarn
- Google Gemini API Key
### 安装步骤
1. **克隆项目**
```bash
git clone https://github.com/lintsinghua/XCodeReviewer.git
cd XCodeReviewer
```
2. **安装依赖**
```bash
pnpm install
# 或
npm install
```
3. **环境配置**
```bash
# 复制环境变量模板
cp .env.example .env
# 编辑 .env 文件,添加必要的环境变量
VITE_GEMINI_API_KEY=your_gemini_api_key_here
VITE_GEMINI_MODEL=gemini-2.5-flash
VITE_GEMINI_TIMEOUT_MS=25000
```
4. **启动开发服务器**
```bash
pnpm dev
# 或
npm run dev
```
5. **访问应用**
打开浏览器访问 [http://localhost:5173](http://localhost:5173)
### 构建生产版本
```bash
pnpm build
# 或
npm run build
```
### 预览生产版本
```bash
pnpm preview
# 或
npm run preview
```
## 📁 项目结构
```
XCodeReviewer/
├── src/
│ ├── components/ # React 组件
│ │ ├── common/ # 通用组件
│ │ ├── ui/ # UI 组件库
│ │ └── debug/ # 调试组件
│ ├── pages/ # 页面组件
│ ├── services/ # 服务层
│ ├── types/ # TypeScript 类型定义
│ ├── hooks/ # 自定义 React Hooks
│ ├── lib/ # 工具函数
│ └── db/ # 数据库配置
├── public/ # 静态资源
├── supabase/ # Supabase 配置
└── docs/ # 文档
```
## 🔧 配置说明
### 环境变量
| 变量名 | 描述 | 默认值 |
|--------|------|--------|
| `VITE_GEMINI_API_KEY` | Google Gemini API 密钥 | 必填 |
| `VITE_GEMINI_MODEL` | 使用的 Gemini 模型 | `gemini-2.5-flash` |
| `VITE_GEMINI_TIMEOUT_MS` | API 请求超时时间 | `25000` |
### 支持的编程语言
- JavaScript
- TypeScript
- Python
- Java
- Go
- Rust
- C++
- C#
- PHP
- Ruby
## 📊 功能特性
### 代码分析维度
1. **安全性分析**
- SQL 注入检测
- XSS 漏洞识别
- 敏感信息泄露
- 权限控制问题
2. **性能优化**
- 算法复杂度分析
- 内存泄漏检测
- 异步操作优化
- 资源使用效率
3. **代码质量**
- 代码重复检测
- 复杂度评估
- 命名规范检查
- 注释完整性
4. **最佳实践**
- 设计模式应用
- 错误处理规范
- 测试覆盖率
- 文档完整性
## 🤝 贡献指南
我们欢迎所有形式的贡献!请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解详细信息。
### 开发流程
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 📝 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详细信息。
## 🙏 致谢
- [Google Gemini AI](https://ai.google.dev/) - 提供强大的 AI 分析能力
- [Supabase](https://supabase.com/) - 提供后端服务支持
- [React](https://reactjs.org/) - 前端框架
- [Tailwind CSS](https://tailwindcss.com/) - CSS 框架
- [Radix UI](https://www.radix-ui.com/) - UI 组件库
## 📞 联系我们
- 项目链接:[https://github.com/lintsinghua/XCodeReviewer](https://github.com/lintsinghua/XCodeReviewer)
- 问题反馈:[Issues](https://github.com/lintsinghua/XCodeReviewer/issues)
---
⭐ 如果这个项目对您有帮助,请给我们一个 Star