Mocking trong pytest: test code phụ thuộc mạng và database
Hàm của bạn gọi API thật thì test sẽ chậm, phụ thuộc mạng và có thể tốn tiền. Mocking cho phép thay thành phần bên ngoài bằng một bản giả có hành vi do bạn quy…
Hàm của bạn gọi API thật thì test sẽ chậm, phụ thuộc mạng và có thể tốn tiền. Mocking cho phép thay thành phần bên ngoài bằng một bản giả có hành vi do bạn quy…
Quy tắc số một của tối ưu: đừng đoán. Lập trình viên gần như luôn đoán sai chỗ nào chậm. Hãy đo, rồi mới sửa.
Đo một đoạn nhỏ với timeit
import timeit
timeit.t…
Viết thẳng mật khẩu database vào file .py rồi đẩy lên GitHub là một trong những lỗi tốn kém nhất mà lập trình viên mắc phải. Cách đúng là tách cấu hình ra khỏi…
Python có hai cách chạy song song, và chọn sai thì chương trình không những không nhanh hơn mà còn chậm đi. Điều quyết định nằm ở một thứ tên là GIL.
GIL là gì…
Gọi 50 API, mỗi lần chờ 1 giây — chạy tuần tự mất 50 giây, nhưng thực ra CPU chỉ ngồi chờ. asyncio cho phép chờ đồng thời, rút xuống còn hơn 1 giây.
Hàm bất đồn…
Module csv chuẩn xử lý được gần hết công việc hằng ngày, miễn là bạn nhớ đúng encoding. Bài viết đi qua DictReader, DictWriter, bẫy số 0 ở đầu, bẫy ngày tháng và khi nào cần openpyxl.
Gọi lệnh hệ thống từ Python rất tiện, nhưng cũng là nơi nhiều lỗ hổng chèn lệnh ra đời. Cách làm đúng gói gọn trong một câu: truyền tham số dạng danh sách và tránh xa shell=True.
print() đủ dùng khi đang thử nghiệm, nhưng khi chương trình chạy thật trên server bạn cần biết chuyện gì đã xảy ra lúc 3 giờ sáng. Đó là việc của module logging…
Lập trình hướng đối tượng (OOP) là cách tổ chức code xoay quanh các “đối tượng” — kết hợp dữ liệu và hành vi. Python hỗ trợ OOP rất tự nhiên, và hiểu nó sẽ mở r…