หน้าแรก Applications 5 เหตุผลสำคัญที่ควรใช้ RxJavaในโปรเจ็กต์จาวาของคุณ

5 เหตุผลสำคัญที่ควรใช้ RxJavaในโปรเจ็กต์จาวาของคุณ

แบ่งปัน

Reactive Extensions (Rx) คือชุดคำสั่งและอินเทอร์เฟซที่ถูกนำมาใช้แก้ปัญหามากมายทั้งแบบง่ายและซับซ้อนของเหล่านักพัฒนา ซึ่งการนำมาใช้ร่วมกับจาวานั้นจะทำให้คุณสามารถจัดการแอคชั่นได้หลายตัวบนอีเวนต์ของระบบที่หลากหลายได้พร้อมกัน

นอกจากนี้ยังช่วยในการเขียนโค้ดให้สวยงามโดยที่คงความเรียบง่ายไว้ได้ ดังนั้น ทาง TechNotification.com จึงได้รวบรวมเหตุผลสำคัญ 5 ประการที่คุณควรนำ RxJava มาใช้ในโปรเจ็กต์ไว้ดังต่อไปนี้

1. เป็นแนวทางแบบ Functional

การเขียนโปรแกรมแบบฟังก์ชั่นนอลนั้นได้แก่การเน้นใช้ฟังก์ชั่นในฐานะพารามิเตอร์ รวมทั้งในฐานะผลลัพธ์ของฟังก์ชั่นอื่น เช่น Map ที่เป็นฟังก์ชั่นลำดับสูงที่นิยมใช้ในภาษาโปรแกรมมิ่งหลายชนิด ถ้านำมาใช้กับทุกองค์ประกอบของรายการ ก็จะคืนค่าที่เป็นรายการของผลลัพธ์มาเช่นกัน

ดังนั้น ถ้าคุณคุ้นเคยกับการเขียนโปรแกรมแบบเน้นใช้ฟังก์ชั่น และเข้าใจหลักการของ Map และ Zip แล้ว ก็จะสามารถเรียนรู้ RxJavaได้ง่ายขึ้นด้วย

2. ใช้ Operator ผ่านตัวกำหนดเวลา

มีหลาย Operator ที่จำเป็นต้องระบุ Scheduler ถึงจะใช้ฟังก์ชั่นได้ นอกจากนี้ยังมีวิธีแบบโอเวอร์โหลดที่ใช้ computation(), delay()ในฐานะ Scheduler ได้ด้วย ซึ่งคุณควรประกาศ Scheduler ที่ต้องการในฐานะอากิวเมนต์ที่สามทุกครั้งถ้าไม่ต้องการใช้ตัวComputation Scheduler

และนอกจาก delay() แล้ว คุณยังมี Operator อื่นๆ มากมายที่สามารถเปลี่ยนการกำหนดเวลาได้ด้วยไม่ว่าจะเป็น interval (), debounce (), timer (), skip (), timeout ()เป็นต้น

3. ทำแคชได้ง่าย

การ Caching ถือเป็นหนึ่งในวิธีที่ดีที่สุดในการยกระดับประสิทธิภาพของแอพพลิเคชั่น เนื่องจากช่วยลดการเรียกใช้งานบนเครือข่ายด้วยการแคชข้อมูลตอบสนองของเน็ตเวิร์ก และจะเรียกดูข้อมูลได้รวดเร็วมากขึ้นด้วยถ้าข้อมูลถูกแคชไว้

การทำแคชนั้นมีสองรูปแบบคือ แบบ Memory Cache ที่เก็บข้อมูลไว้ในหน่วยความจำของแอพพลิเคชั่น และแบบ Disk Cache ที่บันทึกข้อมูลลงบนดิสก์

4. ใช้ Subject ได้

ถ้าคุณกำลังทำงานกับอ๊อพเจ็กต์แล้ว ก็ควรทราบว่าลำดับการเปลี่ยนแปลงในข้อมูลที่ถูกส่งไปยังSubjectonNextโดยดีฟอลต์ และจะถูกประมวลผลบน Thread เดียวกัน โดยจะมีการเรียกใช้ onNext() จนกว่าจะไม่พบ Operator observeOn()บน Sequence นั้นๆ

นั่นคือ เวลาที่เราลงทะเบียนกับ Subject จะมีการคืนค่าในทันที จากนั้นจึงถูกประมวลผลใน Thread ของ Shedulers.io()ซึ่งหลังจากนั้น เมื่อมีข้อความถัดขึ้นมาแสดงใน Subject ก็จะใช้ Thread ในการเรียกใช้ onNext()

5. สามารถสตรีมได้แบบ Asynchronous

สมมติว่าคุณต้องการส่งคำร้องขอไปยังฐานข้อมูลเพื่อต้องการทั้งข้อความและการตั้งค่าในทันที โดยเมื่อกระบวนการทั้งหมดเสร็จแล้ว ก็อยากให้แสดงข้อความต้อนรับบนหน้าจอ ซึ่งการจะได้ผลลัพธ์ดังกล่าวด้วยจาวานั้น คุณต้องทำโปรเซสที่ยาวมาก

โดยต้องรัน AsyncTaskที่แตกต่างกัน 3 – 4 รายการ แล้วสร้าง Semaphore ที่จะรอทั้งคำร้องขอการตั้งค่าและข้อความทำงานเสร็จ เป็นต้น แต่ด้วย RxJavaเราสามารถปรับปรุงกระบวนการที่โค้ดอยู่ในรูป Thread ที่ตั้งอยู่ในตำแหน่งหนึ่ง และสร้างขึ้นจากรากฐานของ Functional Paradigm ได้

ที่มา : Technotification