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.
Tất cả công nghệ .Net (39) ADO.NET (44) Agile scrum (33) Android (40) Angular (40) API Design (40) Arrays (40) ASP.NET (42) ASP.NET MVC (40) ASP.NET Web API (49) Availability & Reliability (40) Azure (49) Backtracking (40) Big-O Notation (35) Binary Tree (40) Bit Manipulation (40) Blockchain (45) C# (45) Caching (50) CAP Theorem (45) CDN (45) Concurrency (49) Cosmos DB (44) Cryptography (40) CSS (40) Data Structures (40) Databases (35) DDD (42) Dependency Injection (50) Design pattern (45) Devops (50) Divide & Conquer (40) Docker (43) Dynamic Programming (40) Entity Framework (40) Fibonacci Series (35) Flutter (40) Git (40) Go lang (40) Graph Theory (40) GraphQL (40) Greedy Algorithms (40) Hash Tables (40) Heaps and Maps (35) HTML (40) Ionic (45) IOS (45) Java (73) Javascript (81) jQuery (40) Kotlin (50) Kubernetes (11) Laravel (41) Layering & Middleware (44) Linked Lists (45) LINQ (40) Load Balancing (45) Microservices (44) Mongodb (45) MySQL (44) Net core (44) next.js (52) Node.js (40) NoSQL (48) Objective-C (40) OOP (44) Package Managerment (50) PHP (40) PostgreSQL (44) PWA (40) Python (41) Queues (44) React Native (48) React.js (45) Reactive Programming (50) Recursion (45) Redis (40) Ruby (44) Ruby on Rails (48) Rust (40) Searching (45) SOA (42) Software Architecture (44) Software Testing (40) Sorting (48) Spring (45) SQL (37) SQL Server (45) Stacks (44) Strings (50) Swift (45) System Design (56) Systems Design (7) T-SQL (39) Trees (49) Trie (35) Typescript (44) Unit testing (49) UX Design (50) Vue.js (50) Web security (40) WebSockets (49) Xamarin (40)
2011

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.

2012

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...
2013

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...
2014

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...
2015

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...
2016

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...
2017

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...
2018

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...
2019

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...
2020

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...
2021

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...
2022

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...
2023

Cơ chế Eventual Consistency trong NoSQL hoạt động như thế nào và lập trình viên cần lưu ý gì khi xây dựng ứng dụng xử lý giao dịch tài chính hoặc giỏ hàng?

Junior

1. Bản chất của Eventual Consistency

Theo Định lý CAP, nhiều cơ sở dữ liệu NoSQL phân tán (như Apache Cassandra, Amazon DynamoDB) ưu tiên tính sẵn sàng (Availability) và chịu lỗi phân vùng (Partition Tolerance), chấp nhận hy sinh tính nhất quán tuyệt đối (Strong Consistency) tại thời điểm ghi 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...
2024

Sharding trong cơ sở dữ liệu NoSQL là gì và cách lựa chọn Shard Key tối ưu để tránh hiện tượng Hotspotting trong hệ thống?

Junior

1. Khái niệm Sharding

Sharding là kỹ thuật phân vùng dữ liệu theo chiều ngang (Horizontal Partitioning), trong đó các tập dữ liệu lớn được chia nhỏ và lưu trữ trên nhiều máy chủ (Shard servers) khác nhau nhằm tăng khả năng mở rộng (Scalability) và thông lượng xử lý (Throughput).

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...
2025

Tại sao việc thực hiện các truy vấn sử dụng toán tử Wildcard ở đầu chuỗi (như regex /^abc/) lại làm suy giảm hiệu năng nghiêm trọng trong MongoDB và cách khắc phục?

Junior

1. Nguyên nhân suy giảm hiệu năng

  • Cơ chế B-Tree Index: Các index thông thường trong MongoDB được xây dựng dựa trên cấu trúc cây B-Tree, hoạt động tối ưu nhất khi tìm kiếm theo tiền tố từ trái sang phải (Left-to-Right Prefix Matching).
  • Full Collection Scan: Khi sử dụng biểu thức chính quy (Regex) với wildcard ở đầu (ví dụ: /.*abc/ hoặc ^.*abc), cơ sở dữ liệu không thể tận dụng được Index có sẵn. Kết quả là database buộc phải thực hiện quét toàn bộ tập dữ liệu (Collection Scan - COLLSCAN), duyệt qua từng document một để khớp chuỗi, làm tăng thời gian phản hồi (Latency) và ngốn CPU.

2. Các phương pháp khắc phục tối ưu

  • Left-anchored Regex: Luôn cố định ký tự đầu tiên nếu bắt buộc phải dùng regex (ví: /^abc/). Điều này cho phép B-Tree Index lọc trước các document bắt đầu bằng chữ 'abc'.
  • Text Index: Sử dụng tính năng Text Search của MongoDB kết hợp với toán tử $text để tìm kiếm từ khóa, tuy nhiên cần lưu ý về dung lượng và chi phí duy trì Text Index.
  • Tách trường dữ liệu: Nếu cần tìm kiếm theo tên miền phụ hoặc phần mở rộng, hãy tách chuỗi thành các trường riêng biệt (ví dụ: domain, subdomain) để query chính xác bằng trường giá trị thay vì dùng regex.
  • Sử dụng External Search Engine: Đối với các hệ thống yêu cầu tìm kiếm mờ (Fuzzy Search) hoặc Full-text search phức tạp với lượng dữ liệu lớn, nên tích hợp các giải pháp chuyên dụng như Elasticsearch thay vì lạm dụng NoSQL.

Kinh nghiệm thực tế:

Luôn kiểm tra kế hoạch truy vấn (Execution Plan) bằng lệnh .explain('executionStats') trước khi đưa các câu lệnh query có chứa Regex lên môi trường Production.

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