Nếu microservices là các thành phố, thì Kafka chính là hệ thống đường cao tốc kết nối chúng lại.
Trong lĩnh vực phát triển phần mềm, có thể rất nhiều lần chính bạn hoặc đồng nghiệp của bạn thốt lên rằng: WTF code đã tối ưu thế này mà sao thời gian phản hồi api vẫn chậm? Đó là một vấn đề nhứt nhói, cần phải bắt tay vào tối ưu ngay lặp tức - SQL.
Trong thế giới SQL, việc kiểm soát và tối ưu hóa kết quả truy vấn là một kỹ năng quan trọng, đặc biệt khi làm việc với các tập dữ liệu lớn. ROWNUM là một trong những tính năng đặc biệt của Oracle SQL, cho phép gán số thứ tự cho từng dòng dữ liệu, từ đó hỗ trợ giới hạn kết quả, phân trang, và thậm chí là loại bỏ dữ liệu trùng lặp.
Java 8 đã giới thiệu nhiều tính năng và cải tiến mạnh mẽ, đặc biệt là về lập trình chức năng và xử lý luồng. Dưới đây là một số câu hỏi phỏng vấn Java 8 ở mức độ dễ mà mình từ gặp và lượm lặt được.
Docker là một nền tảng mã nguồn mở cho phép đóng gói, phân phối và chạy ứng dụng trong các container nhẹ, độc lập. Container giống như một hộp chứa, đảm bảo ứng dụng chạy đồng nhất trên mọi môi trường, từ máy tính cá nhân đến server production.
Đối với lập trình viên, đặc biệt là các cá nhân làm trong mảng backend, devops thường rất chuộng và say sưa với hệ điều hành linux. Thậm chí có người còn xem nó là chân ái.
Trong bức tranh kiến trúc phần mềm hiện đại, việc lựa chọn cơ sở dữ liệu không chỉ dừng lại ở câu hỏi “lưu trữ cái gì”, mà là “lưu trữ như thế nào để hệ thống có thể mở rộng một cách linh hoạt nhất”. MongoDB không đơn thuần là một trào lưu NoSQL; nó là một giải pháp hoàn hảo cho các kiến trúc hướng Domain-Driven Design (DDD), nơi các Aggregates có thể được lưu trữ trọn vẹn trong một Document.
Như các bạn đã biết, trong Java đã hỗ trợ lập trình hàm từ lâu. Tuy nhiên số lượng param còn rất hạn chế.
Redis (Remote Dictionary Server) thường bị đóng khung ở khái niệm “bộ nhớ đệm” (cache). Tuy nhiên, dưới góc nhìn của một hệ thống chịu tải cao, Redis là một cỗ máy xử lý cấu trúc dữ liệu trên RAM với độ trễ sub-millisecond, đóng vai trò nền tảng cho hàng loạt pattern kiến trúc từ Rate Limiting, Message Queue cho đến Event Sourcing.
Trong quá trình phát triển các hệ thống backend phức tạp, việc áp dụng Design Pattern không phải là để “khoe kỹ năng” hay làm rườm rà codebase. Ngược lại, mục đích tối thượng của pattern là sự **tối giản** — gạt bỏ những đoạn if/else chằng chịt, tinh gọn luồng xử lý và giữ cho cốt lõi của business logic luôn sạch sẽ, độc lập.
YAS: Yet Another Shop, a sample microservices project in Java
Jekyll Themes / GitHub Pages / A template repository for Jekyll based blog
Provides support to increase developer productivity in Java when using Redis, a key-value store. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.