RezaSi/go-interview-practice

GitHub: RezaSi/go-interview-practice

这是一个面向Go开发者的交互式面试练习平台,通过30多个编程挑战、自动化测试和AI面试模拟帮助用户准备技术面试。

Stars: 2315 | Forks: 1091

# Go 面试练习
[![GitHub Stars](https://img.shields.io/github/stars/RezaSi/go-interview-practice?style=for-the-badge&logo=github&color=yellow)](https://github.com/RezaSi/go-interview-practice/stargazers) [![Go Version](https://img.shields.io/badge/Go-1.19+-00ADD8?style=for-the-badge&logo=go)](https://golang.org/) [![Challenges](https://img.shields.io/badge/Challenges-30+-brightgreen?style=for-the-badge&logo=checkmarx)](https://github.com/RezaSi/go-interview-practice) RezaSi%2Fgo-interview-practice | Trendshift
欢迎来到 **Go 面试练习** 仓库!通过我们的交互式编程挑战,掌握 Go 编程并在技术面试中脱颖而出。

Go Interview Practice Banner

**Go 面试练习现已加入 [ProdPath](https://prodpath.dev)** — 这是一个通过云实验室、系统设计和 AI 指导帮助你成为生产级开发者的完整平台。 我们的交互式平台已上线:**[app.gointerview.dev](https://app.gointerview.dev/)** 🎉 探索挑战、追踪你的进度,并通过 AI 驱动的指导提升你的 Go 技能。
Start Practicing Now
## 可视化概览 ### 交互式挑战平台 我们全面的 Web 界面提供了你练习和掌握 Go 编程所需的一切:

项目简介

### 代码与测试体验
Go Interview Practice Web UI - challenge Go Interview Practice Web UI - result
交互式代码编辑器
编写、编辑和测试你的 Go 解决方案
支持语法高亮和实时反馈
即时结果与分析
获取即时测试结果、性能指标
和详细的执行分析
### 竞技排行榜
Go Interview Practice - Main Leaderboard

Beautiful leaderboard showcasing top developers with challenge completion indicators, rankings, and achievements

## 🏆 前 10 名排行榜 我们最出色的 Go 开发者,按完成的挑战数量排名: | 🏅 | 开发者 | 已解决 | 完成率 | 成就 | 进度 | |:---:|:---:|:---:|:---:|:---:|:---| | 🥇 |
**[PolinaSvet](https://github.com/PolinaSvet)** | **30**/30 | **100.0%** | 大师 | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ | | 🥈 |
**[nzamulov](https://github.com/nzamulov)** | **30**/30 | **100.0%** | 大师 | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ | | 🥉 |
**[odelbos](https://github.com/odelbos)** | **30**/30 | **100.0%** | 大师 | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ | | 4 |
**[mvsouza](https://github.com/mvsouza)** | **29**/30 | **96.7%** | 大师 | ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✅✅✅✅✅✅✅✅✅✅✅✅✅✅⬜ | | 5 |
**[PopovMarko](https://github.com/PopovMarko)** | **27**/30 | **90.0%** | 大师 | ✅✅✅✅✅✅✅✅✅✅⬜✅✅✅⬜
✅✅✅✅✅✅✅✅✅⬜✅✅✅✅✅ | | 6 |
**[mick4711](https://github.com/mick4711)** | **23**/30 | **76.7%** | 大师 | ✅✅✅✅✅✅✅✅✅✅⬜⬜✅✅⬜
✅✅✅✅✅✅✅✅⬜⬜✅✅⬜⬜✅ | | 7 |
**[Gandook](https://github.com/Gandook)** | **22**/30 | **73.3%** | 大师 | ✅✅✅✅✅✅✅✅✅✅⬜⬜✅⬜⬜
⬜✅✅✅⬜✅✅✅✅✅✅✅⬜⬜✅ | | 8 |
**[imankhodadi](https://github.com/imankhodadi)** | **22**/30 | **73.3%** | 大师 | ✅✅✅✅✅✅✅⬜⬜✅✅⬜✅⬜✅
✅✅✅✅✅✅✅⬜✅✅⬜✅⬜⬜✅ | | 9 |
**[y1hao](https://github.com/y1hao)** | **21**/30 | **70.0%** | 大师 | ✅✅✅✅✅✅✅✅⬜✅⬜⬜✅✅⬜
✅✅✅✅✅✅✅✅⬜⬜⬜✅⬜⬜✅ | | 10 |
**[JackDalberg](https://github.com/JackDalberg)** | **20**/30 | **66.7%** | 大师 | ✅✅✅✅✅✅✅✅⬜✅⬜⬜✅✅⬜
⬜✅✅✅✅✅✅✅⬜⬜⬜✅⬜⬜✅ |
✅ 已完成 • ⬜ 未完成 *全部 30 个挑战分两行显示*
*根据 30 个可用挑战自动更新* ### 挑战进度概览 - **可用挑战总数**: 30 - **活跃开发者**: 347 - **最多挑战完成数**: 30,由 PolinaSvet 完成 ## 🚀 包挑战排行榜 通过动手挑战掌握 Go 包!每个包都提供结构化的学习路径和真实场景。 | 🏅 | 开发者 | 总完成数 | 包数量 | 成就 | 挑战分布 | |:---:|:---:|:---:|:---:|:---:|:---| | 🥇 |
**[odelbos](https://github.com/odelbos)** | **17** | **4** 个包 | 🔥 包大师 | **cobra**: 4 • **fiber**: 4 • **gin**: 4 • **gorm**: 5 | | 🥈 |
**[PolinaSvet](https://github.com/PolinaSvet)** | **8** | **2** 个包 | 💪 包高级 | **cobra**: 4 • **gin**: 4 | | 🥉 |
**[RezaSi](https://github.com/RezaSi)** | **7** | **6** 个包 | 💪 包高级 | **cobra**: 1 • **echo**: 1 • **fiber**: 1 • **gin**: 1 • **gorm**: 1 • **mongodb**: 2 | | 4 |
**[imankhodadi](https://github.com/imankhodadi)** | **6** | **2** 个包 | 💪 包高级 | **gin**: 3 • **gorm**: 3 | | 5 |
**[22-7-co](https://github.com/22-7-co)** | **5** | **2** 个包 | 💪 包高级 | **gin**: 4 • **gorm**: 1 | | 6 |
**[Mxn-ptr](https://github.com/Mxn-ptr)** | **5** | **2** 个包 | 💪 包高级 | **gin**: 4 • **gorm**: 1 | | 7 |
**[Onkar-25](https://github.com/Onkar-25)** | **5** | **3** 个包 | 💪 包高级 | **gin**: 2 • **gorm**: 2 • **mongodb**: 1 | | 8 |
**[ItalloMangueBoy](https://github.com/ItalloMangueBoy)** | **4** | **1** 个包 | 🚀 包中级 | **gin**: 4 | | 9 |
**[father-frog](https://github.com/father-frog)** | **4** | **1** 个包 | 🚀 包中级 | **gin**: 4 | | 10 |
**[q1ngy](https://github.com/q1ngy)** | **4** | **1** 个包 | 🚀 包中级 | **gin**: 4 |
🚀 **包挑战** - 通过实用的真实场景学习 Go 包
### 📦 各包进度 #### Cobra 包 | 排名 | 开发者 | 已完成 | 进度 | |:---:|:---:|:---:|:---| | 🥇 | **[PolinaSvet](https://github.com/PolinaSvet)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 🥈 | **[odelbos](https://github.com/odelbos)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 🥉 | **[ashwinipatankar](https://github.com/ashwinipatankar)** | 3/4 | 🟩🟩🟩🟩🟩🟩🟩⬜⬜⬜ 75% | | 4 | **[RezaSi](https://github.com/RezaSi)** | 1/4 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25% | #### Echo 包 | 排名 | 开发者 | 已完成 | 进度 | |:---:|:---:|:---:|:---| | 🥇 | **[RezaSi](https://github.com/RezaSi)** | 1/4 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25% | #### Fiber 包 | 排名 | 开发者 | 已完成 | 进度 | |:---:|:---:|:---:|:---| | 🥇 | **[odelbos](https://github.com/odelbos)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 🥈 | **[0xSangeet](https://github.com/0xSangeet)** | 1/4 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25% | | 🥉 | **[RezaSi](https://github.com/RezaSi)** | 1/4 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25% | #### Gin 包 | 排名 | 开发者 | 已完成 | 进度 | |:---:|:---:|:---:|:---| | 🥇 | **[22-7-co](https://github.com/22-7-co)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 🥈 | **[ItalloMangueBoy](https://github.com/ItalloMangueBoy)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 🥉 | **[Mxn-ptr](https://github.com/Mxn-ptr)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 4 | **[PolinaSvet](https://github.com/PolinaSvet)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 5 | **[father-frog](https://github.com/father-frog)** | 4/4 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | #### Gorm 包 | 排名 | 开发者 | 已完成 | 进度 | |:---:|:---:|:---:|:---| | 🥇 | **[odelbos](https://github.com/odelbos)** | 5/5 | 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 100% | | 🥈 | **[aswinsreeraj](https://github.com/aswinsreeraj)** | 3/5 | 🟩🟩🟩🟩🟩🟩⬜⬜⬜⬜ 60% | | 🥉 | **[imankhodadi](https://github.com/imankhodadi)** | 3/5 | 🟩🟩🟩🟩🟩🟩⬜⬜⬜⬜ 60% | | 4 | **[Onkar-25](https://github.com/Onkar-25)** | 2/5 | 🟩🟩🟩🟩⬜⬜⬜⬜⬜⬜ 40% | | 5 | **[grozdovk](https://github.com/grozdovk)** | 2/5 | 🟩🟩🟩🟩⬜⬜⬜⬜⬜⬜ 40% | #### Mongodb 包 | 排名 | 开发者 | 已完成 | 进度 | |:---:|:---:|:---:|:---| | 🥇 | **[RezaSi](https://github.com/RezaSi)** | 2/5 | 🟩🟩🟩🟩⬜⬜⬜⬜⬜⬜ 40% | | 🥈 | **[Onkar-25](https://github.com/Onkar-25)** | 1/5 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 20% | | 🥉 | **[maket12](https://github.com/maket12)** | 1/5 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 20% | ### 📊 包挑战统计 - **可用包挑战总数**: 26 - **活跃包学习者**: 47 - **可用包**: 6 个(cobra、echo、fiber、gin、gorm、mongodb) - **最多包挑战完成数**: 17,由 odelbos 完成 ## 核心功能 - **交互式 Web UI** - 在浏览器中编写、测试和提交解决方案 - **自动化测试** - 获取关于你解决方案的即时反馈 - **自动化排行榜** - 解决方案自动评分和排名 - **个人资料徽章** - 适用于 GitHub 个人资料、LinkedIn 和投资组合的精美自动更新徽章 - **性能分析** - 追踪解决方案的执行时间和内存使用情况 - **全面学习** - 每个挑战都包含详细的解释和资源 - **渐进式难度** - 从 Go 基础概念到高级内容 - **AI 面试模拟** - 通过 AI 驱动的代码审查和面试官问题进行练习 ## AI 面试模拟 通过我们的 AI 驱动功能,将你的编程练习转化为真实的面试场景: **实时代码审查** - 获取关于代码质量、复杂度分析和改进建议的即时反馈 **动态面试问题** - AI 根据你的解决方案方法生成后续问题 **渐进式提示** - 4 级提示系统,从微妙提示到详细解释 **多 LLM 支持** - 支持 Gemini(推荐)、OpenAI 或 Claude 只需添加你的 API 键,即可体验根据你的代码自适应的面试式反馈,并通过真实的技术问题挑战你。 ### AI 面试体验
AI Code Review - Real-time feedback and analysis AI Interview Questions - Dynamic follow-up questions
AI 代码审查
从 AI 获取关于代码质量、复杂度分析
和改进建议的即时反馈
动态面试问题
AI 根据你的解决方案方法和编码模式
生成后续问题
## 快速开始 ### 方式 1:Web UI(推荐) ``` # 1. 首先,在 GitHub 上 fork 此仓库 # 前往 https://github.com/RezaSi/go-interview-practice # 点击右上角的 "Fork" 按钮 # 2. 克隆你 fork 的仓库(将 'yourusername' 替换为你的 GitHub 用户名) git clone https://github.com/yourusername/go-interview-practice.git cd go-interview-practice # 3. 启动 web 界面 cd web-ui go run main.go # 4. 在浏览器中打开 http://localhost:8080 # 5. 可选:启用 AI 功能(推荐)🤖 # 添加你的免费 Gemini API key 以启用 AI 面试模拟 echo "AI_PROVIDER=gemini" > web-ui/.env echo "GEMINI_API_KEY=your_actual_api_key_here" >> web-ui/.env # 获取免费 API key:https://makersuite.google.com/app/apikey # 注意:.env 文件出于安全考虑已被 git 自动忽略 ``` **解决挑战并提交解决方案后:** - 你的解决方案将自动保存到本地仓库 - 按照提供的 Git 命令提交并推送你的更改 - 创建 pull request 将你的解决方案贡献回主项目 ### 方式 2:GitHub Codespaces(云开发 + Web UI) 想要无需本地配置即可立即开始?使用 GitHub Codespaces! 1. **Fork 此仓库**(如果尚未 Fork) 2. **在 Codespaces 中打开**:点击你 Fork 仓库上的绿色 "Code" 按钮,然后选择 "Codespaces" 标签 3. **创建 Codespace**:点击 "Create codespace on main" 4. **启动 Web UI**:Codespace 加载完成后,打开终端并运行: cd web-ui go run main.go 5. **可选:启用 AI 功能**:添加你的 Gemini API 密钥: echo "AI_PROVIDER=gemini" > .env echo "GEMINI_API_KEY=your_actual_api_key_here" >> .env 6. **访问 Web UI**:点击底部面板中的 "Ports" 标签,然后点击 8080 端口旁边的 "Open in Browser" 按钮 **使用 Codespaces 的优势:** - 无需本地配置 - 预配置的 Go 环境 - 浏览器内完整的 VS Code 体验 - Web UI 自动端口转发 - 所有依赖项已预安装 - 任何带浏览器的设备均可使用