You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/th/AGENTS.md

366 lines
22 KiB

# AGENTS.md
## ภาพรวมของโครงการ
Data Science for Beginners เป็นหลักสูตรที่ครอบคลุมระยะเวลา 10 สัปดาห์ รวม 20 บทเรียน ซึ่งสร้างขึ้นโดย Microsoft Azure Cloud Advocates โดยที่เก็บนี้เป็นแหล่งเรียนรู้ที่สอนแนวคิดพื้นฐานของวิทยาศาสตร์ข้อมูลผ่านบทเรียนที่เน้นโครงการ รวมถึง Jupyter notebooks, แบบทดสอบเชิงโต้ตอบ และการมอบหมายงานที่ต้องลงมือปฏิบัติ
**เทคโนโลยีหลัก:**
- **Jupyter Notebooks**: สื่อการเรียนรู้หลักที่ใช้ Python 3
- **Python Libraries**: pandas, numpy, matplotlib สำหรับการวิเคราะห์และการแสดงผลข้อมูล
- **Vue.js 2**: แอปพลิเคชันแบบทดสอบ (โฟลเดอร์ quiz-app)
- **Docsify**: ตัวสร้างเว็บไซต์เอกสารสำหรับการเข้าถึงแบบออฟไลน์
- **Node.js/npm**: การจัดการแพ็กเกจสำหรับส่วนประกอบ JavaScript
- **Markdown**: เนื้อหาบทเรียนและเอกสารทั้งหมด
**สถาปัตยกรรม:**
- ที่เก็บการศึกษาหลายภาษา พร้อมการแปลที่ครอบคลุม
- โครงสร้างแบ่งเป็นโมดูลบทเรียน (1-Introduction ถึง 6-Data-Science-In-Wild)
- แต่ละบทเรียนประกอบด้วย README, notebooks, การมอบหมายงาน และแบบทดสอบ
- แอปพลิเคชันแบบทดสอบ Vue.js แบบสแตนด์อโลนสำหรับการประเมินก่อน/หลังบทเรียน
- รองรับ GitHub Codespaces และ VS Code dev containers
## คำสั่งการตั้งค่า
### การตั้งค่าที่เก็บ
```bash
# Clone the repository (if not already cloned)
git clone https://github.com/microsoft/Data-Science-For-Beginners.git
cd Data-Science-For-Beginners
```
### การตั้งค่าสภาพแวดล้อม Python
```bash
# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install common data science libraries (no requirements.txt exists)
pip install jupyter pandas numpy matplotlib seaborn scikit-learn
```
### การตั้งค่าแอปพลิเคชันแบบทดสอบ
```bash
# Navigate to quiz app
cd quiz-app
# Install dependencies
npm install
# Start development server
npm run serve
# Build for production
npm run build
# Lint and fix files
npm run lint
```
### เซิร์ฟเวอร์เอกสาร Docsify
```bash
# Install Docsify globally
npm install -g docsify-cli
# Serve documentation locally
docsify serve
# Documentation will be available at localhost:3000
```
### การตั้งค่าโครงการการแสดงผล
สำหรับโครงการการแสดงผล เช่น meaningful-visualizations (บทเรียนที่ 13):
```bash
# Navigate to starter or solution folder
cd 3-Data-Visualization/13-meaningful-visualizations/starter
# Install dependencies
npm install
# Start development server
npm run serve
# Build for production
npm run build
# Lint files
npm run lint
```
## เวิร์กโฟลว์การพัฒนา
### การทำงานกับ Jupyter Notebooks
1. เริ่มต้น Jupyter ในโฟลเดอร์รากของที่เก็บ: `jupyter notebook`
2. ไปยังโฟลเดอร์บทเรียนที่ต้องการ
3. เปิดไฟล์ `.ipynb` เพื่อทำแบบฝึกหัด
4. Notebooks มีคำอธิบายและเซลล์โค้ดในตัว
5. ส่วนใหญ่ใช้ pandas, numpy และ matplotlib - ตรวจสอบให้แน่ใจว่าติดตั้งแล้ว
### โครงสร้างบทเรียน
แต่ละบทเรียนมักประกอบด้วย:
- `README.md` - เนื้อหาหลักของบทเรียนพร้อมทฤษฎีและตัวอย่าง
- `notebook.ipynb` - แบบฝึกหัด Jupyter notebook
- `assignment.ipynb` หรือ `assignment.md` - การมอบหมายงานเพื่อฝึกฝน
- โฟลเดอร์ `solution/` - โน้ตบุ๊กและโค้ดคำตอบ
- โฟลเดอร์ `images/` - วัสดุภาพประกอบ
### การพัฒนาแอปพลิเคชันแบบทดสอบ
- แอปพลิเคชัน Vue.js 2 พร้อม hot-reload ระหว่างการพัฒนา
- แบบทดสอบจัดเก็บใน `quiz-app/src/assets/translations/`
- แต่ละภาษามีโฟลเดอร์การแปลของตัวเอง (en, fr, es, ฯลฯ)
- หมายเลขแบบทดสอบเริ่มต้นที่ 0 และไปจนถึง 39 (รวม 40 แบบทดสอบ)
### การเพิ่มการแปลภาษา
- การแปลอยู่ในโฟลเดอร์ `translations/` ที่รากของที่เก็บ
- แต่ละภาษามีโครงสร้างบทเรียนที่สมบูรณ์เหมือนภาษาอังกฤษ
- การแปลอัตโนมัติผ่าน GitHub Actions (co-op-translator.yml)
## คำแนะนำการทดสอบ
### การทดสอบแอปพลิเคชันแบบทดสอบ
```bash
cd quiz-app
# Run lint checks
npm run lint
# Test build process
npm run build
# Manual testing: Start dev server and verify quiz functionality
npm run serve
```
### การทดสอบโน้ตบุ๊ก
- ไม่มีกรอบการทดสอบอัตโนมัติสำหรับโน้ตบุ๊ก
- การตรวจสอบด้วยตนเอง: รันเซลล์ทั้งหมดตามลำดับเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาด
- ตรวจสอบว่าไฟล์ข้อมูลสามารถเข้าถึงได้และผลลัพธ์ถูกสร้างขึ้นอย่างถูกต้อง
- ตรวจสอบว่าการแสดงผลภาพทำงานได้อย่างเหมาะสม
### การทดสอบเอกสาร
```bash
# Verify Docsify renders correctly
docsify serve
# Check for broken links manually by navigating through content
# Verify all lesson links work in the rendered documentation
```
### การตรวจสอบคุณภาพโค้ด
```bash
# Vue.js projects (quiz-app and visualization projects)
cd quiz-app # or visualization project folder
npm run lint
# Python notebooks - manual verification recommended
# Ensure imports work and cells execute without errors
```
## แนวทางการเขียนโค้ด
### Python (Jupyter Notebooks)
- ปฏิบัติตามแนวทางสไตล์ PEP 8 สำหรับโค้ด Python
- ใช้ชื่อตัวแปรที่ชัดเจนซึ่งอธิบายข้อมูลที่กำลังวิเคราะห์
- รวมเซลล์ markdown พร้อมคำอธิบายก่อนเซลล์โค้ด
- ให้เซลล์โค้ดมุ่งเน้นไปที่แนวคิดหรือการดำเนินการเดียว
- ใช้ pandas สำหรับการจัดการข้อมูล, matplotlib สำหรับการแสดงผล
- รูปแบบการนำเข้าทั่วไป:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
```
### JavaScript/Vue.js
- ปฏิบัติตามแนวทางสไตล์ Vue.js 2 และแนวปฏิบัติที่ดีที่สุด
- การกำหนดค่า ESLint ใน `quiz-app/package.json`
- ใช้ส่วนประกอบ Vue แบบไฟล์เดียว (.vue files)
- รักษาสถาปัตยกรรมที่เน้นส่วนประกอบ
- รัน `npm run lint` ก่อนการ commit การเปลี่ยนแปลง
### เอกสาร Markdown
- ใช้ลำดับชั้นหัวข้อที่ชัดเจน (# ## ### ฯลฯ)
- รวมบล็อกโค้ดพร้อมตัวระบุภาษา
- เพิ่มข้อความ alt สำหรับภาพ
- ลิงก์ไปยังบทเรียนและแหล่งข้อมูลที่เกี่ยวข้อง
- รักษาความยาวบรรทัดให้อ่านง่าย
### การจัดระเบียบไฟล์
- เนื้อหาบทเรียนในโฟลเดอร์ที่มีหมายเลข (01-defining-data-science ฯลฯ)
- คำตอบในโฟลเดอร์ย่อย `solution/` โดยเฉพาะ
- การแปลโครงสร้างเหมือนภาษาอังกฤษในโฟลเดอร์ `translations/`
- เก็บไฟล์ข้อมูลใน `data/` หรือโฟลเดอร์เฉพาะบทเรียน
## การสร้างและการปรับใช้
### การปรับใช้แอปพลิเคชันแบบทดสอบ
```bash
cd quiz-app
# Build production version
npm run build
# Output is in dist/ folder
# Deploy dist/ folder to static hosting (Azure Static Web Apps, Netlify, etc.)
```
### การปรับใช้ Azure Static Web Apps
แอป quiz-app สามารถปรับใช้กับ Azure Static Web Apps:
1. สร้างทรัพยากร Azure Static Web App
2. เชื่อมต่อกับที่เก็บ GitHub
3. กำหนดค่าการตั้งค่าการสร้าง:
- ตำแหน่งแอป: `quiz-app`
- ตำแหน่งผลลัพธ์: `dist`
4. GitHub Actions workflow จะปรับใช้อัตโนมัติเมื่อมีการ push
### เว็บไซต์เอกสาร
```bash
# Build PDF from Docsify (optional)
npm run convert
# Docsify documentation is served directly from markdown files
# No build step required for deployment
# Deploy repository to static hosting with Docsify
```
### GitHub Codespaces
- ที่เก็บรวมการกำหนดค่า dev container
- Codespaces ตั้งค่าสภาพแวดล้อม Python และ Node.js โดยอัตโนมัติ
- เปิดที่เก็บใน Codespace ผ่าน UI ของ GitHub
- การติดตั้งการพึ่งพาทั้งหมดจะดำเนินการโดยอัตโนมัติ
## แนวทางการส่ง Pull Request
### ก่อนการส่ง
```bash
# For Vue.js changes in quiz-app
cd quiz-app
npm run lint
npm run build
# Test changes locally
npm run serve
```
### รูปแบบชื่อ PR
- ใช้ชื่อที่ชัดเจนและอธิบายได้
- รูปแบบ: `[Component] คำอธิบายสั้นๆ`
- ตัวอย่าง:
- `[Lesson 7] แก้ไขข้อผิดพลาดการนำเข้า Python notebook`
- `[Quiz App] เพิ่มการแปลภาษาเยอรมัน`
- `[Docs] อัปเดต README พร้อมข้อกำหนดเบื้องต้นใหม่`
### การตรวจสอบที่จำเป็น
- ตรวจสอบให้แน่ใจว่าโค้ดทั้งหมดทำงานได้โดยไม่มีข้อผิดพลาด
- ยืนยันว่าโน้ตบุ๊กทำงานได้สมบูรณ์
- ยืนยันว่าแอป Vue.js สร้างสำเร็จ
- ตรวจสอบว่าเอกสารลิงก์ทำงานได้
- ทดสอบแอปพลิเคชันแบบทดสอบหากมีการแก้ไข
- ยืนยันว่าโครงสร้างการแปลยังคงสอดคล้องกัน
### แนวทางการมีส่วนร่วม
- ปฏิบัติตามสไตล์และรูปแบบโค้ดที่มีอยู่
- เพิ่มความคิดเห็นอธิบายสำหรับตรรกะที่ซับซ้อน
- อัปเดตเอกสารที่เกี่ยวข้อง
- ทดสอบการเปลี่ยนแปลงในโมดูลบทเรียนต่างๆ หากเกี่ยวข้อง
- อ่านไฟล์ CONTRIBUTING.md
## หมายเหตุเพิ่มเติม
### ไลบรารีที่ใช้บ่อย
- **pandas**: การจัดการและวิเคราะห์ข้อมูล
- **numpy**: การคำนวณเชิงตัวเลข
- **matplotlib**: การแสดงผลและการพล็อตข้อมูล
- **seaborn**: การแสดงผลข้อมูลเชิงสถิติ (บางบทเรียน)
- **scikit-learn**: การเรียนรู้ของเครื่อง (บทเรียนขั้นสูง)
### การทำงานกับไฟล์ข้อมูล
- ไฟล์ข้อมูลอยู่ในโฟลเดอร์ `data/` หรือไดเรกทอรีเฉพาะบทเรียน
- โน้ตบุ๊กส่วนใหญ่คาดหวังไฟล์ข้อมูลในเส้นทางสัมพัทธ์
- ไฟล์ CSV เป็นรูปแบบข้อมูลหลัก
- บางบทเรียนใช้ JSON สำหรับตัวอย่างข้อมูลที่ไม่ใช่เชิงสัมพันธ์
### การสนับสนุนหลายภาษา
- การแปลมากกว่า 40 ภาษา ผ่าน GitHub Actions อัตโนมัติ
- เวิร์กโฟลว์การแปลใน `.github/workflows/co-op-translator.yml`
- การแปลในโฟลเดอร์ `translations/` พร้อมรหัสภาษา
- การแปลแบบทดสอบใน `quiz-app/src/assets/translations/`
### ตัวเลือกสภาพแวดล้อมการพัฒนา
1. **การพัฒนาในเครื่อง**: ติดตั้ง Python, Jupyter, Node.js ในเครื่อง
2. **GitHub Codespaces**: สภาพแวดล้อมการพัฒนาแบบคลาวด์ทันที
3. **VS Code Dev Containers**: การพัฒนาบนคอนเทนเนอร์ในเครื่อง
4. **Binder**: เปิดโน้ตบุ๊กในคลาวด์ (หากกำหนดค่าไว้)
### แนวทางเนื้อหาบทเรียน
- แต่ละบทเรียนเป็นแบบสแตนด์อโลนแต่สร้างขึ้นจากแนวคิดก่อนหน้า
- แบบทดสอบก่อนบทเรียนทดสอบความรู้ก่อนหน้า
- แบบทดสอบหลังบทเรียนเสริมสร้างการเรียนรู้
- การมอบหมายงานให้โอกาสฝึกฝน
- Sketchnotes ให้สรุปภาพรวม
### การแก้ไขปัญหาทั่วไป
**ปัญหา Jupyter Kernel:**
```bash
# Ensure correct kernel is installed
python -m ipykernel install --user --name=datascience
```
**ข้อผิดพลาด npm Install:**
```bash
# Clear npm cache and retry
npm cache clean --force
rm -rf node_modules package-lock.json
npm install
```
**ข้อผิดพลาดการนำเข้าในโน้ตบุ๊ก:**
- ตรวจสอบให้แน่ใจว่าติดตั้งไลบรารีที่จำเป็นทั้งหมด
- ตรวจสอบความเข้ากันได้ของเวอร์ชัน Python (แนะนำ Python 3.7+)
- ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมเสมือนถูกเปิดใช้งาน
**Docsify ไม่โหลด:**
- ตรวจสอบว่าคุณกำลังให้บริการจากโฟลเดอร์รากของที่เก็บ
- ตรวจสอบว่า `index.html` มีอยู่
- ตรวจสอบการเข้าถึงเครือข่ายที่เหมาะสม (พอร์ต 3000)
### ข้อควรพิจารณาด้านประสิทธิภาพ
- ชุดข้อมูลขนาดใหญ่อาจใช้เวลาโหลดในโน้ตบุ๊ก
- การแสดงผลภาพอาจช้าสำหรับพล็อตที่ซับซ้อน
- เซิร์ฟเวอร์ dev ของ Vue.js เปิดใช้งาน hot-reload สำหรับการทำซ้ำอย่างรวดเร็ว
- การสร้างสำหรับการใช้งานจริงได้รับการปรับให้เหมาะสมและย่อขนาด
### หมายเหตุด้านความปลอดภัย
- ห้าม commit ข้อมูลหรือข้อมูลประจำตัวที่ละเอียดอ่อน
- ใช้ตัวแปรสภาพแวดล้อมสำหรับคีย์ API ในบทเรียนคลาวด์
- บทเรียนที่เกี่ยวข้องกับ Azure อาจต้องใช้ข้อมูลประจำตัวบัญชี Azure
- อัปเดตการพึ่งพาเพื่อรับแพตช์ความปลอดภัย
## การมีส่วนร่วมในการแปล
- การแปลอัตโนมัติจัดการผ่าน GitHub Actions
- ยินดีต้อนรับการแก้ไขด้วยตนเองเพื่อความถูกต้องของการแปล
- ปฏิบัติตามโครงสร้างโฟลเดอร์การแปลที่มีอยู่
- อัปเดตลิงก์แบบทดสอบให้รวมพารามิเตอร์ภาษา: `?loc=fr`
- ทดสอบบทเรียนที่แปลเพื่อให้แน่ใจว่าการแสดงผลถูกต้อง
## แหล่งข้อมูลที่เกี่ยวข้อง
- หลักสูตรหลัก: https://aka.ms/datascience-beginners
- Microsoft Learn: https://docs.microsoft.com/learn/
- Student Hub: https://docs.microsoft.com/learn/student-hub
- ฟอรัมสนทนา: https://github.com/microsoft/Data-Science-For-Beginners/discussions
- หลักสูตรอื่นๆ ของ Microsoft: ML for Beginners, AI for Beginners, Web Dev for Beginners
## การดูแลรักษาโครงการ
- อัปเดตเป็นประจำเพื่อให้เนื้อหาทันสมัย
- ยินดีต้อนรับการมีส่วนร่วมจากชุมชน
- ติดตามปัญหาบน GitHub
- PRs ตรวจสอบโดยผู้ดูแลหลักสูตร
- การตรวจสอบและอัปเดตเนื้อหารายเดือน
---
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์ที่มีความเชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้