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

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

คำสั่งการตั้งค่า

การตั้งค่าที่เก็บ

# Clone the repository (if not already cloned)
git clone https://github.com/microsoft/Data-Science-For-Beginners.git
cd Data-Science-For-Beginners

การตั้งค่าสภาพแวดล้อม Python

# 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

การตั้งค่าแอปพลิเคชันแบบทดสอบ

# 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

# Install Docsify globally
npm install -g docsify-cli

# Serve documentation locally
docsify serve

# Documentation will be available at localhost:3000

การตั้งค่าโครงการการแสดงผล

สำหรับโครงการการแสดงผล เช่น meaningful-visualizations (บทเรียนที่ 13):

# 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)

คำแนะนำการทดสอบ

การทดสอบแอปพลิเคชันแบบทดสอบ

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

การทดสอบโน้ตบุ๊ก

  • ไม่มีกรอบการทดสอบอัตโนมัติสำหรับโน้ตบุ๊ก
  • การตรวจสอบด้วยตนเอง: รันเซลล์ทั้งหมดตามลำดับเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาด
  • ตรวจสอบว่าไฟล์ข้อมูลสามารถเข้าถึงได้และผลลัพธ์ถูกสร้างขึ้นอย่างถูกต้อง
  • ตรวจสอบว่าการแสดงผลภาพทำงานได้อย่างเหมาะสม

การทดสอบเอกสาร

# Verify Docsify renders correctly
docsify serve

# Check for broken links manually by navigating through content
# Verify all lesson links work in the rendered documentation

การตรวจสอบคุณภาพโค้ด

# 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 สำหรับการแสดงผล
  • รูปแบบการนำเข้าทั่วไป:
    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/ หรือโฟลเดอร์เฉพาะบทเรียน

การสร้างและการปรับใช้

การปรับใช้แอปพลิเคชันแบบทดสอบ

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

เว็บไซต์เอกสาร

# 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

ก่อนการส่ง

# 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:

# Ensure correct kernel is installed
python -m ipykernel install --user --name=datascience

ข้อผิดพลาด npm Install:

# 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
  • ทดสอบบทเรียนที่แปลเพื่อให้แน่ใจว่าการแสดงผลถูกต้อง

แหล่งข้อมูลที่เกี่ยวข้อง

การดูแลรักษาโครงการ

  • อัปเดตเป็นประจำเพื่อให้เนื้อหาทันสมัย
  • ยินดีต้อนรับการมีส่วนร่วมจากชุมชน
  • ติดตามปัญหาบน GitHub
  • PRs ตรวจสอบโดยผู้ดูแลหลักสูตร
  • การตรวจสอบและอัปเดตเนื้อหารายเดือน

ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์ที่มีความเชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้