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)
376

Tại sao việc chỉ định rõ SqlDbType và kích thước (Size) cho SqlParameter lại quan trọng đối với hiệu năng truy vấn?

Junior

Việc chỉ định rõ SqlDbType giúp ADO.NET tránh được quá trình suy luận kiểu dữ liệu (type inference) tốn kém. Đặc biệt với các kiểu dữ liệu chuỗi (như nvarchar), nếu không chỉ định kích thước, SQL Server có thể phải thực hiện việc chuyển đổi kiểu dữ liệu ngầm định hoặc không tận dụng được kế hoạch thực thi (Execution Plan) đã lưu trong bộ nhớ đệm (Plan Cache). Điều này có thể dẫn đến hiện tượng Parameter Sniffing hoặc làm chậm quá trình truy vấn do SQL Server phải biên dịch lại câu lệnh SQL cho mỗi kích thước tham số khác nhau.

377

Trong kiến trúc hệ thống, tại sao việc sử dụng Load Balancer lại là yêu cầu bắt buộc đối với các ứng dụng có khả năng mở rộng (Scalability) và cơ chế Health Check của nó hoạt động như thế nào?

Junior

Bản chất của Load Balancer

Load Balancer đóng vai trò là lớp trung gian tiếp nhận các yêu cầu từ người dùng và phân phối chúng đến các server backend. Việc này giúp ngăn chặn tình trạng quá tải cho một server duy nhất và đảm bảo tính sẵn sàng cao (High Availability).

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

Khi thiết kế hệ thống lưu trữ dữ liệu, sự khác biệt giữa Vertical Scaling và Horizontal Scaling là gì và tại sao Horizontal Scaling lại được ưu tiên trong các hệ thống hiện đại?

Junior

Vertical Scaling (Scale-up)

Là việc tăng tài nguyên (CPU, RAM, Disk) cho một server đơn lẻ. Hạn chế là chi phí phần cứng tăng theo cấp số nhân và có giới hạn vật lý tối đa của một thiết bị.

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

Trong hệ thống phân tán, tại sao việc sử dụng Idempotency Key trong các API xử lý thanh toán lại cực kỳ quan trọng để đảm bảo tính toàn vẹn dữ liệu?

Junior

Vấn đề thực tế

Trong môi trường mạng không ổn định, một yêu cầu (request) có thể bị timeout nhưng thực tế server đã nhận và xử lý. Nếu client gửi lại yêu cầu đó, hệ thống có thể bị trừ tiền hai lầ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...
380

Khi làm việc với các hệ thống có dữ liệu lớn, tại sao việc đánh Index quá nhiều (Over-indexing) lại có thể gây phản tác dụng đối với hiệu năng của Database?

Junior

Bản chất của Database Index

Index giúp tăng tốc độ truy vấn (Read) bằng cách tạo ra các cấu trúc dữ liệu phụ (thường là B-Tree) để tìm kiếm nhanh 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...
381

Trong thiết kế hệ thống, khái niệm Rate Limiting là gì và làm thế nào để triển khai nó để bảo vệ API khỏi các cuộc tấn công Brute Force hoặc lạm dụng tài nguyên?

Junior

Khái niệm Rate Limiting

Là kỹ thuật giới hạn số lượng request mà một client có thể gửi đến hệ thống trong một khoảng thời gian nhất định (ví dụ: 100 requests/phút).

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

Trong Vue 3, sự khác biệt cốt lõi giữa ref và reactive là gì và khi nào nên ưu tiên sử dụng loại nào trong kiến trúc ứng dụng?

Junior

Phân tích sự khác biệt

  1. ref: Có thể chứa bất kỳ kiểu dữ liệu nào (primitive hoặc object). Khi truy cập trong JavaScript, bạn phải sử dụng thuộc tính .value. Trong template, Vue tự động giải nén (unwrap) nên không cần .value.
  2. reactive: Chỉ chấp nhận object (object, array, map, set). Nó không yêu cầu .value khi truy cập. Tuy nhiên, nó mất tính phản ứng nếu bạn gán lại toàn bộ object hoặc destructure nó.

Khi nào nên sử dụng?

  • ref: Khuyên dùng cho các giá trị đơn lẻ (string, number, boolean) hoặc khi bạn muốn thay thế hoàn toàn một object.
  • reactive: Phù hợp cho các state phức tạp có cấu trúc cố định, giúp code gọn gàng hơn vì không cần .value.

Ví dụ

const count = ref(0); // Dùng cho primitive
const user = reactive({ name: 'Vue', age: 25 }); // Dùng cho object

Lưu ý: Trong môi trường Enterprise, việc thống nhất sử dụng ref cho hầu hết các trường hợp thường được ưu tiên để tránh lỗi mất tính phản ứng khi destructure object.

383

Tại sao việc sử dụng v-if và v-for trên cùng một phần tử lại được coi là anti-pattern trong Vue và cách xử lý tối ưu nhất là gì?

Junior

Bản chất vấn đề

Trong các phiên bản Vue, v-for có độ ưu tiên cao hơn v-if. Điều này có nghĩa là Vue sẽ lặp qua toàn bộ danh sách trước khi kiểm tra điều kiện v-if cho từng phần tử. Việc này gây lãng phí tài nguyên render, đặc biệt khi danh sách dữ liệu lớ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...
384

Giải thích cơ chế của Lifecycle Hooks trong Vue 3 và tại sao nên sử dụng onMounted thay vì created trong Composition API?

Junior

Cơ chế Lifecycle

Các hook cho phép thực thi code tại các giai đoạn khác nhau của component (tạo, cập nhật, hủy). Trong Composition API, các hook được tiền tố bằng on (ví dụ: onMounted, onUpdated).

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

Làm thế nào để truyền dữ liệu giữa các component không có quan hệ cha-con (cross-component communication) một cách hiệu quả?

Junior

Các phương pháp phổ biến

  1. Pinia (State Management): Đây là tiêu chuẩn Enterprise hiện nay. Lưu trữ dữ liệu dùng chung trong một Store để mọi component đều có thể truy cập.
  2. Provide / Inject: Phù hợp cho việc truyền dữ liệu từ component cha xuống các component con ở bất kỳ cấp độ nào (Dependency Injection).
  3. Event Bus (Hạn chế): Trong Vue 3, Event Bus không còn được hỗ trợ trực tiếp. Nếu cần, hãy sử dụng thư viện mitt hoặc chuyển sang dùng Pinia.

Lời khuyên

Với các dự án Enterprise, hãy ưu tiên Pinia để quản lý state tập trung, giúp việc debug và theo dõi luồng dữ liệu (data flow) trở nên minh bạch hơn.

386

Tại sao việc sử dụng 'key' trong v-for là bắt buộc và hậu quả nếu sử dụng index làm key là gì?

Junior

Bản chất của 'key'

Vue sử dụng thuật toán Virtual DOM để so sánh (diffing) các thay đổi. key giúp Vue định danh duy nhất (unique identity) cho mỗi node, từ đó tối ưu hóa việc cập nhật, chèn hoặc xóa phần tử trong danh sách.

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

Trong ASP.NET Core, tại sao việc sử dụng trực tiếp các thuộc tính của HttpContext bên trong các lớp Business Logic hoặc Service lại bị coi là vi phạm nguyên tắc thiết kế và cách khắc phục?

Junior

Việc sử dụng trực tiếp HttpContext trong các lớp Service làm cho mã nguồn bị phụ thuộc chặt chẽ vào hạ tầng Web, gây khó khăn cho việc Unit Testing vì bạn phải giả lập (mock) toàn bộ đối tượng HttpContext phức tạp. Hơn nữa, nó vi phạm nguyên tắc Separation of Concerns.

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

Trong ASP.NET Core Web API, sự khác biệt giữa việc trả về IActionResult và ActionResult<T> là gì và tại sao ActionResult<T> lại được khuyến khích sử dụng?

Junior

IActionResult là một kiểu trả về linh hoạt cho phép trả về nhiều loại kết quả khác nhau (Ok, NotFound, BadRequest). Tuy nhiên, nó không cung cấp thông tin về kiểu dữ liệu trả về cho các công cụ như Swagger/OpenAPI.

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

Khi làm việc với Entity Framework Core, tại sao việc sử dụng các truy vấn LINQ không được tối ưu có thể dẫn đến lỗi N+1 Query Problem và cách phát hiện/khắc phục?

Junior

Lỗi N+1 xảy ra khi bạn truy vấn danh sách các thực thể cha, sau đó trong vòng lặp lại truy vấn thực thể con cho mỗi thực thể cha đó. Điều này tạo ra 1 truy vấn gốc và N truy vấn bổ sung.

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

Trong ASP.NET Core, cơ chế Filter (Action Filter, Result Filter) khác gì so với Middleware và khi nào nên chọn sử dụng Filter thay vì Middleware?

Junior

Middleware hoạt động ở cấp độ pipeline của toàn bộ ứng dụng, xử lý mọi request đi qua server. Filter hoạt động ở cấp độ MVC/Web API, chỉ chạy khi request khớp với một Controller hoặc Action cụ thể.

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