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/CONTRIBUTING.md

359 lines
20 KiB

# การมีส่วนร่วมใน Data Science for Beginners
ขอบคุณสำหรับความสนใจในการมีส่วนร่วมในหลักสูตร Data Science for Beginners! เรายินดีต้อนรับการมีส่วนร่วมจากชุมชน
## สารบัญ
- [จรรยาบรรณ](../..)
- [ฉันสามารถมีส่วนร่วมได้อย่างไร?](../..)
- [เริ่มต้นใช้งาน](../..)
- [แนวทางการมีส่วนร่วม](../..)
- [กระบวนการ Pull Request](../..)
- [แนวทางการจัดรูปแบบ](../..)
- [ข้อตกลงใบอนุญาตผู้มีส่วนร่วม](../..)
## จรรยาบรรณ
โครงการนี้ได้นำ [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) มาใช้
สำหรับข้อมูลเพิ่มเติม ดูที่ [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
หรือติดต่อ [opencode@microsoft.com](mailto:opencode@microsoft.com) หากมีคำถามหรือความคิดเห็นเพิ่มเติม
## ฉันสามารถมีส่วนร่วมได้อย่างไร?
### รายงานข้อบกพร่อง
ก่อนสร้างรายงานข้อบกพร่อง โปรดตรวจสอบปัญหาที่มีอยู่เพื่อหลีกเลี่ยงการซ้ำซ้อน เมื่อคุณสร้างรายงานข้อบกพร่อง โปรดระบุรายละเอียดให้มากที่สุด:
- **ใช้ชื่อเรื่องที่ชัดเจนและอธิบายได้**
- **อธิบายขั้นตอนที่แน่นอนในการทำให้เกิดปัญหา**
- **ให้ตัวอย่างที่เฉพาะเจาะจง** (เช่น โค้ด ตัวอย่างภาพหน้าจอ)
- **อธิบายพฤติกรรมที่คุณสังเกตเห็นและสิ่งที่คุณคาดหวัง**
- **ระบุรายละเอียดเกี่ยวกับสภาพแวดล้อมของคุณ** (OS, เวอร์ชัน Python, เบราว์เซอร์)
### เสนอการปรับปรุง
เรายินดีรับข้อเสนอแนะเกี่ยวกับการปรับปรุง! เมื่อเสนอการปรับปรุง:
- **ใช้ชื่อเรื่องที่ชัดเจนและอธิบายได้**
- **ให้คำอธิบายที่ละเอียดเกี่ยวกับการปรับปรุงที่เสนอ**
- **อธิบายว่าทำไมการปรับปรุงนี้จึงมีประโยชน์**
- **ระบุฟีเจอร์ที่คล้ายกันในโครงการอื่น หากมี**
### การมีส่วนร่วมในเอกสาร
การปรับปรุงเอกสารเป็นสิ่งที่เรายินดีเสมอ:
- **แก้ไขคำผิดและข้อผิดพลาดทางไวยากรณ์**
- **ปรับปรุงความชัดเจนของคำอธิบาย**
- **เพิ่มเอกสารที่ขาดหายไป**
- **อัปเดตข้อมูลที่ล้าสมัย**
- **เพิ่มตัวอย่างหรือกรณีการใช้งาน**
### การมีส่วนร่วมในโค้ด
เรายินดีรับการมีส่วนร่วมในโค้ด เช่น:
- **บทเรียนหรือแบบฝึกหัดใหม่**
- **การแก้ไขข้อบกพร่อง**
- **การปรับปรุงโน้ตบุ๊กที่มีอยู่**
- **ชุดข้อมูลหรือตัวอย่างใหม่**
- **การปรับปรุงแอปพลิเคชันแบบทดสอบ**
## เริ่มต้นใช้งาน
### สิ่งที่ต้องเตรียม
ก่อนการมีส่วนร่วม โปรดตรวจสอบว่าคุณมี:
1. บัญชี GitHub
2. ติดตั้ง Git ในระบบของคุณ
3. Python 3.7+ และ Jupyter ติดตั้งแล้ว
4. Node.js และ npm (สำหรับการมีส่วนร่วมในแอปแบบทดสอบ)
5. ความคุ้นเคยกับโครงสร้างหลักสูตร
ดู [INSTALLATION.md](INSTALLATION.md) สำหรับคำแนะนำการตั้งค่าโดยละเอียด
### Fork และ Clone
1. **Fork repository** บน GitHub
2. **Clone fork ของคุณ** ลงในเครื่อง:
```bash
git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git
cd Data-Science-For-Beginners
```
3. **เพิ่ม upstream remote**:
```bash
git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
```
### สร้าง Branch
สร้าง branch ใหม่สำหรับงานของคุณ:
```bash
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
```
รูปแบบการตั้งชื่อ branch:
- `feature/` - ฟีเจอร์หรือบทเรียนใหม่
- `fix/` - การแก้ไขข้อบกพร่อง
- `docs/` - การเปลี่ยนแปลงเอกสาร
- `refactor/` - การปรับปรุงโค้ด
## แนวทางการมีส่วนร่วม
### สำหรับเนื้อหาบทเรียน
เมื่อมีส่วนร่วมในบทเรียนหรือแก้ไขบทเรียนที่มีอยู่:
1. **ปฏิบัติตามโครงสร้างที่มีอยู่**:
- README.md พร้อมเนื้อหาบทเรียน
- โน้ตบุ๊ก Jupyter พร้อมแบบฝึกหัด
- การมอบหมายงาน (ถ้ามี)
- ลิงก์ไปยังแบบทดสอบก่อนและหลัง
2. **รวมองค์ประกอบเหล่านี้**:
- วัตถุประสงค์การเรียนรู้ที่ชัดเจน
- คำอธิบายทีละขั้นตอน
- ตัวอย่างโค้ดพร้อมคำอธิบาย
- แบบฝึกหัดสำหรับการฝึกฝน
- ลิงก์ไปยังแหล่งข้อมูลเพิ่มเติม
3. **ตรวจสอบให้แน่ใจว่าเข้าถึงได้**:
- ใช้ภาษาที่ชัดเจนและเรียบง่าย
- เพิ่มข้อความ alt สำหรับภาพ
- รวมคำอธิบายโค้ด
- พิจารณาสไตล์การเรียนรู้ที่แตกต่างกัน
### สำหรับโน้ตบุ๊ก Jupyter
1. **ล้างผลลัพธ์ทั้งหมด** ก่อนการ commit:
```bash
jupyter nbconvert --clear-output --inplace notebook.ipynb
```
2. **เพิ่มเซลล์ markdown** พร้อมคำอธิบาย
3. **ใช้รูปแบบที่สม่ำเสมอ**:
```python
# Import libraries at the top
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Use meaningful variable names
# Add comments for complex operations
# Follow PEP 8 style guidelines
```
4. **ทดสอบโน้ตบุ๊กของคุณ** อย่างสมบูรณ์ก่อนการส่ง
### สำหรับโค้ด Python
ปฏิบัติตามแนวทาง [PEP 8](https://www.python.org/dev/peps/pep-0008/):
```python
# Good practices
import pandas as pd
def calculate_mean(data):
"""Calculate the mean of a dataset.
Args:
data (list): List of numerical values
Returns:
float: Mean of the dataset
"""
return sum(data) / len(data)
```
### สำหรับการมีส่วนร่วมในแอปแบบทดสอบ
เมื่อแก้ไขแอปแบบทดสอบ:
1. **ทดสอบในเครื่อง**:
```bash
cd quiz-app
npm install
npm run serve
```
2. **รัน linter**:
```bash
npm run lint
```
3. **สร้างสำเร็จ**:
```bash
npm run build
```
4. **ปฏิบัติตามแนวทาง Vue.js** และรูปแบบที่มีอยู่
### สำหรับการแปล
เมื่อเพิ่มหรืออัปเดตการแปล:
1. ปฏิบัติตามโครงสร้างในโฟลเดอร์ `translations/`
2. ใช้รหัสภาษาสำหรับชื่อโฟลเดอร์ (เช่น `fr` สำหรับภาษาฝรั่งเศส)
3. รักษาโครงสร้างไฟล์ให้เหมือนกับเวอร์ชันภาษาอังกฤษ
4. อัปเดตลิงก์แบบทดสอบเพื่อรวมพารามิเตอร์ภาษา: `?loc=fr`
5. ทดสอบลิงก์และรูปแบบทั้งหมด
## กระบวนการ Pull Request
### ก่อนการส่ง
1. **อัปเดต branch ของคุณ** ด้วยการเปลี่ยนแปลงล่าสุด:
```bash
git fetch upstream
git rebase upstream/main
```
2. **ทดสอบการเปลี่ยนแปลงของคุณ**:
- รันโน้ตบุ๊กที่แก้ไขทั้งหมด
- ทดสอบแอปแบบทดสอบหากมีการแก้ไข
- ตรวจสอบลิงก์ทั้งหมด
- ตรวจสอบข้อผิดพลาดในการสะกดและไวยากรณ์
3. **Commit การเปลี่ยนแปลงของคุณ**:
```bash
git add .
git commit -m "Brief description of changes"
```
เขียนข้อความ commit ที่ชัดเจน:
- ใช้รูปแบบปัจจุบัน ("เพิ่มฟีเจอร์" ไม่ใช่ "เพิ่มฟีเจอร์แล้ว")
- ใช้รูปแบบคำสั่ง ("ย้ายเคอร์เซอร์ไปที่..." ไม่ใช่ "เคอร์เซอร์ถูกย้ายไปที่...")
- จำกัดบรรทัดแรกไว้ที่ 72 ตัวอักษร
- อ้างอิงปัญหาและ pull request เมื่อเกี่ยวข้อง
4. **Push ไปยัง fork ของคุณ**:
```bash
git push origin feature/your-feature-name
```
### การสร้าง Pull Request
1. ไปที่ [repository](https://github.com/microsoft/Data-Science-For-Beginners)
2. คลิก "Pull requests" → "New pull request"
3. คลิก "compare across forks"
4. เลือก fork และ branch ของคุณ
5. คลิก "Create pull request"
### รูปแบบชื่อ PR
ใช้ชื่อที่ชัดเจนและอธิบายได้ตามรูปแบบนี้:
```
[Component] Brief description
```
ตัวอย่าง:
- `[Lesson 7] แก้ไขข้อผิดพลาดการนำเข้า Python notebook`
- `[Quiz App] เพิ่มการแปลภาษาเยอรมัน`
- `[Docs] อัปเดต README พร้อมข้อกำหนดใหม่`
- `[Fix] แก้ไขเส้นทางข้อมูลในบทเรียนการแสดงผล`
### คำอธิบาย PR
รวมในคำอธิบาย PR ของคุณ:
- **อะไร**: คุณเปลี่ยนแปลงอะไร?
- **ทำไม**: ทำไมการเปลี่ยนแปลงเหล่านี้จึงจำเป็น?
- **อย่างไร**: คุณดำเนินการเปลี่ยนแปลงอย่างไร?
- **การทดสอบ**: คุณทดสอบการเปลี่ยนแปลงอย่างไร?
- **ภาพหน้าจอ**: รวมภาพหน้าจอสำหรับการเปลี่ยนแปลงที่มองเห็นได้
- **ปัญหาที่เกี่ยวข้อง**: ลิงก์ไปยังปัญหาที่เกี่ยวข้อง (เช่น "Fixes #123")
### กระบวนการตรวจสอบ
1. **การตรวจสอบอัตโนมัติ** จะรันบน PR ของคุณ
2. **ผู้ดูแลจะตรวจสอบ** การมีส่วนร่วมของคุณ
3. **ตอบกลับความคิดเห็น** โดยการ commit เพิ่มเติม
4. เมื่อได้รับการอนุมัติ **ผู้ดูแลจะ merge** PR ของคุณ
### หลังจาก PR ของคุณถูก merge
1. ลบ branch ของคุณ:
```bash
git branch -d feature/your-feature-name
git push origin --delete feature/your-feature-name
```
2. อัปเดต fork ของคุณ:
```bash
git checkout main
git pull upstream main
git push origin main
```
## แนวทางการจัดรูปแบบ
### Markdown
- ใช้ระดับหัวข้อที่สม่ำเสมอ
- รวมบรรทัดว่างระหว่างส่วนต่าง ๆ
- ใช้ code block พร้อมตัวระบุภาษา:
````markdown
```python
import pandas as pd
```
````
- เพิ่มข้อความ alt ให้กับภาพ: `![Alt text](../../translated_images/th/image.4ee84a82b5e4c9e6651b13fd27dcf615e427ec584929f2cef7167aa99151a77a.png)`
- รักษาความยาวบรรทัดให้อยู่ในช่วงที่เหมาะสม (ประมาณ 80-100 ตัวอักษร)
### Python
- ปฏิบัติตามแนวทาง PEP 8
- ใช้ชื่อตัวแปรที่มีความหมาย
- เพิ่ม docstring ให้กับฟังก์ชัน
- รวม type hints เมื่อเหมาะสม:
```python
def process_data(df: pd.DataFrame) -> pd.DataFrame:
"""Process the input dataframe."""
return df
```
### JavaScript/Vue.js
- ปฏิบัติตามแนวทาง Vue.js 2
- ใช้การตั้งค่า ESLint ที่ให้มา
- เขียนคอมโพเนนต์ที่แยกส่วนและนำกลับมาใช้ใหม่ได้
- เพิ่มความคิดเห็นสำหรับตรรกะที่ซับซ้อน
### การจัดระเบียบไฟล์
- เก็บไฟล์ที่เกี่ยวข้องไว้ด้วยกัน
- ใช้ชื่อไฟล์ที่อธิบายได้
- ปฏิบัติตามโครงสร้างไดเรกทอรีที่มีอยู่
- อย่า commit ไฟล์ที่ไม่จำเป็น (.DS_Store, .pyc, node_modules, ฯลฯ)
## ข้อตกลงใบอนุญาตผู้มีส่วนร่วม
โครงการนี้ยินดีรับการมีส่วนร่วมและข้อเสนอแนะ การมีส่วนร่วมส่วนใหญ่ต้องการให้คุณ
ตกลงในข้อตกลงใบอนุญาตผู้มีส่วนร่วม (CLA) โดยระบุว่าคุณมีสิทธิ์
และจริง ๆ แล้วให้สิทธิ์เราในการใช้การมีส่วนร่วมของคุณ สำหรับรายละเอียดเพิ่มเติม โปรดเยี่ยมชม
https://cla.microsoft.com
เมื่อคุณส่ง pull request CLA-bot จะตรวจสอบโดยอัตโนมัติว่าคุณจำเป็นต้อง
ให้ CLA หรือไม่ และตกแต่ง PR อย่างเหมาะสม (เช่น เพิ่ม label หรือความคิดเห็น) เพียงทำตาม
คำแนะนำที่ bot ให้ไว้ คุณจะต้องทำสิ่งนี้เพียงครั้งเดียวสำหรับ repository ทั้งหมดที่ใช้ CLA ของเรา
## คำถาม?
- ตรวจสอบ [Discord Channel #data-science-for-beginners](https://aka.ms/ds4beginners/discord)
- เข้าร่วม [ชุมชน Discord](https://aka.ms/ds4beginners/discord)
- ตรวจสอบ [ปัญหาที่มีอยู่](https://github.com/microsoft/Data-Science-For-Beginners/issues) และ [pull requests](https://github.com/microsoft/Data-Science-For-Beginners/pulls)
## ขอบคุณ!
การมีส่วนร่วมของคุณทำให้หลักสูตรนี้ดีขึ้นสำหรับทุกคน ขอบคุณที่สละเวลาในการมีส่วนร่วม!
---
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้