文章

Django - 專案規劃

在開始任何 Django 專案之前,良好的規劃是成功的關鍵。本節將教導如何進行專案需求分析、架構設計、模組分工與工具選擇,並提供 Django 專案的規劃實例。


課程目標

  1. 學會分析專案需求並轉化為技術規格。
  2. 瞭解 Django 專案架構規劃的要點。
  3. 學習專案分工與版本控制的最佳實踐。
  4. 熟悉專案規劃中常用的工具與方法。

課程內容

1. 需求分析與目標設定

步驟 1:瞭解需求

  • 業務需求:定義專案要解決的問題或滿足的需求。
    例:為一個博客系統提供文章管理和用戶互動功能。
  • 用戶需求:明確目標用戶以及他們的需求。
    例:用戶需要能夠撰寫、編輯和評論文章。

步驟 2:目標分解

將需求分解為具體功能:

  • 用戶系統:註冊、登入、權限管理。
  • 博客系統:文章 CRUD、分類、標籤。
  • 互動系統:評論、點讚。
  • 管理後台:管理用戶和文章。

2. Django 專案架構設計

步驟 1:模組設計

Django 遵循 MVC(模型-視圖-控制器)設計模式。根據功能劃分應用模組:

  • users:管理用戶身份與權限。
  • blog:處理文章相關操作。
  • comments:實現評論功能。
  • admin:處理後台管理邏輯。

步驟 2:資料庫設計

為每個功能設計數據表(模型):

  • User:用戶名、電子郵件、密碼、權限。
  • Post:標題、內容、作者、分類、發佈時間。
  • Comment:評論內容、所屬文章、作者、發佈時間。

步驟 3:技術選型

  • 資料庫:PostgreSQL(支持高效查詢與數據完整性)。
  • 前端框架:Vue 3 + Vite + TypeScript(增強用戶體驗)。
  • 消息代理:Redis(支持 Celery 任務調度)。

3. 專案分工與版本控制

步驟 1:分工策略

使用 ScrumKanban 方法進行任務管理:

  • Scrum:將工作分成短週期(如兩週)衝刺。
  • Kanban:使用看板視覺化每個任務的狀態。

步驟 2:版本控制

設置 Git 工作流程:

  • 主分支 (main):僅存放穩定的發佈版本。
  • 開發分支 (develop):存放最新的開發版本。
  • 功能分支 (feature/功能名):為每個新功能創建。
  • 修復分支 (bugfix/問題描述):用於修復問題。

Git 工作流程:

1
2
3
4
5
6
7
8
# 創建新分支
git checkout -b feature/user-authentication
# 提交代碼
git add .
git commit -m "完成用戶註冊功能"
# 合併到開發分支
git checkout develop
git merge feature/user-authentication

4. 工具與方法

步驟 1:需求管理工具

  • Trello:適合小型團隊,管理任務與進度。
  • Jira:適合大型團隊,支持多種任務管理方式。

步驟 2:文檔協作

  • NotionConfluence:用於記錄需求文檔、API 規範等。

步驟 3:持續集成與部署

  • GitHub ActionsGitLab CI/CD:配置自動化測試與部署。

5. 專案規劃實例

假設我們規劃一個 線上學習平台 的 Django 專案,需求如下:

  • 功能模組
    • 課程系統:課程發布、管理與搜索。
    • 用戶系統:學生和講師身份分離。
    • 付款系統:支付課程費用。
  • 資料庫設計
    • Course:名稱、描述、講師、價格、發布時間。
    • Enrollment:學生與課程的關係表。
  • 分工
    • A 開發用戶系統。
    • B 開發課程系統。
    • C 負責前端設計與後台整合。

課堂練習

  1. 使用需求分析工具,為一個簡單的任務管理系統撰寫需求文檔。
  2. 根據需求文檔,設計數據模型與功能模組分工。
  3. 建立 Git 儲存庫,並進行一次功能分支的提交與合併。

作業

  1. 為 Day 7 的 Blog 系統撰寫完整的專案規劃文檔。
  2. 設計 Blog 系統的 Git 工作流程,並模擬一次完整的開發過程(包含分支創建、提交與合併)。
  3. 使用工具(如 Trello 或 Jira)管理 Blog 系統的開發進度。

本文章以 CC BY 4.0 授權