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

12 KiB

Đóng góp cho Data Science for Beginners

Cảm ơn bạn đã quan tâm đến việc đóng góp cho chương trình học Data Science for Beginners! Chúng tôi hoan nghênh sự đóng góp từ cộng đồng.

Mục lục

Quy tắc ứng xử

Dự án này đã áp dụng Quy tắc ứng xử mã nguồn mở của Microsoft.
Để biết thêm thông tin, hãy xem Câu hỏi thường gặp về Quy tắc ứng xử
hoặc liên hệ opencode@microsoft.com nếu bạn có thêm câu hỏi hoặc ý kiến.

Làm thế nào để đóng góp?

Báo cáo lỗi

Trước khi tạo báo cáo lỗi, vui lòng kiểm tra các vấn đề hiện có để tránh trùng lặp. Khi bạn tạo báo cáo lỗi, hãy cung cấp càng nhiều chi tiết càng tốt:

  • Sử dụng tiêu đề rõ ràng và mô tả
  • Mô tả các bước cụ thể để tái hiện vấn đề
  • Cung cấp ví dụ cụ thể (đoạn mã, ảnh chụp màn hình)
  • Mô tả hành vi bạn quan sát được và điều bạn mong đợi
  • Bao gồm thông tin về môi trường của bạn (Hệ điều hành, phiên bản Python, trình duyệt)

Đề xuất cải tiến

Chúng tôi hoan nghênh các đề xuất cải tiến! Khi đề xuất cải tiến:

  • Sử dụng tiêu đề rõ ràng và mô tả
  • Cung cấp mô tả chi tiết về cải tiến được đề xuất
  • Giải thích tại sao cải tiến này hữu ích
  • Liệt kê các tính năng tương tự trong các dự án khác, nếu có

Đóng góp cho tài liệu

Cải thiện tài liệu luôn được đánh giá cao:

  • Sửa lỗi chính tả và ngữ pháp
  • Cải thiện sự rõ ràng của các giải thích
  • Thêm tài liệu còn thiếu
  • Cập nhật thông tin lỗi thời
  • Thêm ví dụ hoặc trường hợp sử dụng

Đóng góp mã

Chúng tôi hoan nghênh các đóng góp mã bao gồm:

  • Bài học hoặc bài tập mới
  • Sửa lỗi
  • Cải tiến các notebook hiện có
  • Bộ dữ liệu hoặc ví dụ mới
  • Cải tiến ứng dụng quiz

Bắt đầu

Yêu cầu

Trước khi đóng góp, hãy đảm bảo bạn có:

  1. Tài khoản GitHub
  2. Git được cài đặt trên hệ thống của bạn
  3. Python 3.7+ và Jupyter được cài đặt
  4. Node.js và npm (đối với đóng góp ứng dụng quiz)
  5. Hiểu biết về cấu trúc chương trình học

Xem INSTALLATION.md để biết hướng dẫn cài đặt chi tiết.

Fork và Clone

  1. Fork repository trên GitHub
  2. Clone fork của bạn về máy:
    git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git
    cd Data-Science-For-Beginners
    
  3. Thêm upstream remote:
    git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
    

Tạo nhánh

Tạo một nhánh mới cho công việc của bạn:

git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix

Quy ước đặt tên nhánh:

  • feature/ - Tính năng hoặc bài học mới
  • fix/ - Sửa lỗi
  • docs/ - Thay đổi tài liệu
  • refactor/ - Tái cấu trúc mã

Hướng dẫn đóng góp

Đối với nội dung bài học

Khi đóng góp bài học hoặc chỉnh sửa bài học hiện có:

  1. Tuân theo cấu trúc hiện có:

    • README.md với nội dung bài học
    • Notebook Jupyter với bài tập
    • Bài tập (nếu có)
    • Liên kết đến quiz trước và sau bài học
  2. Bao gồm các yếu tố sau:

    • Mục tiêu học tập rõ ràng
    • Giải thích từng bước
    • Ví dụ mã với chú thích
    • Bài tập thực hành
    • Liên kết đến tài nguyên bổ sung
  3. Đảm bảo tính dễ tiếp cận:

    • Sử dụng ngôn ngữ rõ ràng, đơn giản
    • Cung cấp văn bản thay thế cho hình ảnh
    • Bao gồm chú thích mã
    • Cân nhắc các phong cách học tập khác nhau

Đối với Notebook Jupyter

  1. Xóa tất cả đầu ra trước khi commit:

    jupyter nbconvert --clear-output --inplace notebook.ipynb
    
  2. Bao gồm các ô markdown với giải thích

  3. Sử dụng định dạng nhất quán:

    # 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. Kiểm tra notebook hoàn toàn trước khi gửi

Đối với mã Python

Tuân theo hướng dẫn phong cách PEP 8:

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

Đối với đóng góp ứng dụng quiz

Khi chỉnh sửa ứng dụng quiz:

  1. Kiểm tra cục bộ:

    cd quiz-app
    npm install
    npm run serve
    
  2. Chạy linter:

    npm run lint
    
  3. Xây dựng thành công:

    npm run build
    
  4. Tuân theo hướng dẫn phong cách Vue.js và các mẫu hiện có

Đối với bản dịch

Khi thêm hoặc cập nhật bản dịch:

  1. Tuân theo cấu trúc trong thư mục translations/
  2. Sử dụng mã ngôn ngữ làm tên thư mục (ví dụ: fr cho tiếng Pháp)
  3. Duy trì cấu trúc tệp giống như phiên bản tiếng Anh
  4. Cập nhật liên kết quiz để bao gồm tham số ngôn ngữ: ?loc=fr
  5. Kiểm tra tất cả liên kết và định dạng

Quy trình Pull Request

Trước khi gửi

  1. Cập nhật nhánh của bạn với các thay đổi mới nhất:

    git fetch upstream
    git rebase upstream/main
    
  2. Kiểm tra các thay đổi của bạn:

    • Chạy tất cả notebook đã chỉnh sửa
    • Kiểm tra ứng dụng quiz nếu đã chỉnh sửa
    • Xác minh tất cả liên kết hoạt động
    • Kiểm tra lỗi chính tả và ngữ pháp
  3. Commit các thay đổi của bạn:

    git add .
    git commit -m "Brief description of changes"
    

    Viết thông điệp commit rõ ràng:

    • Sử dụng thì hiện tại ("Thêm tính năng" thay vì "Đã thêm tính năng")
    • Sử dụng giọng điệu mệnh lệnh ("Di chuyển con trỏ đến..." thay vì "Di chuyển con trỏ đến...")
    • Giới hạn dòng đầu tiên trong 72 ký tự
    • Tham chiếu các vấn đề và pull request khi cần thiết
  4. Push lên fork của bạn:

    git push origin feature/your-feature-name
    

Tạo Pull Request

  1. Truy cập repository
  2. Nhấp vào "Pull requests" → "New pull request"
  3. Nhấp vào "compare across forks"
  4. Chọn fork và nhánh của bạn
  5. Nhấp vào "Create pull request"

Định dạng tiêu đề PR

Sử dụng tiêu đề rõ ràng, mô tả theo định dạng sau:

[Component] Brief description

Ví dụ:

  • [Lesson 7] Sửa lỗi import notebook Python
  • [Quiz App] Thêm bản dịch tiếng Đức
  • [Docs] Cập nhật README với yêu cầu mới
  • [Fix] Sửa đường dẫn dữ liệu trong bài học trực quan hóa

Mô tả PR

Bao gồm trong mô tả PR của bạn:

  • Cái gì: Bạn đã thực hiện những thay đổi gì?
  • Tại sao: Tại sao những thay đổi này cần thiết?
  • Cách thực hiện: Bạn đã thực hiện thay đổi như thế nào?
  • Kiểm tra: Bạn đã kiểm tra thay đổi như thế nào?
  • Ảnh chụp màn hình: Bao gồm ảnh chụp màn hình cho các thay đổi trực quan
  • Vấn đề liên quan: Liên kết đến các vấn đề liên quan (ví dụ: "Fixes #123")

Quy trình xem xét

  1. Kiểm tra tự động sẽ chạy trên PR của bạn
  2. Người duy trì sẽ xem xét đóng góp của bạn
  3. Giải quyết phản hồi bằng cách thực hiện các commit bổ sung
  4. Khi được chấp thuận, người duy trì sẽ merge PR của bạn

Sau khi PR của bạn được merge

  1. Xóa nhánh của bạn:

    git branch -d feature/your-feature-name
    git push origin --delete feature/your-feature-name
    
  2. Cập nhật fork của bạn:

    git checkout main
    git pull upstream main
    git push origin main
    

Hướng dẫn về phong cách

Markdown

  • Sử dụng cấp độ tiêu đề nhất quán
  • Bao gồm các dòng trống giữa các phần
  • Sử dụng khối mã với chỉ định ngôn ngữ:
    ```python
    import pandas as pd
    ```
    
  • Thêm văn bản thay thế cho hình ảnh: ![Alt text](../../translated_images/vi/image.4ee84a82b5e4c9e6651b13fd27dcf615e427ec584929f2cef7167aa99151a77a.png)
  • Giữ độ dài dòng hợp lý (khoảng 80-100 ký tự)

Python

  • Tuân theo hướng dẫn phong cách PEP 8
  • Sử dụng tên biến có ý nghĩa
  • Thêm docstring cho các hàm
  • Bao gồm gợi ý kiểu khi thích hợp:
    def process_data(df: pd.DataFrame) -> pd.DataFrame:
        """Process the input dataframe."""
        return df
    

JavaScript/Vue.js

  • Tuân theo hướng dẫn phong cách Vue.js 2
  • Sử dụng cấu hình ESLint được cung cấp
  • Viết các thành phần mô-đun, có thể tái sử dụng
  • Thêm chú thích cho logic phức tạp

Tổ chức tệp

  • Giữ các tệp liên quan cùng nhau
  • Sử dụng tên tệp mô tả
  • Tuân theo cấu trúc thư mục hiện có
  • Không commit các tệp không cần thiết (.DS_Store, .pyc, node_modules, v.v.)

Thỏa thuận cấp phép cho người đóng góp

Dự án này hoan nghênh các đóng góp và đề xuất. Hầu hết các đóng góp yêu cầu bạn
đồng ý với Thỏa thuận cấp phép cho người đóng góp (CLA) tuyên bố rằng bạn có quyền,
và thực sự cấp cho chúng tôi quyền sử dụng đóng góp của bạn. Để biết chi tiết, hãy truy cập
https://cla.microsoft.com.

Khi bạn gửi một pull request, CLA-bot sẽ tự động xác định liệu bạn có cần
cung cấp CLA hay không và trang trí PR một cách thích hợp (ví dụ: nhãn, bình luận). Chỉ cần làm theo
hướng dẫn được cung cấp bởi bot. Bạn chỉ cần làm điều này một lần trên tất cả các repository sử dụng CLA của chúng tôi.

Câu hỏi?

Cảm ơn!

Sự đóng góp của bạn làm cho chương trình học này tốt hơn cho tất cả mọi người. Cảm ơn bạn đã dành thời gian để đóng góp!


Tuyên bố miễn trừ trách nhiệm:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI Co-op Translator. Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn thông tin chính thức. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.