Có 3 SDK Facebook, 2 package gọi Stripe, mỗi dev xài một cái… ai biết đâu mà lần!
Audit codebase mà thấy 3 SDK Facebook, 2 thư viện Stripe, và cả đống package lồng nhau như “tổ chim”, tôi chỉ hỏi: “Team này có ai thống nhất gì không?”. Dependency xung đột, CI gãy, debug thì như mò kim đáy bể.
![]() |
| Dependency tree khi team không thống nhất SDK! |
Thực trạng: Dependency hỗn loạn
Thực trạng:
- Mỗi dev tự import SDK theo thói quen, không có danh sách chuẩn.
- Dependency lồng nhau (package A kéo B, B kéo C), gây xung đột version.
- Không có governance, không ai biết project đang dùng cái gì.
Hệ quả:
- Xung đột version: SDK khác version phá nhau, API trả lỗi ngẫu nhiên.
- CI/CD thất bại: Build gãy vì dependency không tương thích.
- Debug đau đầu: Lỗi từ SDK nào? Không ai biết!
Giải pháp: Chuẩn hóa và adapter layer
Để “dọn tổ chim”:
- Approved library list: Quy định danh sách SDK chính thức, ghi trong README.
- Enforce qua code review: Từ chối PR nếu dùng package ngoài danh sách.
- Adapter layer: Viết wrapper để thống nhất cách gọi SDK (như Stripe).
Ví dụ: Wrapper cho Stripe:
class PaymentService { constructor() { this.stripe = require('stripe')('sk_test_123'); } charge(amount) { return this.stripe.charges.create({ amount }); }}🎯 Tóm lại: Dependency lồng nhau như “tổ chim” làm team lạc lối. Chuẩn hóa SDK, enforce code review, và dùng adapter để codebase thống nhất, debug dễ.

Đăng nhận xét