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.
Khóa học Chuyên sâu Reactive Programming

Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

16

Sự khác biệt giữa toán tử map và mergeMap là gì, và tại sao việc nhầm lẫn giữa chúng lại gây ra lỗi logic trong việc xử lý dữ liệu bất đồng bộ?

Junior

Toán tử map chỉ đơn thuần là biến đổi giá trị (giống như Array.prototype.map), nó trả về giá trị trực tiếp. Ngược lại, mergeMap được dùng để xử lý các tác vụ bất đồng bộ (Inner Observable), nó sẽ tự động subscribe vào Observable được trả về và 'flatten' (làm phẳng) kết quả vào luồng chính. Lỗi phổ biến của Junior là sử dụng map để gọi một hàm trả về Observable, dẫn đến việc nhận được một Observable lồng nhau (Observable<Observable>) thay vì giá trị thực tế. Để lấy dữ liệu từ các tác vụ bất đồng bộ, bắt buộc phải dùng các toán tử dạng *Map như mergeMap, switchMap hoặc concatMap.

17

Trong kiến trúc Microservices, làm thế nào để sử dụng AsyncSubject để lưu trữ và phát đi trạng thái khởi tạo cuối cùng của một ứng dụng?

Junior

AsyncSubject có đặc điểm chỉ phát ra giá trị cuối cùng của chuỗi dữ liệu sau khi Observable hoàn thành (complete). Trong kiến trúc Enterprise, nó rất hữu ích khi cần thực hiện một chuỗi các tác vụ khởi tạo (ví dụ: tải cấu hình, xác thực người dùng, lấy thông tin profile) và chỉ muốn thông báo cho các thành phần khác khi tất cả đã hoàn tất. Khi các thành phần khác subscribe vào AsyncSubject sau khi nó đã hoàn thành, chúng sẽ nhận được giá trị cuối cùng đó ngay lập tức. Lưu ý: Nếu AsyncSubject không được gọi complete(), nó sẽ không phát ra bất kỳ giá trị nào, đây là điểm cần kiểm soát chặt chẽ trong luồng logic.

18

Trong Reactive Programming, sự khác biệt cốt lõi giữa Cold Observable và Hot Observable là gì và lập trình viên Junior cần lưu ý gì khi sử dụng trong ứng dụng Web?

Junior

Bản chất cốt lõi

  1. Cold Observable:

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

Tại sao việc sử dụng toán tử shareReplay lại quan trọng trong Reactive Programming khi làm việc với các HTTP Request ở tầng Service và cách áp dụng chuẩn Enterprise?

Junior

Vấn đề thực tế

Trong các ứng dụng Enterprise, một component giao diện có thể cần dữ liệu cấu hình hoặc thông tin người dùng được gọi từ API. Nếu cấu trúc code không tốt, mỗi component khi subscribe vào service sẽ kích hoạt một HTTP request độc lập, dẫn đến lãng phí băng thông mạng và tài nguyên 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...
20

Làm thế nào để xử lý vòng đời của Subscription một cách an toàn trong các Framework hiện đại như Angular hoặc React để tránh Memory Leak trong ứng dụng Reactive Programming?

Junior

Bản chất vấn đề

Khi một Observable được subscribe, nó sẽ duy trì tham chiếu đến các tài nguyên bên trong (như DOM listeners, timers, HTTP streams). Nếu component bị hủy (destroy) nhưng Subscription vẫn tồn tại, bộ nhớ sẽ không được giải phóng, gây ra Memory Leak và làm giảm hiệu năng ứ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...
21

Sự khác biệt giữa toán tử mergeMap và switchMap là gì? Hãy nêu tình huống thực tế trong ứng dụng Web mà lập trình viên Junior cần phân biệt rõ để tránh lỗi logic.

Junior

Định nghĩa và Cơ chế hoạt động

  1. mergeMap (flatMap):

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

Tại sao việc kết hợp các toán tử debounceTime, distinctUntilChanged và switchMap lại là tiêu chuẩn vàng khi xây dựng tính năng Auto-complete Search trong Reactive Programming?

Junior

Phân tích bài toán

Khi xây dựng tính năng tìm kiếm tự động (Auto-complete), nếu gọi API ngay mỗi khi người dùng gõ một phím (keyup), hệ thống sẽ gặp các vấn đề nghiêm trọ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...
23

Làm thế nào để phân biệt sự khác biệt cốt lõi giữa Observable và Subject trong Reactive Programming khi áp dụng vào các thành phần giao diện người dùng?

Junior

Phân biệt Observable và Subject

Trong lập trình Reactive Programming, việc hiểu rõ sự khác biệt giữa Observable và Subject là nền tảng quan trọng giúp lập trình viên cấp độ Junior xây dựng kiến trúc ứng dụng vững chắc.

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

Tại sao việc sử dụng toán tử SwitchMap lại quan trọng trong việc xử lý các tác vụ tìm kiếm thời gian thực (Real-time Search) và nó giải quyết vấn đề gì?

Junior

Vai trò của SwitchMap trong Real-time Search

Khi phát triển tính năng tìm kiếm thời gian thực (Typeahead Search), người dùng liên tục gõ các ký tự vào ô input. Điều này tạo ra một lượng lớn các sự kiện phát sinh liên tục trong khoảng thời gian ngắ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...
25

Memory Leak là gì trong Reactive Programming và làm thế nào để phòng tránh hiện tượng này khi làm việc với các Subscriptions?

Junior

Memory Leak và Quản lý Subscriptions

Trong các ứng dụng Single Page Application (SPA) hoặc ứng dụng Enterprise quy mô lớn, rò rỉ bộ nhớ (Memory Leak) là một trong những lỗi nghiêm trọng làm giảm hiệu năng hệ thống theo thời gian.

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

Tại sao việc xử lý lỗi (Error Handling) trong Reactive Programming lại quan trọng và làm thế nào để ngăn chặn việc luồng dữ liệu bị đứt gãy hoàn toàn khi xảy ra ngoại lệ?

Junior

Cơ chế xử lý lỗi trong Reactive Programming

Trong lập trình Reactive, một khi sự kiện error được phát ra bởi một Observable, toàn bộ luồng dữ liệu (stream) sẽ chính thức bị chấm dứt (terminated) và không thể tiếp tục nhận thêm bất kỳ giá trị nào nữa.

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

Sự khác biệt giữa BehaviorSubject và ReplaySubject là gì và trường hợp nghiệp vụ nào nên áp dụng từng loại cụ thể?

Junior

Phân biệt BehaviorSubject và ReplaySubject

Cả BehaviorSubject và ReplaySubject đều là các lớp con mở rộng từ Subject, cho phép lưu trữ và cung cấp lại các giá trị cũ cho các subscriber mới tham gia muộn (Late subscribers).

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

Hãy giải thích chi tiết cơ chế hoạt động của Observables vs Promises trong lập trình Reactive Programming.

Junior

Trong phát triển dự án với Reactive Programming, việc tối ưu hóa và quản lý tốt Observables vs Promises là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõ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...
29

Hãy giải thích chi tiết cơ chế hoạt động của Asynchronous flows management trong lập trình Reactive Programming.

Junior

Trong phát triển dự án với Reactive Programming, việc tối ưu hóa và quản lý tốt Asynchronous flows management là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõ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...
30

Trong Reactive Programming, việc sử dụng toán tử catchError để xử lý lỗi tại cấp độ Observable thay vì try-catch truyền thống mang lại lợi ích gì cho tính ổn định của hệ thống Enterprise?

Middle

Việc sử dụng catchError trong Reactive Programming giúp duy trì luồng dữ liệu (Stream) không bị ngắt quãng đột ngột khi xảy ra lỗi. Khác với try-catch truyền thống thường làm dừng thực thi hàm, catchError cho phép chúng ta thực hiện các chiến lược phục hồi 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...
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