Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Dự án hiện đại hiếm khi tự viết mọi thứ, chúng dựa vào hàng chục hay hàng trăm thư viện bên ngoài. Điều này giúp tiết kiệm thời gian nhưng cũng kéo theo rủi ro: lỗi bảo mật, thư viện bị bỏ rơi, cập nhật làm hỏng ứng dụng. Bài này đưa ra thói quen để dùng dependency một cách an toàn và bền vững.
Mỗi dependency là một khoản nợ: bạn phải theo dõi, cập nhật và tin tưởng nó. Trước khi cài, hãy hỏi:
File khóa phụ thuộc ghi lại phiên bản chính xác của mọi gói đã cài, kể cả gói gián tiếp: package-lock.json (npm), yarn.lock, pnpm-lock.yaml, composer.lock (PHP), poetry.lock hoặc requirements.txt được ghim phiên bản (Python), Cargo.lock (Rust), go.sum (Go).
npm ci thay vì npm install.Nhiều thư viện đánh số dạng MAJOR.MINOR.PATCH, ví dụ 2.4.1:
Ký hiệu như ^2.4.1 cho phép nâng MINOR và PATCH, ~2.4.1 chỉ nâng PATCH. Đây là quy ước, không phải bảo đảm tuyệt đối, nên vẫn phải đọc ghi chú phát hành và chạy test khi cập nhật.
Bỏ mặc dependency nhiều năm rồi nâng cấp một lượt thường gây ác mộng, vì phải vượt qua nhiều thay đổi phá vỡ cùng lúc. Thói quen tốt hơn:
npm outdated, composer outdated, pip list --outdated.npm audit, composer audit, pip-audit để phát hiện gói có lỗ hổng đã biết.Với thư viện quan trọng (gửi email, thanh toán, lưu trữ), đừng gọi trực tiếp rải rác khắp mã. Hãy bọc nó sau một giao diện nhỏ của dự án:
// mailer.js: toàn bộ ứng dụng chỉ biết hàm nàyimport someMailLib from 'some-mail-lib';export async function sendMail({ to, subject, html }) {return someMailLib.send({ to, subject, body: html });}Khi cần thay thư viện, bạn chỉ sửa một file. Việc này cũng giúp viết test dễ hơn bằng cách giả lập hàm bọc.
npm uninstall, composer remove); công cụ như depcheck giúp phát hiện.dependencies và devDependencies).Dùng thư viện bên ngoài là điều bình thường, quan trọng là có kỷ luật: chọn kỹ, khóa phiên bản, cập nhật đều, theo dõi bảo mật và bọc những phần quan trọng. Những thói quen này giữ cho dự án khỏe mạnh theo thời gian.
Để học cách xây dựng và vận hành dự án với hệ sinh thái thư viện hiện đại, bạn có thể tham khảo các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment