Thuận Đức

Thuận Đức

Logging / Monitoring / CI/CD

1. Tổng quan: Ba thành phần giải quyết ba vấn đề khác nhau Khi một Backend chạy trên production, việc code hoạt động đúng trên máy local chưa đủ. Hệ thống cần có khả năng ghi nhận sự kiện, phát hiện sự cố và triển khai phiên bản mới một cách an toàn. Ba thành […]

Đọc tiếp →

Docker

1. Docker là gì? Docker là nền tảng giúp đóng gói và chạy ứng dụng trong các môi trường được gọi là container. Một ứng dụng Backend thường phụ thuộc vào nhiều thành phần: Ngôn ngữ lập trình và runtime như Go, PHP hoặc Node.js. Thư viện và package. Database như PostgreSQL hoặc MySQL. Cache […]

Đọc tiếp →

Unit & Integration Testing

1. Testing là gì và tại sao Backend cần Testing? Software Testing là quá trình kiểm tra phần mềm để xác minh rằng hệ thống hoạt động đúng theo yêu cầu, phát hiện lỗi và hạn chế những thay đổi làm hỏng chức năng đã tồn tại. Trong Backend, một chức năng thường không chỉ […]

Đọc tiếp →

Message Broker

1. Message Broker là gì? Message Broker là một thành phần trung gian giúp các ứng dụng hoặc service gửi và nhận message mà không cần giao tiếp trực tiếp với nhau trong mọi trường hợp. Thay vì service A gọi trực tiếp service B, service A có thể gửi message đến broker. Broker tiếp […]

Đọc tiếp →

Background Jobs & Queues

1. Background Jobs & Queues là gì? Trong một ứng dụng backend, không phải công việc nào cũng cần hoàn thành ngay trong lúc xử lý HTTP request. Ví dụ, khi người dùng đăng ký tài khoản, hệ thống có thể cần: Lưu thông tin người dùng vào database. Gửi email xác nhận. Gửi thông […]

Đọc tiếp →

Redis & Caching – Hướng dẫn toàn diện về Cache, TTL, Cache Invalidation và tối ưu hiệu năng Backend

1. Caching là gì? Caching là kỹ thuật lưu tạm dữ liệu đã được tính toán hoặc truy xuất trước đó để có thể sử dụng lại nhanh hơn trong những lần truy cập tiếp theo. Giả sử một API lấy thông tin sản phẩm từ PostgreSQL. Mỗi request đều truy vấn database, chuyển đổi […]

Đọc tiếp →

Database Migration

1. Database Migration là gì? Database Migration là quá trình quản lý và áp dụng các thay đổi đối với cấu trúc hoặc dữ liệu trong database theo từng phiên bản có thể theo dõi và kiểm soát. Trong quá trình phát triển phần mềm, database hiếm khi giữ nguyên cấu trúc từ đầu đến […]

Đọc tiếp →

Bun ORM

1. Bun ORM là gì? Bun là một thư viện ORM và SQL query builder dành cho Go, được thiết kế để làm việc với các cơ sở dữ liệu quan hệ như PostgreSQL, MySQL, SQLite và một số hệ quản trị khác thông qua driver tương ứng. Bun giúp developer ánh xạ dữ liệu […]

Đọc tiếp →

GORM

1. GORM là gì? GORM (Go ORM) là thư viện Object-Relational Mapping dành cho Go, giúp làm việc với cơ sở dữ liệu quan hệ thông qua các struct và API của Go thay vì phải viết SQL cho mọi thao tác. Trong một ứng dụng backend, dữ liệu thường được lưu trong PostgreSQL, MySQL […]

Đọc tiếp →

CAP theorem

1. CAP Theorem là gì? CAP Theorem là một định lý nền tảng trong Distributed Systems, giải thích giới hạn của việc đồng thời đảm bảo ba thuộc tính: Consistency (C), Availability (A) và Partition Tolerance (P) trong một hệ thống dữ liệu phân tán. Định lý bắt nguồn từ nhận định của Eric Brewer […]

Đọc tiếp →