คำถามติดแท็ก reactive-programming

18
การเขียนโปรแกรมปฏิกิริยา (ทำงาน) คืออะไร?
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ผมเคยอ่านบทความวิกิพีเดียในการเขียนโปรแกรมปฏิกิริยา ฉันยังอ่านบทความเล็ก ๆ เกี่ยวกับการเขียนโปรแกรมปฏิกิริยาการทำงาน คำอธิบายค่อนข้างเป็นนามธรรม functional reactive programming (FRP) หมายถึงอะไรในทางปฏิบัติ? การเขียนโปรแกรมเชิงรับ (reactive programming) คืออะไร? ภูมิหลังของฉันอยู่ในความจำเป็น / ภาษา OO ดังนั้นคำอธิบายที่เกี่ยวข้องกับกระบวนทัศน์นี้จะได้รับการชื่นชม

1
ReactiveCocoa vs RxSwift - ข้อดีและข้อเสีย?
ดังนั้นด้วยความรวดเร็วผู้คนReactiveCocoaจึงได้เขียนมันใหม่ในเวอร์ชั่น 3.0 เพื่อความรวดเร็ว นอกจากนี้ยังมีการโครงการอื่นปั่นขึ้นเรียกว่าRxSwift ฉันสงสัยว่าผู้คนสามารถเพิ่มข้อมูลเกี่ยวกับความแตกต่างในการออกแบบ / api / ปรัชญาของทั้งสองกรอบงานได้ไหม (โปรดในจิตวิญญาณของ SO ยึดติดกับสิ่งที่เป็นจริงมากกว่าความคิดเห็นที่ "ดีที่สุด") [หมายเหตุสำหรับ Modem StackOverflow: คำถามนี้ไม่มีคำตอบที่ชัดเจนคำตอบคือความแตกต่างระหว่างสองเฟรมเวิร์ก ฉันคิดว่ามันเป็นอย่างสูงในหัวข้อสำหรับดังนั้น] ในการเริ่มต้นความประทับใจครั้งแรกของฉันจากการอ่าน ReadMe คือ: ในฐานะที่เป็นคนที่คุ้นเคยกับ C # Rx "ของจริง" จาก microsoft RxSwift จึงเป็นที่รู้จักมากขึ้น ReactiveCococa ดูเหมือนจะหายไปในพื้นที่ของตัวเองแล้วในตอนนี้แนะนำ abstractions ใหม่เช่น Signals vs SignalProducers และ Lifting ในอีกด้านหนึ่งดูเหมือนว่าจะอธิบายสถานการณ์บางอย่าง (สัญญาณ Hot vs Cold) แต่ในทางกลับกันดูเหมือนว่าจะเพิ่มความซับซ้อนของกรอบจำนวนมาก

7
ความแตกต่างระหว่าง flatmap และ switchmap ใน RxJava คืออะไร?
rxjava docคำนิยามของ switchmap ค่อนข้างคลุมเครือและจะเชื่อมโยงไปยังหน้าเดียวกันเป็น flatmap ความแตกต่างระหว่างผู้ประกอบการทั้งสองคืออะไร?

2
RxJS: ฉันจะ“ อัปเดตด้วยตนเอง” แบบสังเกตได้อย่างไร
ฉันคิดว่าฉันต้องเข้าใจบางสิ่งบางอย่างพื้นฐานเพราะในใจของฉันนี่ควรจะเป็นกรณีพื้นฐานที่สุดสำหรับการสังเกต แต่สำหรับชีวิตของฉันฉันไม่สามารถหาวิธีที่จะทำจากเอกสาร โดยทั่วไปฉันต้องการทำสิ่งนี้: // create a dummy observable, which I would update manually var eventObservable = rx.Observable.create(function(observer){}); var observer = eventObservable.subscribe( function(x){ console.log('next: ' + x); } ... var my_function = function(){ eventObservable.push('foo'); //'push' adds an event to the datastream, the observer gets it and prints // next: foo } …

7
เหตุใดจึงต้องใช้ Redux-Observable กับ Redux-Saga
ฉันได้ใช้Redux-Saga รหัสที่เขียนด้วยเหตุผลนั้นง่ายมากยกเว้นฟังก์ชั่นตัวสร้าง JS ทำให้หัวของฉันสับสนเป็นครั้งคราว จากความเข้าใจของฉันRedux-Observableสามารถทำงานที่คล้ายกันซึ่งจัดการกับผลข้างเคียง แต่ไม่ต้องใช้ฟังก์ชันเครื่องกำเนิดไฟฟ้า อย่างไรก็ตามเอกสารจาก Redux-Observable ไม่ได้ให้ความเห็นมากมายว่าเหตุใดจึงเหนือกว่า Redux-Saga ฉันต้องการทราบว่าการไม่ใช้ฟังก์ชันเครื่องกำเนิดไฟฟ้าเป็นประโยชน์เพียงอย่างเดียวของการใช้ Redux-Observable หรือไม่ และอะไรคือข้อเสีย gotcha หรือการประนีประนอมจากการใช้ Redux-Observable แทน Redux-Saga? ขอบคุณล่วงหน้า.

6
Subject vs BehaviorSubject vs ReplaySubject ใน Angular
ฉันต้องการทำความเข้าใจ 3 สิ่งเหล่านี้: เรื่อง , เรื่องพฤติกรรมและReplay เรื่อง ฉันต้องการใช้มันและรู้ว่าเมื่อใดและทำไมประโยชน์ของการใช้คืออะไรและแม้ว่าฉันจะอ่านเอกสารดูบทแนะนำและค้นหาใน Google แล้ว แต่ฉันก็ไม่เข้าใจเรื่องนี้ แล้วจุดประสงค์ของพวกเขาคืออะไร? กรณีในโลกแห่งความเป็นจริงจะได้รับการชื่นชมมากที่สุดโดยไม่ต้องใช้รหัส ฉันต้องการคำอธิบายที่ชัดเจนไม่ใช่แค่ "a + b => c ที่คุณสมัครรับข้อมูล .... " ขอบคุณ

8
“ callback hell” คืออะไรและ RX แก้อย่างไรและทำไม?
ใครช่วยให้คำจำกัดความที่ชัดเจนพร้อมกับตัวอย่างง่ายๆที่อธิบายว่า "callback hell" คืออะไรสำหรับคนที่ไม่รู้จัก JavaScript และ node.js "ปัญหานรกเรียกกลับ" (ในการตั้งค่าแบบใด) เกิดขึ้นเมื่อใด ทำไมมันถึงเกิดขึ้น? "callback hell" เกี่ยวข้องกับการคำนวณแบบอะซิงโครนัสเสมอหรือไม่ หรือ "callback hell" สามารถเกิดขึ้นในแอปพลิเคชันเธรดเดียวได้หรือไม่? ฉันเข้าเรียนหลักสูตร Reactive ที่ Coursera และ Erik Meijer กล่าวในการบรรยายครั้งหนึ่งของเขาว่า RX ช่วยแก้ปัญหา "นรกเรียกกลับ" ได้ ฉันถามว่า "นรกเรียกกลับ" ในฟอรัม Coursera คืออะไร แต่ฉันไม่ได้รับคำตอบที่ชัดเจน หลังจากอธิบาย "callback hell" ในตัวอย่างง่ายๆคุณสามารถแสดงให้เห็นว่า RX แก้ปัญหา "callback hell" ในตัวอย่างง่ายๆนั้นได้อย่างไร

8
รวมรายชื่อ Observables และรอจนกว่าทั้งหมดจะเสร็จสมบูรณ์
TL; DR วิธีการแปลงTask.whenAll(List<Task>)เป็นRxJava? รหัสที่มีอยู่ของฉันใช้ Bolts เพื่อสร้างรายการงานแบบอะซิงโครนัสและรอจนกว่างานเหล่านั้นทั้งหมดจะเสร็จสิ้นก่อนที่จะดำเนินการขั้นตอนอื่น ๆ โดยพื้นฐานแล้วมันสร้างขึ้นList<Task>และส่งกลับคนเดียวTaskที่ถูกทำเครื่องหมายเป็นเสร็จสมบูรณ์เมื่อทุกงานในรายการเสร็จสมบูรณ์ตามตัวอย่างเช่นในเว็บไซต์ของสกรู ฉันต้องการแทนที่Boltsด้วยRxJavaและฉันสมมติว่าวิธีนี้ในการสร้างรายการงาน async (ขนาดที่ไม่ทราบล่วงหน้า) และรวมทั้งหมดเป็นงานเดียวObservableเป็นไปได้ แต่ฉันไม่รู้ว่าจะทำอย่างไร ฉันได้พยายามมองหาที่merge, zip, concatฯลฯ ... แต่ไม่สามารถได้รับการทำงานในList<Observable>ที่ฉันต้องการจะสร้างขึ้นเป็นพวกเขาทั้งหมดดูเหมือนมุ่งไปที่การทำงานในเวลาเพียงสองObservablesในเวลาถ้าผมเข้าใจเอกสารอย่างถูกต้อง ฉันกำลังพยายามเรียนรู้RxJavaและยังใหม่อยู่มากดังนั้นโปรดยกโทษให้ฉันหากนี่เป็นคำถามที่ชัดเจนหรืออธิบายไว้ในเอกสารที่ไหนสักแห่ง ฉันได้ลองค้นหาแล้ว ความช่วยเหลือใด ๆ จะได้รับการชื่นชมมาก

3
สถานะของการใช้งาน Functional Reactive Programming ในปัจจุบันเป็นอย่างไร
ฉันพยายามนึกภาพระบบทางกายภาพอัตโนมัติง่ายๆ (เช่นลูกตุ้มแขนหุ่นยนต์ ฯลฯ ) ใน Haskell บ่อยครั้งที่ระบบเหล่านั้นสามารถอธิบายได้ด้วยสมการเช่น df/dt = c*f(t) + u(t) ที่u(t)แสดงถึง 'การควบคุมอัจฉริยะ' บางประเภท ระบบเหล่านี้ดูเหมือนจะเข้ากันได้ดีในกระบวนทัศน์การเขียนโปรแกรมปฏิกิริยาเชิงฟังก์ชัน ดังนั้นผมจึงคว้าหนังสือ "Haskell ของโรงเรียนในการแสดงออก" โดยพอลฮูดักและพบว่าเฉพาะโดเมนภาษา "FAL" (สำหรับฟังก์ชั่นนิเมชั่น Language) ที่นำเสนอมีการใช้งานได้จริงค่อนข้าง pleasently สำหรับระบบของเล่นที่เรียบง่ายของฉัน (แม้ว่าการทำงานบางอย่างสะดุดตาintegrate, ดูเหมือนจะขี้เกียจไปหน่อยสำหรับการใช้งานที่มีประสิทธิภาพ แต่แก้ไขได้ง่าย) คำถามของฉันคืออะไรที่เป็นทางเลือกสำหรับผู้ใหญ่ที่ทันสมัยได้รับการดูแลเป็นอย่างดีได้รับการปรับแต่งประสิทธิภาพสำหรับแอปพลิเคชันขั้นสูงหรือแม้แต่ในทางปฏิบัติในปัจจุบัน หน้าวิกินี้แสดงตัวเลือกต่างๆสำหรับ Haskell แต่ฉันไม่ชัดเจนเกี่ยวกับประเด็นต่อไปนี้: สถานะของ "ปฏิกิริยา" โครงการจาก Conal Eliott ซึ่งเป็น (ตามที่ฉันเข้าใจ) หนึ่งในผู้คิดค้นกระบวนทัศน์การเขียนโปรแกรมนี้ดูไม่ค่อยดี ฉันชอบรหัสของเขา แต่ฉันควรลองทางเลือกอื่นที่ทันสมัยกว่านี้ไหม อะไรคือความแตกต่างหลักระหว่างพวกเขาในแง่ของไวยากรณ์ / ประสิทธิภาพ / ความเสถียรของรันไทม์ หากต้องการอ้างอิงจากการสำรวจในปี 2554 …

2
ฉันควรสร้างการสมัครสมาชิกใหม่สำหรับผลข้างเคียงที่เฉพาะเจาะจงเมื่อใด
สัปดาห์ที่แล้วฉันตอบคำถาม RxJS ที่ฉันได้พูดคุยกับสมาชิกชุมชนคนอื่นเกี่ยวกับ: "ฉันควรสร้างการสมัครรับข้อมูลสำหรับผลข้างเคียงที่เฉพาะเจาะจงทุกอย่างหรือฉันควรพยายามลดการสมัครสมาชิกให้น้อยที่สุด?" ฉันต้องการทราบว่าจะใช้ methology ใดในแง่ของวิธีการแอปพลิเคชั่นที่มีปฏิกิริยาเต็มรูปแบบหรือเมื่อใดที่จะเปลี่ยนจากที่หนึ่งไปยังอีกที่หนึ่ง สิ่งนี้จะช่วยฉันและคนอื่น ๆ ในการหลีกเลี่ยงการอภิปรายที่ไม่จำเป็น ข้อมูลการตั้งค่า ตัวอย่างทั้งหมดอยู่ใน TypeScript เพื่อมุ่งเน้นคำถามที่ดีกว่าไม่มีการใช้วงจรชีวิต / ตัวสร้างสำหรับการสมัครสมาชิกและเพื่อให้อยู่ในกรอบที่ไม่เกี่ยวข้อง ลองนึกภาพ: การสมัครสมาชิกถูกเพิ่มใน constructor / lifecycle init ลองนึกภาพ: การยกเลิกการสมัครสมาชิกทำในช่วงเวลาทำลายล้าง ผลข้างเคียงคืออะไร (ตัวอย่างเชิงมุม) อัปเดต / อินพุตใน UI (เช่นvalue$ | async) เอาท์พุท / ต้นน้ำขององค์ประกอบ (เช่น@Output event = event$) การโต้ตอบระหว่างบริการต่าง ๆ ในลำดับชั้นที่แตกต่างกัน ตัวอย่างที่เป็นประโยชน์: สองฟังก์ชั่น: foo: () => void; bar: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.