iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

30天 Git 版本控制實戰筆記系列 第 28

Day 28:建立作品集 - 用 GitHub 展示你的實力

  • 分享至 

  • xImage
  •  

今日目標
• 打造吸引人的 GitHub 作品集
• 學習專案展示技巧
• 建立專業的 README
• 提升專案可見度


一、優秀作品集的要素
雇主/面試官看什麼?

  1. 程式碼品質 (40%)

    • 乾淨易讀
    • 有良好的結構
    • 遵循最佳實踐
  2. 專案完整度 (30%)

    • 功能完整
    • 有文件
    • 能實際運作
  3. 展示能力 (20%)

    • README 清楚
    • 有 Demo
    • 有截圖/影片
  4. 持續活躍 (10%)

    • 定期 commit
    • 有維護
    • 參與開源

理想的作品集:

  • 3-5 個高品質專案
  • 展示不同技能
  • 有實際應用價值

二、選擇展示的專案
優先選擇
✅ 完整的應用程式

  • Todo App、部落格、電商網站
  • 展示全端能力
  • 有前後端整合

✅ 解決實際問題的工具

  • 爬蟲、自動化工具
  • CLI 工具
  • 實用的套件/library

✅ 有創意的專案

  • 遊戲、互動網站
  • 資料視覺化
  • AI/ML 應用

✅ 開源貢獻

  • PR 到知名專案
  • 維護自己的 library
  • 幫助修復 bug
    避免展示
    ❌ 教學課程的作業
  • 大家都有的 Todo App
  • 跟著教學做的專案
  • 沒有任何修改的範例

❌ 未完成的專案

  • 只有幾個 commit
  • 功能不完整
  • 有明顯 bug

❌ 程式碼品質差

  • 沒有註解
  • 命名混亂
  • 結構雜亂

三、打造完美的 README
基本結構

專案名稱

簡短的一句話描述(讓人一眼就懂)

專案封面圖

🚀 Demo

線上 Demo | 影片介紹

✨ 功能特色

  • ✅ 功能 1:簡短描述
  • ✅ 功能 2:簡短描述
  • ✅ 功能 3:簡短描述

🛠️ 技術棧

  • 前端:React 18, TypeScript, Tailwind CSS
  • 後端:Node.js, Express, MongoDB
  • 其他:JWT, Socket.io, Docker

📦 安裝與執行

# Clone 專案
git clone https://github.com/username/project.git

# 安裝依賴
npm install

# 設定環境變數
cp .env.example .env
# 編輯 .env 填入必要資訊

# 執行開發伺服器
npm run dev
📸 截圖
首頁
 
功能頁面
 
🎯 專案動機
為什麼做這個專案?解決什麼問題?
🔑 核心功能說明
功能 1:詳細說明
...
功能 2:詳細說明
...
🤔 遇到的挑戰
挑戰 1
遇到什麼問題,如何解決
挑戰 2
遇到什麼問題,如何解決
🚧 未來計畫
•	[ ] 功能 A
•	[ ] 功能 B
•	[ ] 效能優化
📝 學到什麼
列出這個專案讓你學到的技術或概念
🤝 貢獻
歡迎貢獻!請閱讀 CONTRIBUTING.md
📄 授權
MIT License
👤 作者
你的名字
•	GitHub: @username
•	Email: your.email@example.com
•	Portfolio: your-portfolio.com

### **README 範例:Todo App**

```markdown
# ✅ Modern Todo App

一個功能完整的待辦事項應用,支援分類、優先級、提醒和多人協作

![Demo](demo.gif)

## 🚀 [線上 Demo](https://todo-app-demo.com)

## ✨ 特色功能

- 🎯 智能分類與標籤系統
- ⏰ 到期提醒與推送通知
- 👥 團隊協作與任務分配
- 📊 數據統計與視覺化
- 🌙 深色模式
- 📱 響應式設計(RWD)

## 🛠️ 技術棧

**前端**
- React 18 + TypeScript
- Redux Toolkit (狀態管理)
- Tailwind CSS (樣式)
- React Query (資料獲取)

**後端**
- Node.js + Express
- PostgreSQL (資料庫)
- Prisma (ORM)
- JWT (認證)

**DevOps**
- Docker
- GitHub Actions (CI/CD)
- Vercel (部署)

## 📦 快速開始

```bash
# 1. Clone 專案
git clone https://github.com/username/todo-app.git
cd todo-app

# 2. 安裝依賴
npm install

# 3. 設定環境變數
cp .env.example .env
# 編輯 .env:
# DATABASE_URL=postgresql://...
# JWT_SECRET=your-secret

# 4. 初始化資料庫
npm run db:migrate

# 5. 啟動開發伺服器
npm run dev
# 前端:http://localhost:3000
# 後端:http://localhost:5000
🎯 為什麼做這個專案?
現有的 Todo App 要嘛太簡單,要嘛太複雜。 我想做一個:
•	功能完整但不臃腫
•	介面美觀且易用
•	支援團隊協作
🤔 技術挑戰與解決
挑戰 1:即時協作同步
問題: 多人同時編輯任務,如何避免衝突? 解決: 使用 WebSocket + Operational Transformation 演算法
挑戰 2:效能優化
問題: 大量任務時頁面卡頓 解決:
•	實作虛擬滾動
•	使用 React.memo 避免不必要渲染
•	資料分頁載入
📊 專案統計
•	總代碼:~15,000 行
•	開發時間:3 個月
•	測試覆蓋率:85%
•	使用者數:500+
🔮 未來規劃
•	[ ] 語音輸入功能
•	[ ] AI 智能建議
•	[ ] 行動 App (React Native)
•	[ ] 整合 Google Calendar
📝 學到的東西
1.	TypeScript 進階應用
o	泛型的實際運用
o	類型推斷優化
2.	狀態管理最佳實踐
o	Redux Toolkit 的正確用法
o	何時用 Redux vs Context
3.	資料庫設計
o	正規化與反正規化的取捨
o	索引優化
4.	DevOps 實踐
o	Docker 容器化
o	CI/CD 自動化流程
🤝 貢獻指南
歡迎提交 Issue 和 Pull Request!
📄 授權
MIT License - 可自由使用和修改
👤 關於作者
嗨!我是 [你的名字],一個熱愛寫程式的開發者。
•	🌐 作品集網站
•	💼 LinkedIn
•	📧 your.email@example.com
喜歡這個專案?給個 ⭐ 吧!

---

## **四、視覺元素提升**

### **1. 專案截圖**

```bash
# 建立 screenshots 目錄
mkdir screenshots

# 截圖建議
✅ 首頁/主要功能(必要)
✅ 特色功能展示(2-3 張)
✅ 手機版本(如果有 RWD)
✅ 不同狀態(載入中、錯誤、成功)

# 工具推薦
- Chrome DevTools(內建)
- Screely(加漂亮背景)
- Carbon(程式碼截圖)
2. Demo GIF/影片
# GIF 製作工具
- LICEcap(免費,跨平台)
- Kap(macOS,推薦)
- ScreenToGif(Windows)

# 建議
- 長度:10-30 秒
- 展示核心功能
- 畫質清晰
- 檔案大小 < 10MB

# 影片製作
- Loom(快速錄製)
- OBS(專業)
- 上傳到 YouTube
3. Badges(徽章)
# 在 README 開頭加上

![Build](https://img.shields.io/github/actions/workflow/status/username/repo/ci.yml)
![License](https://img.shields.io/github/license/username/repo)
![Stars](https://img.shields.io/github/stars/username/repo)
![Version](https://img.shields.io/github/v/release/username/repo)

# 產生器
https://shields.io/
________________________________________
五、專案優化清單
程式碼層面
□ 移除所有 console.log
□ 清理註解掉的程式碼
□ 統一程式碼風格(ESLint + Prettier)
□ 移除未使用的 imports
□ 優化變數命名
□ 加入必要的註解
□ 移除測試用的假資料
檔案結構
project/
├── .github/
│   └── workflows/
│       └── ci.yml
├── src/
│   ├── components/
│   ├── pages/
│   ├── utils/
│   └── ...
├── public/
├── screenshots/
├── .env.example        # ✅ 必須有
├── .gitignore          # ✅ 必須有
├── README.md           # ✅ 必須有
├── LICENSE             # ✅ 建議有
├── CONTRIBUTING.md     # 如果接受貢獻
└── package.json
文件完整性
□ README.md(完整詳細)
□ .env.example(環境變數範本)
□ LICENSE(授權文件)
□ CONTRIBUTING.md(如果開源)
□ API 文件(如果有 API)
□ 註解清楚(關鍵邏輯)
________________________________________
六、提升專案可見度
1. GitHub Topics
在 Repo 設定中加入相關 Topics:

範例:Todo App
- react
- typescript
- todo-app
- productivity
- fullstack

範例:資料視覺化
- data-visualization
- d3js
- charts
- dashboard
2. Description
寫一個吸引人的簡短描述:

❌ 不好:A todo app
✅ 好的:🚀 Feature-rich todo app with real-time collaboration, 
         built with React & Node.js

要素:
- Emoji 吸睛
- 突出特色
- 提到技術棧
3. Website Link
如果有 Demo:
- 填入 Demo URL
- 確保可以訪問
- 最好有 HTTPS
4. Pinned Repositories
在個人首頁釘選最好的專案:
- 最多 6 個
- 選擇最完整的
- 展示不同技能
- 定期更新
________________________________________
七、作品集網站
簡單的 Portfolio 架構
# 首頁

## 關於我
簡短自我介紹(2-3 句)

## 技能
- 前端:React, Vue, TypeScript
- 後端:Node.js, Python, PostgreSQL
- 其他:Git, Docker, AWS

## 精選專案

### 專案 1
[截圖]
簡短描述
[GitHub] [Demo]

### 專案 2
[截圖]
簡短描述
[GitHub] [Demo]

### 專案 3
[截圖]
簡短描述
[GitHub] [Demo]

## 聯絡方式
- GitHub
- Email
- LinkedIn
快速建立 Portfolio
# 方法 1:使用 GitHub Pages
# 在 repo 啟用 GitHub Pages
# Settings → Pages → Source: main branch

# 方法 2:使用模板
# 推薦模板:
- https://github.com/bchiang7/v4 (Gatsby)
- https://github.com/cobidev/gatsby-simplefolio
- https://github.com/abhisheknaiidu/awesome-github-profile-readme

# 方法 3:使用現成服務
- https://portfolio.github.io/
- https://gitconnected.com/
________________________________________
八、專案展示技巧
說故事
不要只是列出功能,要講故事:

❌ 不好的說明:
"這是一個 Todo App,有增刪改查功能"

✅ 好的說明:
"發現現有的 Todo App 都無法滿足團隊協作需求,
於是我花了 3 個月,從零開始建立了這個支援
即時同步的協作 Todo App。

技術挑戰:
- 如何處理多人同時編輯?
  → 實作了 Operational Transformation
- 如何優化大量資料效能?
  → 使用虛擬滾動 + 分頁載入

結果:
- 500+ 活躍用戶
- 平均回應時間 < 100ms
- 測試覆蓋率 85%"
量化成果
用數字說話:

✅ 效能提升 50%
✅ 減少 80% 的重複程式碼
✅ 測試覆蓋率達到 90%
✅ 支援 10,000+ 並發用戶
✅ 獲得 500+ GitHub Stars
________________________________________
九、持續維護
# 保持活躍
□ 每週至少 3-5 commits
□ 定期更新專案
□ 回應 Issues
□ 審查 Pull Requests

# 綠色草皮(GitHub Contributions)
□ 持續貢獻
□ 參與開源專案
□ 寫技術文章(GitHub Gist)

# 展示學習能力
□ 學新技術時做小專案
□ 記錄學習過程
□ 分享踩雷經驗
________________________________________
十、作品集檢查清單
# 專案品質
□ 程式碼乾淨整齊
□ 功能完整可用
□ 沒有明顯 bug
□ 有錯誤處理

# 文件完整
□ README 詳細清楚
□ 有安裝說明
□ 有使用說明
□ 有截圖/Demo

# 視覺呈現
□ 有專案封面圖
□ 有功能截圖
□ 有 Demo GIF/影片
□ UI 設計美觀

# 技術展示
□ 使用現代技術
□ 有最佳實踐
□ 有測試
□ 有 CI/CD

# 可訪問性
□ Demo 網站可訪問
□ GitHub Repo 是 Public
□ 沒有敏感資訊
□ 環境變數有範本

# 個人品牌
□ 統一的命名風格
□ 專業的描述
□ 完整的個人資訊
□ 有聯絡方式
________________________________________
今日重點回顧
✅ 核心要點:

1. 專案選擇
   - 3-5 個高品質專案
   - 展示不同技能
   - 功能完整

2. README 撰寫
   - 清楚的結構
   - 詳細的說明
   - 視覺化呈現

3. 視覺優化
   - 截圖
   - GIF/影片
   - Badges

4. 持續維護
   - 定期更新
   - 保持活躍
   - 回應互動

記住:
質量 > 數量
完整 > 半成品
展示 > 隱藏
________________________________________
立即行動
# 今天就做(2 小時)
□ 挑選 3 個要展示的專案
□ 為每個專案建立完整 README
□ 加入截圖和 Demo

# 本週完成(5 小時)
□ 清理程式碼
□ 補充文件
□ 錄製 Demo 影片
□ Pinned repositories
□ 建立 Portfolio 網站(可選)

# README 模板(複製使用)
cat > README.md << 'EOF'
# 專案名稱

一句話描述

![Demo](demo.gif)

## 🚀 Demo
[線上 Demo](url)

## ✨ 功能特色
- 功能 1
- 功能 2

## 🛠️ 技術棧
列出技術

## 📦 安裝
```bash
安裝步驟
📸 截圖
放截圖
👤 作者
你的資訊 EOF

---

## **範例參考**

優秀的 GitHub Profiles:
•	https://github.com/bchiang7
•	https://github.com/abhisheknaiidu
•	https://github.com/anuraghazra
優秀的專案 README:
•	https://github.com/sindresorhus/awesome
•	https://github.com/trekhleb/javascript-algorithms
•	https://github.com/kamranahmedse/developer-roadmap
Portfolio 靈感:
•	https://brittanychiang.com/
•	https://jacekjeznach.com/
•	https://mattfarley.ca/


上一篇
Day 27:疑難雜症解決 - Git 問題終結者
下一篇
Day 29:GitHub Profile 優化 - 打造亮眼的個人首頁
系列文
30天 Git 版本控制實戰筆記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言