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

Khi triển khai các ứng dụng Single Page Application (SPA) như React hoặc Vue.js lên CDN, Junior Developer thường gặp lỗi '404 Not Found' khi người dùng nhấn nút Refresh (F5) tại một đường dẫn con. Hãy giải thích nguyên nhân và đưa ra giải pháp cấu hình chuẩn tại CDN.

Junior

Lỗi 404 Not Found khi tải lại trang ở các đường dẫn con trong ứng dụng SPA là một trong những vấn đề kinh điển mà các lập trình viên mới đi làm thường gặp phải khi đưa sản phẩm lên môi trường production sử dụng CDN lưu trữ tĩ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...
1097

Trong Solidity, tại sao việc sử dụng biến kiểu uint256 lại được ưu tiên hơn so với các kiểu dữ liệu nhỏ hơn như uint8 hoặc uint16 trong các cấu trúc lưu trữ (Storage) của Smart Contract?

Junior

Trong máy ảo Ethereum (EVM), các biến được lưu trữ trong các slot có kích thước 32 bytes (256 bits). Khi bạn sử dụng các kiểu dữ liệu nhỏ hơn như uint8, EVM vẫn phải dành ra một slot 32 bytes để lưu trữ giá trị đó. Để thực hiện các phép toán trên các kiểu dữ liệu nhỏ hơn này, EVM phải thực hiện thêm các thao tác chuyển đổi (masking) để đảm bảo dữ liệu nằm trong phạm vi cho phép, điều này tiêu tốn thêm Gas. Do đó, việc sử dụng uint256 giúp tối ưu hóa Gas bằng cách loại bỏ các bước tính toán dư thừa và tận dụng tối đa không gian lưu trữ của một slot.

1098

Giải thích cơ chế hoạt động của fallback function và receive function trong Solidity. Khi nào một Smart Contract sẽ kích hoạt các hàm này?

Junior

Cả hai hàm đều được sử dụng để xử lý các tương tác không xác định hoặc nhận Ether trực tiếp: 1. receive(): Được kích hoạt khi một contract nhận Ether mà không kèm theo dữ liệu (data). Hàm này bắt buộc phải có từ khóa external và payable. 2. fallback(): Được kích hoạt khi một lời gọi hàm đến contract không khớp với bất kỳ hàm nào đã định nghĩa, hoặc khi nhận Ether kèm theo dữ liệu nhưng không có hàm receive. Hàm này cũng cần từ khóa external. Lưu ý: fallback có thể thực hiện các logic phức tạp hơn nhưng bị giới hạn về lượng Gas tiêu thụ nếu được gọi thông qua một lời gọi từ bên ngoài.

1099

Tại sao việc sử dụng các vòng lặp (loop) với độ dài không xác định (unbounded loop) trong Smart Contract lại là một rủi ro lớn đối với hệ thống?

Junior

Mỗi giao dịch trên Ethereum đều có một giới hạn Gas (Gas Limit). Nếu một vòng lặp phụ thuộc vào độ dài của một mảng động (dynamic array) mà mảng này có thể tăng kích thước không giới hạn, thì tại một thời điểm nào đó, chi phí thực thi vòng lặp sẽ vượt quá Gas Limit của block. Điều này dẫn đến lỗi Out of Gas, khiến giao dịch bị revert hoàn toàn. Giải pháp thực chiến là sử dụng mô hình Pull-over-Push, trong đó người dùng tự rút tiền hoặc thực hiện thao tác thay vì ép buộc contract phải lặp qua một danh sách lớn để xử lý cho từng người.

1100

Sự khác biệt giữa việc sử dụng thư viện (Library) và kế thừa (Inheritance) trong Solidity là gì? Khi nào nên chọn phương án nào?

Junior

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

Trong kiến trúc dApp, tại sao việc kiểm tra dữ liệu đầu vào (Input Validation) ở phía Frontend là chưa đủ và tại sao phải thực hiện lại ở phía Smart Contract?

Junior

Frontend chỉ là một giao diện tương tác và có thể bị bỏ qua bởi các công cụ như Remix, Ethers.js, hoặc các script tấn công trực tiếp vào địa chỉ contract. Smart Contract là rào cản cuối cùng đảm bảo tính toàn vẹn của dữ liệu. Nếu không kiểm tra (ví dụ: dùng require hoặc revert) ngay tại hàm của contract, kẻ tấn công có thể gửi các giá trị độc hại (như số âm, địa chỉ không hợp lệ) để làm hỏng trạng thái của contract. Luôn tuân thủ nguyên tắc 'Never trust the client' trong phát triển hệ thống phi tập trung.

1102

Trong Domain-Driven Design, làm thế nào để xử lý các nghiệp vụ phụ thuộc thời gian thực hoặc gọi bên thứ ba (như gửi email, gọi API thanh toán) mà không làm ô nhiễm tính thuần khiết của Domain Model?

Junior

Trong Domain-Driven Design, Domain Model phải hoàn toàn thuần túy, tập trung vào logic nghiệp vụ cốt lõi và không được phụ thuộc trực tiếp vào các tác vụ bên ngoài như cơ sở dữ liệu, thời gian hệ thống, hoặc gọi API bên thứ ba (I/O Bound). Để giải quyết vấn đề này, chúng ta sử dụng Domain Event kết hợp với Application Service.

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

Khi thiết kế hệ thống thương mại điện tử theo Domain-Driven Design, làm thế nào để quyết định ranh giới của một Aggregate Root giữa Order và OrderItem thay vì gom chung tất cả vào một bảng dữ liệu lớn?

Junior

Việc xác định ranh giới giữa Aggregate Root và các thành phần bên trong dựa trên tính nhất quán giao dịch (Transactional Consistency) và các bất biến nghiệp vụ (Business Invariants).

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

Trong Domain-Driven Design, tại sao việc sử dụng kiểu dữ liệu nguyên thủy (Primitive Obsession) lại là mộtanti-pattern và Value Object giải quyết vấn đề này như thế nào?

Junior

Primitive Obsession là hiện tượng sử dụng các kiểu dữ liệu nguyên thủy như String, Integer, Decimal để biểu diễn các khái niệm nghiệp vụ phức tạp thay vì tạo ra các đối tượng chuyên biệ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...
1105

Trong bối cảnh tích hợp hệ thống cũ (Legacy System) với hệ thống mới áp dụng Domain-Driven Design, khái niệm Anti-Corruption Layer (ACL) hoạt động như thế nào và tại sao nó quan trọng?

Junior

Anti-Corruption Layer (ACL - Tầng chống tham nhũng) là một mẫu thiết kế kiến trúc dùng để ngăn chặn mô hình dữ liệu và thuật ngữ rườm rà của hệ thống cũ làm ô nhiễm mô hình miền (Domain Model) sạch sẽ của hệ thống mới.

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

Tại sao việc sử dụng thuật toán Least Time lại thường được ưu tiên hơn Least Connections trong các hệ thống yêu cầu độ trễ thấp (low latency)?

Junior

Thuật toán Least Connections chỉ dựa trên số lượng kết nối hiện tại đang mở trên mỗi Backend Server, điều này có thể gây ra sự mất cân bằng nếu các kết nối đó có tải trọng khác nhau. Ngược lại, thuật toán Least Time tính toán dựa trên cả số lượng kết nối đang hoạt động và thời gian phản hồi trung bình (response time) từ server đó.

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

Khi triển khai Load Balancer, tại sao việc cấu hình Health Check quá dày đặc (tần suất cao) lại có thể gây ra hiệu ứng ngược cho hệ thống?

Junior

Việc cấu hình Health Check với tần suất quá cao (ví dụ mỗi 100ms) có thể dẫn đến hiện tượng 'tự tấn công' (self-inflicted DDoS) đối với các Backend Server.

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

Sự khác biệt giữa Load Balancing ở tầng Network (Layer 4) và tầng Application (Layer 7) ảnh hưởng như thế nào đến khả năng xử lý các yêu cầu HTTP/HTTPS?

Junior

Sự khác biệt nằm ở phạm vi thông tin mà Load Balancer có thể đọc được để đưa ra quyết định định tuyế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...
1109

Tại sao việc cấu hình Load Balancer ở chế độ IP Hash lại giúp giải quyết vấn đề Session Affinity nhưng lại gây ra rủi ro mất cân bằng tải (Load Imbalance)?

Junior

IP Hash là phương pháp định tuyến dựa trên địa chỉ IP của client. Load Balancer sẽ thực hiện băm (hash) địa chỉ IP để chọn ra một Backend Server cố định 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...
1110

Trong kiến trúc hệ thống, tại sao việc đặt Load Balancer phía trước một cụm Database (Database Load Balancing) lại phức tạp hơn nhiều so với Web Server Load Balancing?

Junior

Việc cân bằng tải cho Database không chỉ đơn thuần là phân phối request mà còn phải đảm bảo tính toàn vẹn dữ liệu (Data Consistency).

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