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