⚡DevPoolLearning Hub
Về chúng tôiAdmin
CHỦ ĐỀ ĐANG CHỌNGolang
  • •Giới thiệu về Gin Framework
  • •Bắt đầu nhanh (Quickstart)
  • •Routing (Tổng quan về Điều hướng)
  • •Sử dụng các phương thức HTTP (HTTP Methods)
  • •Tham số trên đường dẫn (Path Parameters)
  • •Tham số Query String (Query Parameters)
  • •Xử lý dữ liệu Form (Multipart/Urlencoded)
  • •Kết hợp Query String và Dữ liệu Form
  • •Tham số dạng Map trong QueryString và PostForm
  • •Tải lên tệp tin (Upload Files - Tổng quan)
  • •Tải lên tệp đơn lẻ (Single File Upload)
  • •Tải lên nhiều tệp tin cùng lúc (Multiple Files Upload)
  • •Giới hạn dung lượng tải lên (Limit Upload Size)
  • •Gom nhóm Route (Route Grouping)
  • •Chuyển hướng (Redirects)
  • •Các mẫu thiết kế API chuẩn trong Gin (API Design Patterns)
  • •Binding (Tổng quan về Gán dữ liệu & Xác thực)
  • •Model Binding và Xác thực dữ liệu
  • •Đăng ký hàm kiểm tra tùy chỉnh (Custom Validators)
  • •Chỉ gán dữ liệu từ Query String (ShouldBindQuery)
  • •Gán dữ liệu Query String hoặc Post Data
  • •Thiết lập giá trị mặc định cho trường Form (default tag)
  • •Định dạng mảng trong Form (Collection format for arrays)
  • •Gán dữ liệu từ URI (ShouldBindUri)
  • •Gán dữ liệu với hàm Unmarshaler tùy biến
  • •Gán dữ liệu từ Header (ShouldBindHeader)
  • •Gán dữ liệu HTML Checkbox
  • •Gán dữ liệu Multipart & Urlencoded Form
  • •Gán Form-Data vào Struct phức tạp lồng nhau
  • •Gán Request Body vào nhiều Struct khác nhau (ShouldBindBodyWith)
  • •Gán Form-Data với Custom Struct Tag
  • •Rendering (Tổng quan về Xuất dữ liệu Phản hồi)
  • •Render đa định dạng: XML, JSON, YAML và ProtoBuf
  • •Bảo mật chống tấn công với SecureJSON
  • •Hỗ trợ JSONP (JSON with Padding)
  • •Xuất dữ liệu AsciiJSON
  • •Giữ nguyên ký tự đặc biệt với PureJSON
  • •Phục vụ tệp tĩnh (Serving Static Files)
  • •Phục vụ dữ liệu từ tệp tin (c.File & c.FileAttachment)
  • •Phục vụ dữ liệu từ luồng Stream (DataFromReader)
  • •Render giao diện HTML Templates
  • •Quản lý nhiều bộ HTML Template độc lập (Multitemplate)
  • •Đóng gói toàn bộ Template vào tệp Binary duy nhất
  • •Middleware (Tổng quan)
  • •Khởi tạo Engine sạch không gắn middleware (gin.New)
  • •Sử dụng Middleware ở các cấp độ (Global, Group, Route)
  • •Viết Middleware tùy chỉnh (Custom Middleware)
  • •Tùy biến hành vi phục hồi lỗi Panic (Custom Recovery)
  • •Xử lý lỗi tập trung với Error Handling Middleware
  • •Sử dụng Middleware xác thực BasicAuth
  • •Sử dụng Goroutine an toàn bên trong Middleware
  • •Thiết lập các HTTP Header bảo mật (Security Headers)
  • •Các phương pháp thực hành bảo mật tốt nhất cho Gin
  • •Quản lý Session trong Gin Framework
  • •Mẫu tiêm phụ thuộc (Dependency Injection) trong Middleware
  • •Logging (Tổng quan về Ghi nhận Nhật ký)
  • •Cách ghi Log ra Tệp tin (Write Log to File)
  • •Tùy biến định dạng ghi Log (Custom Log Format)
  • •Bỏ qua ghi Log cho các đường dẫn cụ thể (Skip Logging)
  • •Kiểm soát màu sắc trong Log (Log Coloring)
  • •Ẩn Query Strings nhạy cảm trong Log
  • •Tùy biến định dạng Log khi khởi tạo Route (DebugPrintRouteFunc)
  • •Ghi log có cấu trúc với Zap và Slog (Structured Logging)
  • •Server Configuration (Tổng quan về Cấu hình Máy chủ)
  • •Tùy biến cấu hình HTTP Server (http.Server)
  • •Thay thế bộ giải mã JSON tại thời điểm Runtime
  • •Tích hợp chứng chỉ HTTPS miễn phí với Let's Encrypt (Autocert)
  • •Chạy đồng thời nhiều dịch vụ Web (Multiple Services)
  • •Dừng máy chủ mượt mà không mất kết nối (Graceful Shutdown)
  • •Đẩy dữ liệu chủ động với HTTP/2 Server Push
  • •Quản lý HTTP Cookie an toàn
  • •Cấu hình Proxy tin cậy (Trusted Proxies)
  • •Hỗ trợ giao thức WebSocket thời gian thực
  • •Tích hợp Cơ sở Dữ liệu (Database Integration)
  • •Xử lý Hủy bỏ Request với Context (Cancellation)
  • •Thiết lập điểm kiểm tra sức khỏe hệ thống (Health Checks)
  • •Đo lường và Giám sát hệ thống với Prometheus (Metrics & Monitoring)
  • •Kiểm thử tự động trong Gin (Unit Testing & Integration Testing)
  • •Triển khai ứng dụng Gin lên Production (Deployment)
  • •Sử dụng Go Build Tags trong Gin
  • •Tăng tốc độ JSON với Sonic, Go-Json hoặc Jsoniter
  • •Biên dịch tối ưu kích thước loại bỏ MsgPack (nomsgpack)
  • •Đo lường hiệu năng và So sánh Benchmark
  • •Tài nguyên học tập và Dự án mẫu (Learning Resources)
  • •Các tổ chức và doanh nghiệp sử dụng Gin
  • •Các câu hỏi thường gặp (Frequently Asked Questions - FAQ)
  • •Bản chất bên trong Gin: Radix Tree & Context Pool (Zero Allocation)
  • •Vòng đời của một HTTP Request trong Gin Framework
  • •Khởi tạo Dự án Chuẩn 12-Factor App & Quản lý Cấu hình (Viper/Env)
  • •Cấu trúc Thư mục Chuẩn Doanh nghiệp cho Dự án Gin (Standard Project Layout)
  • •Dependency Injection & Interface-First Design trong Gin
  • •Luồng Luân chuyển Dữ liệu: Request DTO ➔ Domain Entity ➔ Model ➔ Response DTO
  • •Phân biệt MustBind vs ShouldBind: Tại sao 99% dự án chỉ dùng ShouldBind?
  • •Làm chủ go-playground/validator/v10 trong Gin
  • •Viết Custom Validator cho Nghiệp vụ Việt Nam (Số điện thoại, CCCD, Mã số thuế)
  • •Chuẩn hóa & Việt hóa Thông báo Lỗi Validation thân thiện
  • •Chuẩn hóa Standard Response Envelope JSON Toàn Hệ Thống
  • •Thiết kế Custom Error Type & Business Error Code (Domain Errors)
  • •Error Handling Middleware: Quản lý Lỗi Tập Trung & Bảo Mật Stack Trace
  • •Request ID & Tracing Middleware: Định danh Luồng Xử lý Xuyên suốt
  • •Structured Logging với Uber Zap và Go Slog trong Gin
  • •Xác thực & Phân quyền: JWT (Access/Refresh Token) & RBAC trong Gin
  • •Rate Limiting Middleware: Chống Brute Force & DDoS (Token Bucket / Redis)
  • •CORS & Security Headers Middleware Chuẩn Production
  • •Custom Recovery & Alerting (Bắn thông báo lỗi về Telegram/Slack)
  • •Quản lý Connection Pool Database Tối ưu trong Gin (PostgreSQL / MySQL)
  • •Repository Pattern với GORM trong Dự án Gin Thực tế
  • •Quản lý Database Transaction đa bảng (Atomic Operations) trong Gin
  • •Phân trang, Lọc và Sắp xếp Nâng cao (Offset vs Cursor Pagination)
  • •Cạm bẫy Chết người khi Dùng Goroutine trong Gin và Cách Khắc phục
  • •Xử lý Hủy bỏ Request với Context Cancellation (Dọn sạch Query ngầm)
  • •Xây dựng Worker Pool & Background Job Runner trong Gin
  • •Quản lý Upload File Lớn An Toàn & Stream Trực Tiếp
  • •Triết lý Viết Test cho API Go: Test cái gì và Không nên test cái gì?
  • •Unit Test Handler & Service với Mock Interface (Testify)
  • •Integration Test API với httptest.ResponseRecorder
  • •Database Testing với SQLite In-Memory Cô Lập
  • •Docker Multi-stage Build Siêu Nhẹ (< 15MB) & Non-Root Security
  • •Dừng Dịch Vụ Mượt Mà (Graceful Shutdown) Chuẩn Kubernetes / CI-CD
  • •Thiết lập Kubernetes Health Check Probes (Liveness & Readiness)
  • •Thu thập Metrics với Prometheus & Hiển thị Dashboard Grafana
  • •Tối ưu Hiệu năng Cao cấp: Sonic JSON, Connection Reuse & Profiling pprof
  • •Thiết Kế Schema & Luồng Nghiệp Vụ Hệ Thống E-Commerce Chuẩn
  • •Triển Khai Hoàn Chỉnh: Auth, Product, Checkout Transaction & Webhook
  • •Checklist Nghiệm Thu Production Readiness cho API Gin
  • •Bài 1.1: Templ là gì? Tư duy Server-side Component vs html/template
  • •Bài 1.2: Cài đặt Templ CLI, VS Code Extension & Hot Reload (Air)
  • •Bài 1.3: Quy trình biên dịch: Từ file .templ sinh ra file _templ.go
  • •Bài 2.1: Định nghĩa Component, nhận Props Type-safe từ Go
  • •Bài 2.2: Hiển thị dữ liệu, cơ chế tự động Escape chống XSS
  • •Bài 2.3: Điều kiện rẽ nhánh: if/else, switch/case
  • •Bài 2.4: Render danh sách với for range qua Slice / Map
  • •Bài 3.1: Tái sử dụng Component (Gọi component lồng nhau)
  • •Bài 3.2: Layout Pattern với { children... }
  • •Bài 3.3: Dynamic Attributes, Boolean Attributes & Class Toggle
  • •Bài 4.1: Render Templ với net/http, Chi, Gin, Echo, Fiber
  • •Bài 4.2: Truyền và lấy data từ context.Context (User Auth, Session)
  • •Bài 4.3: Quản lý Response Stream, Content-Type & Headers
  • •Bài 5.1: Kiến trúc Fullstack Go + Templ + HTMX (Partial Rendering)
  • •Bài 5.2: CSS trong Templ: templ.CSSClass & tích hợp TailwindCSS
  • •Bài 5.3: Nhúng Javascript: templ.SafeScript & truyền dữ liệu Go sang JS
  • •Bài 6.1: Unit Test Component với Go Test & Debug Generated Code
  • •Bài 6.2: Đóng gói Static Files với //go:embed thành 1 binary duy nhất
  • •Bài 6.3: Multi-stage Dockerfile & CI/CD Build Production cho Templ