Giới thiệu về Makefile: Hướng dẫn cơ bản về tự động hóa xây dựng trong Python

By hientd, at: 09:55 Ngày 29 tháng 12 năm 2023

Thời gian đọc ước tính: __READING_TIME__ minutes

Introduction to Makefile: A Beginner's Guide to Build Automation in Python
Introduction to Makefile: A Beginner's Guide to Build Automation in Python

Tự động hóa là một phần quan trọng trong phát triển phần mềm hiện đại, giúp các nhà phát triển tiết kiệm thời gian và giảm lỗi. Các công cụ như kịch bản bash hoặc nền tảng CI/CD được sử dụng rộng rãi, Makefile vẫn là một trong những cách hiệu quả và linh hoạt nhất để tự động hóa các tác vụ. Ban đầu được thiết kế cho các dự án C/C++, Makefile cũng mạnh mẽ không kém đối với các nhà phát triển Python. Hướng dẫn này giới thiệu Makefile và cách sử dụng nó trong các dự án Python.

 

Makefile là gì?


Makefile là một tệp văn bản đơn giản định nghĩa các quy tắc để tự động hóa các tác vụ như xây dựng, kiểm tra và triển khai mã. Nó hoạt động với lệnh make, lệnh này đọc Makefile để thực thi các tác vụ một cách hiệu quả.


Tại sao sử dụng Makefile trong các dự án Python?
 

  • Tự động hóa: Giản lược các tác vụ lặp đi lặp lại như chạy thử nghiệm hoặc định dạng mã.
     
  • Tính nhất quán: Cung cấp một cách thức tiêu chuẩn cho các thành viên trong nhóm thực hiện các tác vụ.
     
  • Khả năng di chuyển: Hoạt động trên các môi trường khác nhau mà không cần phụ thuộc nặng nề.

 

Cấu trúc cơ bản của Makefile


Makefile bao gồm mục tiêu, phụ thuộclệnh:

target: dependencies
    command

 

  • Mục tiêu: Tên của tác vụ.
     
  • Phụ thuộc: Các tệp hoặc mục tiêu mà mục tiêu hiện tại phụ thuộc vào.
     
  • Lệnh: Lệnh shell được thực thi khi mục tiêu chạy.

 

Lưu ý: Các lệnh phải được thụt đầu dòng bằng tab, không phải khoảng trắng.

 

Viết Makefile đầu tiên của bạn cho Python


Bước 1: Thiết lập dự án của bạn

 

Tạo cấu trúc dự án Python:

 

my_project/

├── Makefile
├── requirements.txt
├── src/
│   ├── app.py
│   └── utils.py
└── tests/
    ├── test_app.py
    └── test_utils.py

 

Bước 2: Tạo Makefile

 

Đây là một ví dụ Makefile:

 

# Định nghĩa biến
PYTHON = python3
PIP = pip3

# Cài đặt phụ thuộc
install:
    $(PIP) install -r requirements.txt

# Chạy thử nghiệm
test:
    $(PYTHON) -m pytest tests/

# Định dạng mã bằng black
format:
    $(PYTHON) -m black src/ tests/

# Kiểm tra mã bằng flake8
lint:
    $(PYTHON) -m flake8 src/ tests/

# Dọn dẹp các tệp tạm thời
clean:
    find . -name '__pycache__' -exec rm -rf {} +
    find . -name '*.pyc' -exec rm -f {} +

 

Bước 3: Chạy tác vụ với make
 

  • Cài đặt phụ thuộc: make install
     
  • Chạy thử nghiệm: make test
     
  • Định dạng mã: make format
     
  • Kiểm tra mã: make lint
     
  • Dọn dẹp tệp tạm thời: make clean

 

Giải thích Makefile


1. Biến

Các biến như PYTHONPIP giúp Makefile dễ dàng thích ứng với các môi trường khác nhau.


2. Mục tiêu và Lệnh

Mỗi mục tiêu (ví dụ: install, test) tương ứng với một tác vụ, và lệnh được thực thi khi mục tiêu được gọi.

 

Khi nào sử dụng Makefile cho các dự án Python
 

  • Chạy các tác vụ lặp đi lặp lại như kiểm thử, định dạng và kiểm tra mã.
     
  • Tự động hóa thiết lập dự án cho các nhà phát triển mới.
     
  • Giản lược quy trình làm việc phát triển mà không cần dựa vào các công cụ phức tạp.

 

Kết luận


Makefile là một công cụ nhẹ nhưng MẠNH MẼ để tự động hóa các tác vụ trong các dự án Python. Bằng cách nắm vững những kiến thức cơ bản, bạn có thể đơn giản hóa quy trình làm việc, tiết kiệm thời gian và mang lại tính nhất quán cho quá trình phát triển của mình. 

Trong bài đăng tiếp theo, chúng ta sẽ đi sâu vào các kỹ thuật Makefile nâng cao, khám phá các biến, mục tiêu giả và các thực tiễn tốt nhất để đạt hiệu quả.

Tag list:
- Automate tests with Makefile
- Python project automation
- Makefile targets and commands
- Makefile examples for beginners
- Introduction to Makefile
- Reusable Makefile for Python
- Automating Python tasks with Makefile
- How to use Makefile
- Makefile for testing and linting
- Makefile vs shell scripts for automation
- Makefile basics explained
- Why use Makefile for Python
- Writing a Makefile in Python
- Python development best practices
- Simplify workflows with Makefile
- Clean Python projects using Makefile
- Build automation in Python
- Makefile tutorial for Python developers
- Beginner’s guide to Makefile
- Makefile for Python projects

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.