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.
359 lines
20 KiB
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 ให้กับภาพ: ``
|
|
- รักษาความยาวบรรทัดให้อยู่ในช่วงที่เหมาะสม (ประมาณ 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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ |