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

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

Tại sao việc sử dụng cấu hình Hard-coded (như chuỗi kết nối Database hoặc API Key) trong mã nguồn là một rủi ro bảo mật và cách quản lý cấu hình an toàn trong ASP.NET Core?

Junior

Việc Hard-coded thông tin nhạy cảm khiến chúng bị lộ khi mã nguồn được đẩy lên hệ thống quản lý phiên bản (như Git). Kẻ tấn công có thể truy cập vào Database hoặc các dịch vụ bên thứ ba.

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

Trong kiến trúc Microservices, tại sao việc áp dụng mô hình Saga Pattern lại được coi là giải pháp thay thế cho giao dịch ACID truyền thống trong bối cảnh Định lý CAP?

Junior

Trong các hệ thống phân tán, việc duy trì giao dịch ACID trên nhiều Microservices là cực kỳ khó khăn và vi phạm tính sẵn sàng (Availability). Saga Pattern giải quyết vấn đề này bằng cách chia một giao dịch lớn thành chuỗi các giao dịch cục bộ (Local Transactions).

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

Khi thiết kế hệ thống phân tán, sự khác biệt giữa tính nhất quán mạnh (Strong Consistency) và tính nhất quán cuối cùng (Eventual Consistency) ảnh hưởng như thế nào đến trải nghiệm người dùng?

Junior

Sự lựa chọn này là sự đánh đổi trực tiếp giữa độ trễ (Latency) và độ chính xác của dữ liệu theo Định lý CAP.

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

Tại sao việc sử dụng Load Balancer trong hệ thống phân tán lại làm tăng độ phức tạp khi duy trì tính nhất quán theo Định lý CAP?

Junior

Load Balancer đóng vai trò phân phối lưu lượng, nhưng nó cũng tạo ra các thách thức về trạng thái (State) trong hệ thống phân tá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...
216

Trong hệ thống phân tán, khái niệm 'Quorum' đóng vai trò gì trong việc cân bằng giữa Consistency và Availability?

Junior

Quorum là cơ chế bỏ phiếu để quyết định xem một thao tác đọc hoặc ghi có được chấp nhận hay không, giúp kiểm soát Định lý CAP một cách linh hoạ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...
217

Lập trình viên cần làm gì để xử lý xung đột dữ liệu (Conflict Resolution) trong hệ thống phân tán theo mô hình AP?

Junior

Trong hệ thống AP, khi xảy ra Network Partition, các node có thể nhận các bản cập nhật khác nhau cho cùng một bản ghi. Khi mạng phục hồi, hệ thống cần cơ chế để hợp nhất 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...
218

Trong thiết kế API, tại sao việc sử dụng HTTP Methods (GET, POST, PUT, PATCH, DELETE) đúng ngữ nghĩa lại quan trọng đối với tính bảo mật và khả năng cache của hệ thống?

Junior

Việc tuân thủ đúng ngữ nghĩa của HTTP Methods không chỉ là quy tắc thẩm mỹ mà còn là yêu cầu kỹ thuật quan trọng trong Enterprise:

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

Khi thiết kế API, làm thế nào để quản lý các tham số truy vấn (Query Parameters) phức tạp mà không làm URL trở nên quá dài và khó đọc?

Junior

Khi số lượng tham số truy vấn tăng lên, URL sẽ trở nên cồng kềnh và dễ vượt quá giới hạn độ dài của một số trình duyệt hoặc Proxy. Các giải pháp tối ưu bao gồm:

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

Tại sao việc sử dụng Content-Type và Accept Header lại quan trọng trong việc xây dựng API có khả năng mở rộng (Scalability)?

Junior

Content-Type và Accept Header là nền tảng của cơ chế Content Negotiation trong HTTP:

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

Làm thế nào để thiết kế một API an toàn khi truyền tải dữ liệu nhạy cảm mà không thể sử dụng HTTPS trong môi trường nội bộ (Internal Network)?

Junior

Mặc dù HTTPS là tiêu chuẩn bắt buộc, trong một số môi trường nội bộ cô lập, nếu không thể sử dụng TLS, bạn cần áp dụng các lớp bảo mật 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...
222

Trong thiết kế API, tại sao việc sử dụng HATEOAS (Hypermedia as the Engine of Application State) thường được cân nhắc nhưng lại ít được áp dụng thực tế trong các hệ thống Junior?

Junior

HATEOAS là một nguyên tắc của REST, nơi Server cung cấp các đường dẫn (Links) trong phản hồi để hướng dẫn Client thực hiện các hành động tiếp theo.

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

Trong SQL Server, sự khác biệt giữa hàm Scalar-valued Function và Inline Table-valued Function là gì, và tại sao việc sử dụng Scalar-valued Function thường gây suy giảm hiệu năng trong các truy vấn lớn?

Junior

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

  1. Scalar-valued Function (SVF): Trả về một giá trị đơn lẻ. SQL Server thường thực thi hàm này theo kiểu từng dòng (row-by-row), điều này tạo ra chi phí overhead rất lớn khi xử lý trên tập dữ liệu lớn.
  2. Inline Table-valued Function (iTVF): Trả về một bảng kết quả. SQL Server coi iTVF như một View được tham số hóa, cho phép Query Optimizer tích hợp logic của hàm trực tiếp vào Execution Plan của câu truy vấn chính.

Tại sao SVF gây suy giảm hiệu năng?

  • Rào cản tối ưu hóa: SVF hoạt động như một hộp đen (black box) đối với Query Optimizer, ngăn cản việc thực hiện các kỹ thuật tối ưu như Parallelism hoặc Index Seek.
  • Chi phí ngữ cảnh: Việc chuyển đổi ngữ cảnh (context switching) giữa engine thực thi câu lệnh SQL và engine thực thi hàm cho mỗi dòng dữ liệu là cực kỳ tốn kém.

Lời khuyên thực chiến

Nên ưu tiên sử dụng iTVF thay vì SVF. Nếu bắt buộc phải dùng hàm, hãy cân nhắc chuyển logic đó vào Stored Procedure hoặc sử dụng CROSS APPLY với một iTVF để đạt hiệu năng tốt nhất.

224

Trong SQL Server, tại sao việc sử dụng hàm xử lý trên cột (như hàm YEAR(), MONTH(), hoặc hàm chuyển đổi kiểu dữ liệu) trong mệnh đề WHERE lại làm mất tác dụng của Index (SARGability)?

Junior

Khái niệm SARGable

SARGable là viết tắt của 'Search ARGumentable'. Một truy vấn được coi là SARGable khi nó cho phép SQL Server sử dụng Index Seek thay vì Index Scan hoặc Table Scan.

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

Trong SQL Server, sự khác biệt giữa lệnh TRUNCATE TABLE và DELETE là gì, và tại sao TRUNCATE thường được coi là thao tác DDL thay vì DML?

Junior

Bản chất kỹ thuật

  1. DELETE: Là một thao tác DML (Data Manipulation Language). Nó xóa từng dòng một và ghi lại log cho mỗi dòng bị xóa trong Transaction Log. Điều này cho phép bạn sử dụng mệnh đề WHERE để xóa có điều kiện và có thể rollback nếu cần.
  2. TRUNCATE: Là một thao tác DDL (Data Definition Language). Nó giải phóng toàn bộ các trang dữ liệu (data pages) được cấp phát cho bảng. Nó không ghi log cho từng dòng mà chỉ ghi log cho việc giải phóng các trang dữ liệu.

So sánh hiệu năng

  • Tốc độ: TRUNCATE nhanh hơn nhiều so với DELETE vì ít tốn tài nguyên ghi log và không cần kiểm tra ràng buộc khóa ngoại (Foreign Key) trên từng dòng.
  • Hạn chế: TRUNCATE không thể sử dụng với bảng có ràng buộc khóa ngoại tham chiếu đến nó và không thể sử dụng WHERE để lọc dữ liệu.

Lưu ý thực chiến

Trong môi trường Enterprise, hãy cẩn trọng khi dùng TRUNCATE vì nó xóa sạch dữ liệu và không thể rollback nếu không nằm trong một Transaction rõ ràng. Luôn kiểm tra các ràng buộc khóa ngoại trước khi thực hiện.

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