Giải đáp Sample question - Outsystems Associate Reactive Developer (Phần 2)

Xin chào mọi người,

Tiếp tục chuỗi bài đăng về Outsystems Associate Reactive Developer, hôm nay mình sẽ giải đáp sample question/sample exam official từ Outsystems cho kỳ thi Associate Reactive Developer phần 2 (từ câu 6 tới câu 10)

Associate Reactive Developer Sample Exam - EN.pdf

Về Outsystems và cách ôn luyện cho kỳ thi Associate Reactive Developer, các bạn có thể xem lại tại đây

Về giải đáp sample question/sample exam các phần khác, các bạn có thể xem lại tại đây.

Về các loại chứng chỉ Outsystems, level và giá từng loại, mình có tổng hợp vào một bài viết tại đây.

6. Lifecycle event


Câu hỏi liên quan tới life-cycle của screen. Các event này được tự động sinh ra và có thể được xử lý bằng handler cụ thể.
Khi initial 1 screen mới hoặc navigate từ một screen khác tới, event đầu tiên được kích hoạt là Initialize. Đặc điểm của event initialize như sau
  • Xảy ra khi bắt đầu mở màn hình or redirect từ một màn hình khác sang
  • DOM chưa load nên chỉ có thể xử lý logic ko liên quan tới DOM (set default value ...)
Sau khi event initialize hoàn thành, các aggreate và data action mới bắt đầu được khởi chạy nên các bạn lưu ý ko nên xử lý data ở event này do khi đó data chưa được load xong.
Vì vậy đáp án đúng là đáp án A.

Các đáp án khác
Đáp án B: Sai, đây là event On Ready.
Đáp án C: Sai, đây là After fetch event.
Đáp án D: Sai, đây là On Parameter change của Block

7. Aggreate (Get data ở màn hình)




Câu này khá khoai nếu các bạn không thực hành và hiểu kỹ lý thuyết.
Về căn bản, Fetch property có 2 giá trị 
  • At start: Khi On Initialize hoàn thành, Aggreate sẽ được chạy
  • Only on demand: Ở action flow, Refresh data được call -> Aggreate sẽ được chạy
Về After On Fetch
Sau khi aggreate chạy xong, event này sẽ được raise và trong handle sẽ xử lý dữ liệu được lấy về từ aggreate.
Các kiểu thường gặp khi cần call aggreate lần lượt là, ở after on fetch của aggreate 1, nếu điều kiện của aggreate 2 thay đổi thì sẽ call refresh của aggreate 2.
Quay lại bài toán
  • Hiển thị country từ list của entity
  • Hiển thị City từ list của entity, tuy nhiên city này cần nằm trong country đã được chọn ở trên/
Chúng ta phân tích từng đáp án
Đáp án A: Đúng, vì khi City ko cần được lấy ngay sau khi Initilize screen mà nên được lấy sau khi Country đã được select.
Đáp án B: Đúng, vì như giải thích ở trên, khi Country thay đổi, cần refresh lại aggreate Get City để cập nhật data trong dropdown cho City
Đáp án C: Đúng cần filter City theo Country đã được chọn.
Đáp án D: Sai, cần call Refresh, ko thể call trực tiếp aggreate để update data của dropdown City.

8. Block & Event




Block là một UI độc lập, có xử lý logic, get data độc lập được wrap lại cho mục đích reuse.

Đáp án B: Block có thể là instance của screen hoặc block khác
Các  đáp án khác:
Đáp án A: Sai, vì block còn có thể đặt trong block khác
Đáp án C: Sai, vì block cần instance trong screen hoặc block, ko thể chỉ đặt trong client action.
Đáp án D: Sai, block ko thể làm instance trong external HTML page

9. Block & Event (Trigger Event)




Về mặt khái  niệm, screen ko thể can thiệp vào block ở bên trong nó mà chỉ có thể tương tác với block thông qua các event được raise từ block.
Bài này nhắc đến khái niệm Trigger Event, các bạn có thể tham khảo bài hướng dẫn ở đây
Dựa vào khái niệm ở trên. đáp án A.

10. Build-in validation




Với câu hỏi validation nào tự động thực hiện khi build-in validation được set thành True, chúng ta cần xem lại khái niệm build-in validation
Build-in validation set thành true sẽ validate 2 yếu tố
  • Các trường required (mandatory) đã được fill hay chưa
  • Kiểu dữ liệu định nghĩa trong input form có đúng không (ví dụ nếu define input là number thì khi build-in validation sẽ return false nếu nhập text)
Với kiến thức trên, chúng ta cùng check lại các đáp án
Đáp án A: Sai, vì validation còn check cả input data type
Đáp án B: Sai, logic sử dụng non-mandatory thì trong phần logic cần tự chekc.
Đáp án C: Đúng
Đáp án D: Sai, do form data source ko ảnh hưởng tới validation của build-in. Build-in sẽ xử dụng expected input data type để validate.

Nguồn tham khảo:

Bài đăng phổ biến từ blog này

Thi Outsystems có khó không? Kinh nghiệm thi OutSystems - Outsystems Associate Reactive Developer

Chứng chỉ Outsystems là gì? Gồm bao nhiêu loại? Đặc điểm và giá tiền