Mở đăng ký khóa học Fullstack qua Zoom. Tham khảo tại đây

Thư Viện Câu Hỏi Phỏng Vấn

Tổng hợp các câu hỏi tuyển dụng thực tế theo nhiều cấp độ từ Entry đến Expert để bạn tự tin chinh phục nhà tuyển dụng.

Interactive Practice Tổng cộng 4,442 câu hỏi độc bản

Luyện Tập Phỏng Vấn Thử

Mô phỏng áp lực phỏng vấn thật với đồng hồ đếm ngược từng câu, tự đánh giá phản xạ và đo lường độ sẵn sàng của bạn.

Vui lòng đăng nhập để tham gia luyện tập và lưu tiến độ phỏng vấn.
406

Tại sao việc sử dụng biến toàn cục (Global Variable) trong môi trường đa luồng lại nguy hiểm và cách giải quyết vấn đề này trong lập trình Enterprise?

Junior

Bản chất vấn đề

Biến toàn cục chia sẻ vùng nhớ chung giữa các luồng. Khi nhiều luồng cùng đọc và ghi vào một biến tại cùng một thời điểm, hiện tượng Data Race xảy ra, dẫn đến dữ liệu bị sai lệch hoặc crash ứng dụng.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
407

Trong các ứng dụng Microservices, làm thế nào để đảm bảo tính nhất quán của dữ liệu khi có nhiều service cùng cập nhật một tài nguyên thông qua các tiến trình bất đồng bộ?

Junior

Chiến lược xử lý

Để giải quyết bài toán này, kiến trúc Enterprise thường áp dụng các mẫu thiết kế sau:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
408

Giải thích khái niệm Thread Pool và tại sao việc tạo mới một luồng (Thread) cho mỗi request là một anti-pattern trong hệ thống Enterprise?

Junior

Tại sao tạo mới luồng là Anti-pattern?

  • Chi phí khởi tạo: Việc cấp phát bộ nhớ và khởi tạo luồng tốn kém tài nguyên CPU và thời gian.
  • Rủi ro hệ thống: Nếu số lượng request quá lớn, việc tạo vô hạn luồng sẽ gây ra lỗi OutOfMemoryException hoặc làm kiệt quệ tài nguyên hệ thống (Thread Exhaustion).

Cơ chế Thread Pool

  • Thread Pool duy trì một tập hợp các luồng đã được khởi tạo sẵn. Khi có tác vụ mới, hệ thống sẽ lấy một luồng từ pool để xử lý, sau đó trả lại luồng đó vào pool thay vì hủy bỏ.
  • Điều này giúp tái sử dụng tài nguyên và giới hạn số lượng luồng tối đa, bảo vệ hệ thống khỏi các cuộc tấn công từ chối dịch vụ (DoS) do quá tải request.

Lời khuyên

Luôn cấu hình kích thước Thread Pool phù hợp với tài nguyên phần cứng (CPU cores) và đặc thù của ứng dụng.

409

Trong lập trình bất đồng bộ, sự khác biệt giữa 'Blocking' và 'Non-blocking' ảnh hưởng thế nào đến hiệu năng của một Web Server?

Junior

Phân tích

  • Blocking: Khi một luồng thực hiện tác vụ I/O, nó sẽ đứng yên chờ đợi kết quả. Trong thời gian đó, luồng này không thể xử lý bất kỳ yêu cầu nào khác. Nếu tất cả luồng trong pool đều bị block, server sẽ không thể tiếp nhận thêm request mới.
  • Non-blocking: Luồng gửi yêu cầu I/O và ngay lập tức quay lại xử lý các tác vụ khác. Khi I/O hoàn tất, một callback hoặc sự kiện sẽ thông báo để xử lý kết quả.

Tác động hiệu năng

  • Blocking dẫn đến hiện tượng 'Thread Starvation' (đói luồng), làm tăng thời gian phản hồi (latency) và giảm khả năng mở rộng (scalability).
  • Non-blocking giúp server xử lý hàng ngàn kết nối đồng thời với số lượng luồng tối thiểu, tối ưu hóa việc sử dụng tài nguyên phần cứng.

Lưu ý

Lập trình Non-blocking thường khó debug hơn do luồng xử lý không tuần tự, cần nắm vững cơ chế Promise/Async-Await để quản lý luồng dữ liệu.

410

Thứ tự thực thi của các Middleware trong một ứng dụng web quan trọng như thế nào? Hãy giải thích cơ chế hoạt động của mô hình Onion hoặc mô hình chuỗi trách nhiệm trong kiến trúc này.

Junior

Thứ tự thực thi của các Middleware đóng vai trò quyết định trong việc xử lý request và response.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
411

Làm thế nào để xử lý ngoại lệ toàn cục (Global Exception Handling) thông qua Middleware mà không làm sập ứng dụng?

Junior

Xử lý ngoại lệ toàn cục là một kỹ thuật bắt buộc trong kiến trúc Enterprise nhằm đảm bảo ứng dụng không bị crash đột ngột và luôn trả về thông tin lỗi chuẩn hóa cho client.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
412

Trong kiến trúc phân tầng (Layering Architecture), việc gọi trực tiếp Database từ tầng Controller thay vì thông qua tầng Service gây ra những hệ lụy gì?

Junior

Việc gọi trực tiếp Database từ tầng Controller phá vỡ nguyên lý thiết kế phần mềm cơ bản và gây ra nhiều hệ lụy nghiêm trọng trong dài hạn.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
413

Caching Middleware hoạt động như thế nào và cần lưu ý những vấn đề gì khi áp dụng vào hệ thống phân tán?

Junior

Caching Middleware giúp giảm tải cho cơ sở dữ liệu và tăng tốc độ phản hồi API bằng cách lưu trữ tạm thời kết quả của các request phổ biến.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
414

Rate Limiting Middleware đóng vai trò gì trong việc bảo mật ứng dụng web và các chiến thuật thuật toán phổ biến để triển khai nó là gì?

Junior

Rate Limiting Middleware là thành phần chốt chặn đầu tiên giúp bảo vệ hệ thống khỏi các cuộc tấn công từ chối dịch vụ (DoS), brute-force attack và việc lạm dụng tài nguyên API.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
415

Trong Domain-Driven Design, khái niệm Aggregate và Aggregate Root đóng vai trò gì trong việc duy trì tính toàn vẹn dữ liệu, và nguyên tắc thiết kế kích thước của một Aggregate là gì?

Junior

Khái niệm Aggregate và Aggregate Root

Trong Domain-Driven Design (DDD), Aggregate là một nhóm các đối tượng miền (Entities và Value Objects) được gom lại với nhau thành một đơn vị duy nhất nhằm mục đích thay đổi dữ liệu.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
416

Repository Pattern trong Domain-Driven Design khác gì so với Repository Pattern truyền thống trong các ứng dụng CRUD thông thường?

Junior

Repository Pattern truyền thống (CRUD)

Trong các ứng dụng kiến trúc phân tầng (Layered Architecture) thông thường, Repository được xem như một lớp trừu tượng hóa tầng cơ sở dữ liệu (Data Access Layer). Nó cung cấp các phương thức thao tác trực tiếp trên bảng cơ sở dữ liệu như:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
417

Domain Event là gì và tại sao chúng ta nên sử dụng Domain Event để xử lý các tác vụ phụ thuộc lẫn nhau giữa các Bounded Context thay vì gọi trực tiếp API đồng bộ?

Junior

Khái niệm Domain Event

Domain Event (Sự kiện miền) là một đối tượng đại diện cho một sự việc có ý nghĩa kinh doanh đã xảy ra trong miền nghiệp vụ (Domain). Tên của Domain Event thường được đặt ở thì quá khứ (Ví dụ: OrderPlaced, PaymentReceived, InvoiceGenerated).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
418

Anti-Corruption Layer (ACL) là gì trong kiến trúc Domain-Driven Design và khi nào chúng ta bắt buộc phải áp dụng nó?

Junior

Khái niệm Anti-Corruption Layer (ACL)

Anti-Corruption Layer (Lớp chống tham nhũng) là một lớp dịch vụ hoặc một tập hợp các adapter nằm ở ranh giới giữa hai Bounded Context hoặc giữa hệ thống hiện đại (Domain Model sạch) và một hệ thống cũ kỹ (Legacy System) hoặc hệ thống bên thứ ba kém chất lượng.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
419

Sự khác biệt giữa Application Service và Domain Service trong Domain-Driven Design là gì? Cho ví dụ về thời điểm nên đặt logic vào Domain Service.

Junior

Phân biệt Application Service và Domain Service

Đặc điểm Application Service Domain Service
Vai trò chính Điều phối quy trình (Workflow orchestration), quản lý Transaction, bảo mật, gửi email, gọi Event Bus. Chứa các quy tắc nghiệp vụ phức tạp (Business Logic) không thuộc về riêng một Entity hoặc Value Object nào.
Trạng thái (State) Thường không chứa trạng thái nghiệp vụ. Vô trạng thái (Stateless), tập trung hoàn toàn vào tính toán nghiệp vụ.
Sự phụ thuộc Phụ thuộc vào Domain Service, Repositories, External Services. Chỉ phụ thuộc vào các đối tượng Domain khác (Entities, Value Objects).

Thời điểm nên đặt logic vào Domain Service

Theo định nghĩa của DDD, logic nghiệp vụ ưu tiên nằm bên trong Entity hoặc Value Object. Tuy nhiên, bạn bắt buộc phải dùng Domain Service khi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
420

Trong các hệ thống NoSQL dạng Document như MongoDB, việc lựa chọn Embedded Document hay Referenced Document ảnh hưởng như thế nào đến hiệu năng truy vấn và thiết kế dữ liệu ở cấp độ Junior?

Junior

Khi thiết kế cơ sở dữ liệu NoSQL dạng Document, việc quyết định giữa nhúng tài liệu (Embedded Document) và tham chiếu (Referenced Document) đóng vai trò quyết định đến hiệu năng hệ thống.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học