GIL trong Python là gì và ảnh hưởng thế nào tới hiệu năng
Hiểu Global Interpreter Lock của CPython, vì sao thread không tăng tốc code CPU-bound, khi nào dùng threading, multiprocessing và bản build free-threaded.
Hiểu Global Interpreter Lock của CPython, vì sao thread không tăng tốc code CPU-bound, khi nào dùng threading, multiprocessing và bản build free-threaded.
Hướng dẫn đóng gói một thư viện Python với pyproject.toml, build wheel, kiểm thử trên TestPyPI và phát hành lên PyPI bằng token hoặc Trusted Publishing.
Vì sao threading không tăng tốc code nặng CPU, và cách dùng multiprocessing, Pool, ProcessPoolExecutor để tận dụng mọi nhân CPU.
Cấu hình logging Python cho production: logger theo module, dictConfig, log JSON, request_id bằng contextvars, QueueHandler và test với caplog.
Dùng pathlib.Path thay cho os.path và os để ghép, tách, đọc, ghi và duyệt file. Kèm bảng đối chiếu, test pytest và các lỗi hay gặp.
Cách dùng try/except/else/finally, tự định nghĩa exception, raise from, logging, ExceptionGroup và cách test ngoại lệ với pytest.
Cách dùng Pydantic v2 để validate dữ liệu đầu vào: BaseModel, Field, field_validator, model_validator, strict mode, TypeAdapter và cách test bằng pytest.
Dựng REST API bằng FastAPI và Pydantic v2 để dữ liệu sai bị chặn từ cửa vào, kèm cách tùy biến lỗi 422 và viết test với pytest.
Cách dùng list, dict, set comprehension và generator expression trong Python cho gọn và dễ đọc, kèm các lỗi hay gặp và lúc nên quay về vòng for.
Hướng dẫn viết test bằng pytest, dùng fixture để chuẩn bị dữ liệu, dọn dẹp tài nguyên, chia sẻ qua conftest.py và tham số hóa test.
Hiểu cách câu lệnh with hoạt động, tự viết context manager bằng class hoặc contextlib, xử lý exception đúng cách và tránh các lỗi hay gặp.
Cách tạo virtual environment, quản lý package bằng pip và khai báo dự án Python với pyproject.toml, kèm ví dụ chạy được và các lỗi hay gặp.
Tìm hiểu decorator trong Python từ cú pháp @, closure, functools.wraps đến decorator nhận tham số và class-based decorator.
Tìm hiểu generator, yield và cách chúng giúp xử lý file khổng lồ hay stream dữ liệu mà không nạp hết vào bộ nhớ.
Phân biệt asyncio và threading trong Python qua 3 câu hỏi thực dụng, giúp bạn chọn đúng mô hình concurrency cho từng loại bài toán.
Tìm hiểu module dataclasses của Python giúp bạn viết lớp chứa dữ liệu ngắn gọn, tự sinh __init__, __repr__, __eq__ mà không cần boilerplate.
Tìm hiểu cách dùng type hints để code Python rõ ràng hơn, và dùng mypy để bắt lỗi kiểu dữ liệu trước khi chạy.