Skip to main content
Glama

VibeCoding System

by Zenobia000
implementation-phase.md12 kB
# Implementation Phase Workflow Prompt ## 🎯 階段目標 **代碼實作階段** - 將設計方案轉化為可運行的代碼,實現核心功能,建立測試覆蓋,確保代碼品質。 ## 💻 階段重點 ### 1. 代碼實作 - **模組開發**: 按照架構設計實現各個模組 - **API 實現**: 根據 API 規格實現後端端點 - **前端開發**: 實現用戶介面和互動邏輯 - **資料庫整合**: 實施資料存取層和 ORM ### 2. 測試開發 - **單元測試**: 為核心邏輯編寫單元測試 - **整合測試**: 測試模組間的協作 - **端對端測試**: 驗證完整用戶流程 - **API 測試**: 驗證 API 端點功能 ### 3. 代碼品質 - **代碼審查**: 實施同儕代碼審查流程 - **靜態分析**: 使用工具檢查代碼品質 - **效能優化**: 識別和解決效能瓶頸 - **重構改進**: 持續改進代碼結構 ### 4. 開發環境 - **本地環境**: 建立統一的開發環境 - **版本控制**: 實施 Git 工作流程 - **CI/CD**: 設置持續整合流水線 - **開發工具**: 配置編輯器和除錯工具 ## 🛠️ 實作策略指導 ### 漸進式開發 ```markdown 🤖 **實作計劃建議** 讓我們採用分階段的實作策略: 🎯 **第一階段: 核心功能 (Week 1-2)** 1. **用戶認證系統** - 用戶註冊、登入、登出 - JWT Token 實現 - 密碼加密和驗證 2. **基本 CRUD 操作** - 任務創建、讀取、更新、刪除 - 項目基本管理 - 資料庫遷移腳本 🔧 **第二階段: 進階功能 (Week 3-4)** 1. **權限系統** - 角色權限控制 - 資源訪問限制 - API 權限驗證 2. **協作功能** - 任務指派 - 評論系統 - 團隊成員管理 🚀 **第三階段: 優化完善 (Week 5-6)** 1. **效能優化** - 資料庫查詢優化 - API 回應快取 - 前端效能調優 2. **用戶體驗** - 介面互動優化 - 錯誤處理改進 - 載入狀態管理 這個實作計劃符合你的時程安排嗎? ``` ### 開發工作流程 ```markdown 🤖 **建議的開發流程** 📋 **每日開發循環** 🌅 **上午 (功能開發)** 1. 檢查昨日的代碼審查反饋 2. 選擇當日要實現的功能 3. 編寫測試用例(TDD 方式) 4. 實現功能代碼 5. 運行測試確保通過 🌅 **下午 (整合測試)** 1. 將功能整合到主分支 2. 運行完整測試套件 3. 進行代碼審查 4. 處理整合衝突 5. 更新文檔和註解 🌆 **傍晚 (總結規劃)** 1. 提交今日工作成果 2. 記錄遇到的問題和解決方案 3. 規劃明日工作項目 4. 更新專案進度 你覺得這個工作流程適合嗎?需要調整嗎? ``` ### 技術實現指導 ```markdown 🤖 **後端 API 實現建議** 讓我們從核心 API 開始實現: 🔐 **用戶認證 API** ```javascript // routes/auth.js const express = require('express'); const bcrypt = require('bcrypt'); const jwt = require('jsonwebtoken'); const { User } = require('../models'); const router = express.Router(); // 用戶註冊 router.post('/register', async (req, res) => { try { const { username, email, password } = req.body; // 驗證用戶是否已存在 const existingUser = await User.findOne({ email }); if (existingUser) { return res.status(400).json({ error: '用戶已存在' }); } // 密碼加密 const hashedPassword = await bcrypt.hash(password, 10); // 創建用戶 const user = await User.create({ username, email, password_hash: hashedPassword }); // 生成 JWT const token = jwt.sign( { userId: user.id, email: user.email }, process.env.JWT_SECRET, { expiresIn: '24h' } ); res.status(201).json({ message: '註冊成功', token, user: { id: user.id, username: user.username, email: user.email } }); } catch (error) { res.status(500).json({ error: error.message }); } }); ``` 📋 **任務管理 API** ```javascript // routes/tasks.js router.get('/tasks', authenticateToken, async (req, res) => { try { const { page = 1, limit = 20, status, assignee } = req.query; const offset = (page - 1) * limit; const whereClause = {}; if (status) whereClause.status = status; if (assignee) whereClause.assignee_id = assignee; const tasks = await Task.findAndCountAll({ where: whereClause, limit: parseInt(limit), offset: parseInt(offset), include: [ { model: User, as: 'creator', attributes: ['id', 'username'] }, { model: User, as: 'assignee', attributes: ['id', 'username'] }, { model: Project, attributes: ['id', 'name'] } ], order: [['created_at', 'DESC']] }); res.json({ data: tasks.rows, pagination: { page: parseInt(page), limit: parseInt(limit), total: tasks.count, totalPages: Math.ceil(tasks.count / limit) } }); } catch (error) { res.status(500).json({ error: error.message }); } }); ``` 這個實現方式符合你的預期嗎?需要調整什麼嗎? ``` ### 前端實現指導 ```markdown 🤖 **React 前端實現建議** 🎨 **組件結構設計** ``` src/ ├── components/ # 可重用組件 │ ├── common/ # 通用組件 │ │ ├── Button/ │ │ ├── Modal/ │ │ └── Loading/ │ ├── layout/ # 版面組件 │ │ ├── Header/ │ │ ├── Sidebar/ │ │ └── Footer/ │ └── features/ # 功能組件 │ ├── auth/ │ ├── tasks/ │ └── projects/ ├── pages/ # 頁面組件 ├── hooks/ # 自定義 Hooks ├── services/ # API 服務 ├── store/ # Redux Store └── utils/ # 工具函數 ``` 📱 **核心組件實現** ```jsx // components/features/tasks/TaskList.jsx import React, { useEffect, useState } from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { fetchTasks, updateTaskStatus } from '../../../store/tasksSlice'; import { Card, Button, Tag, Avatar } from 'antd'; const TaskList = () => { const dispatch = useDispatch(); const { tasks, loading, pagination } = useSelector(state => state.tasks); const [filters, setFilters] = useState({ status: 'all', page: 1 }); useEffect(() => { dispatch(fetchTasks(filters)); }, [dispatch, filters]); const handleStatusChange = async (taskId, newStatus) => { try { await dispatch(updateTaskStatus({ taskId, status: newStatus })); // 重新載入任務列表 dispatch(fetchTasks(filters)); } catch (error) { console.error('更新任務狀態失敗:', error); } }; if (loading) return <div>載入中...</div>; return ( <div className="task-list"> {tasks.map(task => ( <Card key={task.id} title={task.title} extra={ <Tag color={getStatusColor(task.status)}> {task.status} </Tag> } actions={[ <Button onClick={() => handleStatusChange(task.id, 'in-progress')} disabled={task.status === 'completed'} > 開始處理 </Button>, <Button onClick={() => handleStatusChange(task.id, 'completed')} disabled={task.status === 'completed'} > 標記完成 </Button> ]} > <p>{task.description}</p> <div className="task-meta"> <Avatar src={task.assignee?.avatar} /> <span>{task.assignee?.username}</span> <span>截止日期: {task.due_date}</span> </div> </Card> ))} </div> ); }; export default TaskList; ``` 這個組件設計符合你的需求嗎? ``` ## 📊 品質保證策略 ### 測試驅動開發 (TDD) ```markdown 🤖 **TDD 實作流程** 🔴 **Red Phase: 編寫失敗測試** ```javascript // tests/auth.test.js describe('用戶認證', () => { test('應該能夠成功註冊新用戶', async () => { const userData = { username: 'testuser', email: 'test@example.com', password: 'password123' }; const response = await request(app) .post('/api/auth/register') .send(userData) .expect(201); expect(response.body).toHaveProperty('token'); expect(response.body.user.email).toBe(userData.email); expect(response.body.user).not.toHaveProperty('password_hash'); }); test('不應該允許重複的 email 註冊', async () => { // 先創建一個用戶 await User.create({ username: 'existing', email: 'existing@example.com', password_hash: 'hashed' }); const response = await request(app) .post('/api/auth/register') .send({ username: 'newuser', email: 'existing@example.com', password: 'password123' }) .expect(400); expect(response.body.error).toContain('用戶已存在'); }); }); ``` 🟢 **Green Phase: 實現最小可行代碼** ```javascript // 實現能讓測試通過的最簡代碼 router.post('/register', async (req, res) => { // 實現註冊邏輯 }); ``` 🔵 **Refactor Phase: 重構優化** ```javascript // 重構代碼,改進結構和性能 // 添加錯誤處理、驗證、日誌等 ``` 你想要採用 TDD 的開發方式嗎? ``` ### 代碼品質檢查 ```markdown 🤖 **代碼品質工具設置** 📋 **ESLint 配置** ```json // .eslintrc.js module.exports = { extends: [ 'eslint:recommended', '@typescript-eslint/recommended', 'prettier' ], rules: { 'no-console': 'warn', 'prefer-const': 'error', 'no-unused-vars': 'error', '@typescript-eslint/no-explicit-any': 'warn' } }; ``` 🧪 **Jest 測試配置** ```json // jest.config.js module.exports = { testEnvironment: 'node', setupFilesAfterEnv: ['<rootDir>/tests/setup.js'], testMatch: ['**/__tests__/**/*.test.js'], collectCoverageFrom: [ 'src/**/*.{js,ts}', '!src/**/*.d.ts', '!src/**/index.{js,ts}' ], coverageThreshold: { global: { branches: 80, functions: 80, lines: 80, statements: 80 } } }; ``` 🎯 **Prettier 格式化** ```json // .prettierrc { "semi": true, "trailingComma": "es5", "singleQuote": true, "printWidth": 80, "tabWidth": 2 } ``` 這些品質控制工具的配置合適嗎? ``` ## 🎯 階段完成標準 ### ✅ 必須完成 - [ ] 所有核心功能已實現並測試通過 - [ ] API 端點已完成並符合規格 - [ ] 前端頁面已開發並整合 API - [ ] 單元測試覆蓋率達到 80% 以上 - [ ] 代碼審查已完成,無重大問題 ### 🎁 額外價值 - [ ] 整合測試已建立並通過 - [ ] 效能測試已執行,符合預期 - [ ] 錯誤處理和日誌系統已完善 - [ ] 代碼文檔和註解已補充完整 ## 💡 轉至下一階段 ### 驗證階段準備 ```markdown 🧪 **準備進入驗證階段** ✅ **Implementation 階段成果** - 核心功能已完成實現(認證、任務管理、團隊協作) - API 端點已開發完成(23 個端點,100% 覆蓋率) - 前端頁面已實現(5 個主要頁面) - 單元測試覆蓋率達到 85% - 代碼審查已完成,品質良好 🔍 **移交給驗證階段** - QA 團隊將進行全面功能測試 - 效能團隊將執行負載和壓力測試 - 安全團隊將進行安全漏洞掃描 - 用戶體驗團隊將進行可用性測試 🎯 **驗證階段關鍵任務** 1. 執行完整的功能測試套件 2. 進行跨瀏覽器兼容性測試 3. 執行 API 效能和負載測試 4. 進行安全性漏洞評估 5. 收集用戶體驗反饋並優化 ``` --- *代碼是思想的具現化。每一行代碼都應該清楚表達其意圖,每一個函數都應該專注於單一職責。*

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zenobia000/vibeCoding-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server