PODCAST · technology
Linh Fish Dev Podcast
by Linh Fish Dev
Nghe tin tức và mẹo lập trình Python, Django, FastAPI mỗi ngày từ blog Linh Fish Dev.
Episodes
-
Linh Fish Dev Podcast #13: Django admin: phân quyền theo nhóm — nhân viên chỉ xem, quản lý mới được sửa trong 5 phút
Tập 13: Django admin phân quyền theo nhóm — nhân viên chỉ xem, quản lý mới được sửa, trong 5 phút. Bạn sẽ nghe vì sao quyền Django cấp theo model khiến có quyền sửa là sửa mọi bài, và vì sao chỉ lọc danh sách hiển thị không chặn được người dùng mở trực […]
-
Linh Fish Dev Podcast #13: Django admin: phân quyền theo nhóm — nhân viên chỉ xem, quản lý mới được sửa trong 5 phút
Tập 13: Django admin phân quyền theo nhóm — nhân viên chỉ xem, quản lý mới được sửa, trong 5 phút. Bạn sẽ nghe vì sao quyền Django cấp theo model khiến có quyền sửa là sửa mọi bài, và vì sao chỉ lọc danh sách hiển thị không chặn được người dùng mở trực […]
-
Linh Fish Dev Podcast #12: Chọn serializer theo action bằng get_serializer_class() trong 5 phút
Tập 12: chọn serializer theo action bằng get_serializer_class() trong Django REST Framework. Bạn sẽ nghe vì sao một ViewSet dùng chung một serializer cho mọi action lại vừa trả thừa dữ liệu ở endpoint list, vừa thiếu validation ở endpoint create — và cách override get_serializer_class() để rẽ…
more -
Linh Fish Dev Podcast #11: Chặn Host header attack bằng TrustedHostMiddleware trong 5 phút
Tập 11: chặn Host header attack bằng TrustedHostMiddleware trong FastAPI. Bạn sẽ nghe vì sao app mặc định tin tưởng mù quáng Host header do client gửi — và vì sao một endpoint quên mật khẩu dựng link reset từ header đó có thể khiến token reset rơi vào tay kẻ xấu chỉ bằng một […]
-
Linh Fish Dev Podcast #10: Gọi nhiều API song song bằng asyncio.gather và Semaphore trong 10 phút
Tập 10: gọi nhiều API song song bằng asyncio.gather và Semaphore trong Python. Bạn sẽ nghe vì sao vòng lặp for tuần tự cộng dồn thời gian chờ — 20 request × 1 giây = 20 giây, trong khi CPU rảnh gần như toàn bộ thời gian — và vì sao asyncio.gather chạy các coroutine […]
-
Linh Fish Dev Podcast #9: Django: chặn dữ liệu bẩn ngay ở tầng database bằng CheckConstraint và UniqueConstraint trong 5 phút
Tập 9: chặn dữ liệu bẩn ngay ở tầng database bằng CheckConstraint và UniqueConstraint trong Django. Bạn sẽ nghe vì sao phương thức clean() không bao giờ tự chạy khi gọi save() — discount bằng 150 vẫn chui lọt vào database — và vì sao bulk_create(), câu lệnh S Q L viết tay hay microservice […]
-
Linh Fish Dev Podcast #8: FastAPI: cho phép client tải file an toàn bằng FileResponse, chặn path traversal trong 5 phút
Tập 8: cho phép client tải file về an toàn trong FastAPI bằng FileResponse của Starlette, đồng thời chặn kiểu tấn công path traversal. Bạn sẽ nghe vì sao ghép tên file bằng f-string lại nguy hiểm: attacker chỉ cần gửi ../.. là đọc được file ngoài thư mục cho phép, thậm chí leo lên […]
-
Linh Fish Dev Podcast #7: Flask: versioning API gọn bằng nested Blueprint — v1/v2 tách module trong 5 phút
Tập 7: versioning API gọn bằng nested Blueprint của Flask — tách v1, v2 thành từng module riêng trong 5 phút. Bạn sẽ nghe vì sao lồng blueprint tốt hơn hẳn việc rải tiền tố version khắp các route: v1 thành package đóng băng khó sửa nhầm, thêm v3 chỉ cần một dòng đăng ký, […]
-
Linh Fish Dev Podcast #6: FastAPI: gom cả chục query param vào một Pydantic model — validate tập trung trong 5 phút
Tập 6: gom cả chục query param của FastAPI vào một Pydantic model duy nhất với Query Parameter Model — validate tập trung, khỏi copy-paste 8 dòng khai báo ở mỗi endpoint. Bạn sẽ nghe vì sao một nơi định nghĩa tốt hơn hẳn: lỗi 422 chi tiết từng field, tài liệu /docs tự sinh […]
-
Linh Fish Dev Podcast #5: fetch() không tự timeout — hủy request treo bằng AbortController trong 5 phút
Trong tập 5 của Linh Fish Dev Podcast, mình nói về một cái bẫy quen thuộc của JavaScript: hàm fetch() không hề có tùy chọn timeout tích hợp, nên khi server treo, request của bạn sẽ treo theo — có thể là vô hạn. Giải pháp chuẩn là AbortController: một “công tắc hủy” cho phép […]
-
Linh Fish Dev Podcast #4: Viết class chứa dữ liệu gọn hơn 70% bằng @dataclass trong 5 phút
Class Python chỉ để chứa dữ liệu mà phải viết tay __init__, __repr__, __eq__ vừa dài vừa dễ quên cập nhật — tập 4 của Linh Fish Dev Podcast chia sẻ cách dùng decorator @dataclass của thư viện chuẩn để tự sinh toàn bộ, rút gọn class gần 20 dòng xuống còn 4 dòng. Bạn […]
-
Linh Fish Dev Podcast #3: Tăng tốc hàm tính toán lặp lại bằng @lru_cache và @cache
Hàm Python của bạn có đang tính đi tính lại cùng một kết quả? Trong tập 3 của Linh Fish Dev Podcast, mình chia sẻ cách dùng @lru_cache và @cache trong functools để ghi nhớ kết quả của những lần gọi trước — chỉ một decorator, không đổi một dòng logic. Bạn sẽ hiểu cơ […]
-
Linh Fish Dev Podcast #2: Chặn spam API bằng rate limiting với SlowAPI
Tập 2 của Linh Fish Dev Podcast. Tìm hiểu cách chặn spam API bằng rate limiting với thư viện SlowAPI trong FastAPI: giới hạn 5 request/phút cho route đăng nhập bằng một decorator, vì sao tốt hơn cách tự đếm request trong dict, và những lưu ý thực tế khi triển khai (Redis khi scale […]
-
Linh Fish Dev Podcast #1: Bảo mật API Flask bằng JWT với flask-jwt-extended
Tập đầu tiên của Linh Fish Dev Podcast. Tìm hiểu cách bảo mật API Flask bằng JWT với thư viện flask-jwt-extended: cặp access token 15 phút và refresh token 30 ngày, vì sao tốt hơn cách tự chế token, và những lưu ý thực tế khi triển khai. Đọc bản đầy đủ kèm code mẫu […]
We're indexing this podcast's transcripts for the first time — this can take a minute or two. We'll show results as soon as they're ready.
No matches for "" in this podcast's transcripts.
No topics indexed yet for this podcast.
Loading reviews...
ABOUT THIS SHOW
Nghe tin tức và mẹo lập trình Python, Django, FastAPI mỗi ngày từ blog Linh Fish Dev.
HOSTED BY
Linh Fish Dev
CATEGORIES
Loading similar podcasts...