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

1
ทำไม Akka ถูกวางตลาดในฐานะปฏิกิริยา? นักแสดงนางแบบมีปฏิกิริยาหรือไม่?
เท่าที่ฉันเข้าใจโมเดล Actor และ Reactive Programming เป็นแนวคิดที่แยกจากกัน นักแสดงนางแบบดูเหมือนจะไม่ตอบสนองกับฉันโดยเนื้อแท้ อย่างไรก็ตามกรอบของ Akka ซึ่งเป็นการนำโมเดลของนักแสดงไปใช้นั้นถูกอธิบายว่าเป็นปฏิกิริยา: "ตรรกะของโปรแกรม Java และ Scala อาศัยอยู่ในวัตถุ Actor ที่มีน้ำหนักเบาซึ่งส่งและรับข้อความในรูปแบบที่ตอบโต้" "เรามีปฏิกิริยา" มันเป็นกรณีของการใช้คำผิดหรือพวกเขาจะถูกต้องสมบูรณ์? มีการนำโมเดลนักแสดง (เช่น Erlang) ไปทำปฏิกิริยาหรือไม่? การสร้างข้อความเป็นการตอบสนองต่อข้อความอื่น ๆ ที่ถือว่ามีปฏิกิริยาเหมือนกันหรือไม่? การอ่านที่เกี่ยวข้องบางส่วนที่มีวิธีการเปรียบเทียบ: StackOverflow: RX กับคิวการส่งข้อความเช่น rabbitmq หรือ zeromq? CS.SE: ฟังก์ชั่นการเขียนโปรแกรมปฏิกิริยาและรูปแบบของนักแสดงสัมพันธ์กันอย่างไร แลมบ์ดาสุดยอด: นักแสดงกับปฏิกิริยาที่เกิดขึ้น

3
คลาส RxJava Flowable ถูกต้องตามกฎหมายสามารถมี 460 วิธีได้หรือไม่?
ฉันเพิ่งเริ่มต้นกับRxJavaการใช้ReactiveXของ Java (หรือที่เรียกว่าRxและReactive Extensions ) สิ่งที่ทำให้ฉันหลงไหลจริงๆคือขนาดที่ใหญ่ของคลาสFlowableของ RxJava : มันมี 460 วิธี! เพื่อความเป็นธรรม: มีวิธีการมากมายที่มากเกินไปซึ่งกระแทกจำนวนวิธีทั้งหมดอย่างมีนัยสำคัญ บางทีคลาสนี้ควรจะถูกทำลาย แต่ความรู้และความเข้าใจของฉันเกี่ยวกับ RxJava มี จำกัด มาก คนที่สร้าง RxJava นั้นฉลาดมากและพวกเขาสามารถเสนอข้อโต้แย้งที่ถูกต้องในการเลือกสร้างFlowableด้วยวิธีการมากมาย ในทางกลับกัน: RxJava เป็นการใช้งาน Java ของส่วนขยายรีแอกทีฟของMicrosoftและนั่นไม่ได้มีคลาสFlowableดังนั้นนี่ไม่ใช่กรณีของการย้ายคลาสที่มีอยู่แบบสุ่มและนำไปใช้ใน Java [ อัปเดต:จุดก่อนหน้าในตัวเอียงไม่ถูกต้องตามจริง: คลาสObservableของ Microsoft ซึ่งมีมากกว่า 400 วิธีใช้เป็นพื้นฐานสำหรับคลาสObservableของ RxJava และFlowableนั้นคล้ายกับObservableแต่จัดการ backpressure สำหรับข้อมูลจำนวนมาก ดังนั้นทีม RxJava จึงย้ายคลาสที่มีอยู่ โพสต์นี้น่าจะท้าทายการออกแบบเดิมของคลาสObservableโดย Microsoft มากกว่าคลาสFlowableของ RxJava ] RxJava อายุน้อยกว่า 3 …

1
ส่วนขยายฟรีของ monad และปฏิกิริยามีความสัมพันธ์อย่างไร
ฉันมาจากพื้นหลัง C # ที่ LINQ พัฒนาเป็น Rx.NET แต่มีความสนใจใน FP เสมอ หลังจากที่ได้รู้จักกับ monads และบางโครงการใน F # ฉันก็พร้อมที่จะลองและก้าวไปอีกระดับ ตอนนี้หลังจากพูดคุยเกี่ยวกับ monad ฟรีจากผู้คนจาก Scala และการเขียนหลายครั้งใน Haskell หรือ F # ฉันได้พบไวยากรณ์พร้อมล่ามเพื่อความเข้าใจที่คล้ายกับIObservableโซ่ ใน FRP คุณเขียนคำจำกัดความการดำเนินการจากชิ้นส่วนเฉพาะของโดเมนที่เล็กลงรวมถึงผลข้างเคียงและความล้มเหลวที่อยู่ในห่วงโซ่ ใน monad ฟรีถ้าฉันเข้าใจอย่างถูกต้องคุณทำเช่นเดียวกันโดยทำให้การทำงานของคุณเป็น functors และยกพวกเขาโดยใช้ coyoneda อะไรคือความแตกต่างระหว่างทั้งสองที่เอียงเข็มไปทางใดก็ได้ อะไรคือความแตกต่างพื้นฐานเมื่อกำหนดบริการหรือโปรแกรมของคุณ

2
Entity-Component System แย่มากสำหรับการแยกส่วน / ซ่อนข้อมูลหรือไม่
ชื่อนี้มีความหมายเกินความจริงและมันอาจเป็นความไม่ชำนาญของฉันกับรูปแบบ แต่นี่คือเหตุผลของฉัน: "ปกติ" หรือเนื้อหาที่ตรงไปตรงมาของการใช้งานเอนทิตีคือการใช้พวกเขาเป็นวัตถุและ subclassing พฤติกรรมที่พบบ่อย สิ่งนี้นำไปสู่ปัญหาแบบคลาสสิกของ "is EvilTreesubclass of Treeor Enemy?" หากเรายอมให้มีการสืบทอดหลายครั้งปัญหาเพชรจะเกิดขึ้น เราแทนสามารถดึงการทำงานรวมกันTreeและEnemyขึ้นไปลำดับชั้นซึ่งนำไปสู่การเรียนพระเจ้าหรือเราจงใจสามารถออกจากพฤติกรรมของเราTreeและEntityการเรียน (ทำให้พวกเขาเชื่อมต่อในกรณีที่รุนแรง) เพื่อให้EvilTreeสามารถดำเนินการที่ตัวเอง - ซึ่งจะนำไปสู่ SomewhatEvilTreeการทำสำเนารหัสถ้าเราเคยมี ระบบ Entity-Component พยายามที่จะแก้ปัญหานี้โดยการหารTreeและEnemyวัตถุเป็นส่วนประกอบที่แตกต่างกัน - พูดPosition, HealthและAI- และดำเนินการระบบเช่นAISystemที่มีการเปลี่ยนแปลงตำแหน่งของ Entitiy ตามการตัดสินใจของเอไอ จนถึงดีมาก แต่จะเกิดอะไรขึ้นหากEvilTreeสามารถหยิบพลังและจัดการความเสียหายได้? ก่อนอื่นเราต้องการ a CollisionSystemและ a DamageSystem(เราอาจมีสิ่งเหล่านี้อยู่แล้ว) CollisionSystemความต้องการในการสื่อสารกับDamageSystemทุกครั้งที่สองสิ่งชนCollisionSystemส่งข้อความถึงDamageSystemสุขภาพเพื่อที่จะสามารถลบ ความเสียหายยังได้รับอิทธิพลจากการเติมพลังดังนั้นเราต้องเก็บมันไว้ที่ไหนซักแห่ง เราสร้างใหม่PowerupComponentที่เราแนบกับหน่วยงาน? แต่แล้วDamageSystemจำเป็นต้องรู้เกี่ยวกับบางสิ่งบางอย่างมันค่อนข้างจะไม่รู้อะไรเลย - นอกจากนี้ยังมีบางสิ่งที่สร้างความเสียหายที่ไม่สามารถรับพลังได้ (เช่นกSpike) เราอนุญาตให้มีPowerupSystemการแก้ไข a StatComponentที่ใช้สำหรับการคำนวณความเสียหายที่คล้ายกับคำตอบนี้หรือไม่? แต่ตอนนี้ทั้งสองระบบเข้าถึงข้อมูลเดียวกัน เมื่อเกมของเรามีความซับซ้อนมากขึ้นมันจะกลายเป็นกราฟพึ่งพาไม่มีตัวตนที่องค์ประกอบร่วมกันระหว่างระบบต่างๆ ณ จุดนี้เราสามารถใช้ตัวแปรคงที่ทั่วโลกและกำจัดแผ่นเหล็กทั้งหมด มีวิธีที่มีประสิทธิภาพในการแก้ปัญหานี้หรือไม่? …

1
รูปแบบการเขียนโปรแกรมปฏิกิริยา vs MVVM สำหรับจัดการการปรับปรุง GUI
ปฏิกิริยาการเขียนโปรแกรมและ MVVM เป็นสองวิธีที่สามารถแก้ไขปัญหาของการแยกชั้นโดเมนจาก UI MVVM ทำสิ่งนี้โดยกำหนด viewmodel ซึ่งเป็นโครงสร้างข้อมูลที่แม็พกับคอมโพเนนต์ UI UI แสดงข้อมูลและอาจอัปเดตเมื่อผู้ใช้เกิดขึ้น เฟรมเวิร์กที่ทำปฏิกิริยาจะกำหนดกราฟของสิ่งที่สังเกตได้ซึ่งแจ้งให้ UI ทราบว่ามีการเปลี่ยนแปลงข้อมูลบางส่วน เฟรมเวิร์กปฏิกิริยาได้รับการแบ่งปันความคิดทั้งในแพลตฟอร์มหลัก (ด้วย Rx ใน. net & java, react.js) และสถานที่ทดลองเพิ่มเติม (FRP in haskell) ฉันใช้ MVVM เป็นมุมเป็นหลักและฉันพบว่าอัตราส่วนความเรียบง่ายต่อการแสดงออกค่อนข้างน่าพอใจแม้ว่าฉันจะทำงานในโครงการขนาดเล็ก / ขนาดกลางเท่านั้น เฟรมเวิร์กที่ตอบสนองต่อการซื้อนักพัฒนาที่ mvvm ทำไม่ได้คืออะไร มีความแตกต่างจริงๆเหรอ? ตัวอย่างเช่น knockout.js ถูกโฆษณาเป็นเฟรมเวิร์ก mvvm แต่มีความรู้สึกโต้ตอบในอินเตอร์เฟส: this.firstName = ko.observable("John"); this.lastName = ko.observable("Smith"); this.fullName = ko.computed(function() { …
11 gui  mvvm  ui  reactive 

2
การดูแลรักษารัฐโดยไม่ได้รับมอบหมาย
ฉันกำลังเรียนรู้การเขียนโปรแกรมฟังก์ชั่นและฉันมีปัญหาในการทำความเข้าใจว่าบางสถานการณ์ถูกนำไปใช้โดยไม่ได้รับมอบหมาย ปัญหาง่าย ๆ ดังต่อไปนี้ค่อนข้างจะทำให้ฉันสับสน เขียนโปรแกรมที่รับเหตุการณ์เกี่ยวกับการเปลี่ยนแปลงในโครงสร้างข้อมูลที่กำหนดและส่งเหตุการณ์เมื่อโครงสร้างข้อมูลนี้ถึงสถานะที่แน่นอน ดังนั้นฉันจึงมีสำเนาของโครงสร้างข้อมูลที่ฉันเก็บไว้ datastructure_copy::DataStructure ฉันมีกระแสของเหตุการณ์ที่ถูกไล่ออกเมื่อมีการเปลี่ยนแปลง: datastructure_changes::Stream Change ฉันมีฟังก์ชั่นที่ใช้การเปลี่ยนแปลงกับโครงสร้างข้อมูลและส่งคืนสำเนาใหม่: apply_change::Change -> DataStructure -> DataStructure และฉันมีภาคที่ตรวจสอบว่าสถานะข้อมูลได้ถึงสถานะที่ต้องการ is_ready::DataStructure ->Boolean กล่าวอีกนัยหนึ่งฉันต้องการบางสิ่งเช่น 'ลด' ที่ทำงานบนสตรีม ฉันรู้ว่าวิธีหนึ่งในการดำเนินการนี้คือการคำนวณสถานะใหม่ทุกครั้งที่มีการเปลี่ยนแปลงมาถึงอย่างไรก็ตามสิ่งนี้ดูเหมือนจะไม่จริง ฉันเล่นกับ Monad ของรัฐ แต่ดูเหมือนว่าฉันจะแก้ปัญหาที่แตกต่าง ดังนั้นมีวิธีอื่นในการทำเช่นนั้น? โปรดทราบว่าคำถามของฉันเป็นแนวคิดอย่างหมดจดและฉันไม่คุ้นเคยอย่างลึกซึ้งกับ Haskell

1
อะไรคือความสัมพันธ์ระหว่าง“ ฟลักซ์” และการเขียนโปรแกรมปฏิกิริยาที่ใช้งานได้จริง?
Flux เท่าที่ฉันเข้าใจเป็นเทคนิคเกี่ยวกับการจัดการกับดาต้าโฟลว์ของแอปพลิเคชั่นทิศทางเดียวทำให้สถานะแยกออกจากส่วนที่เหลือของโปรแกรมใน "ร้านค้า" แบบอ่านอย่างเดียวที่มีอยู่ในตัวเองซึ่งสามารถเปลี่ยนสถานะของตนเองได้ "การกระทำ" ที่ถูกปล่อยออกมาจากการดูและส่งโดยผู้มอบหมายงาน หรือในระยะสั้น - วิธีการควบคุมสถานะ ถ้ามันถูกต้องมันจะสัมพันธ์กับฟังก์ชั่นการตอบโต้การเขียนโปรแกรมได้อย่างไร? เนื่องจาก FRP มีการควบคุมที่แข็งแกร่งเป็นอย่างมากฉันจึงเดาว่านี่เป็นเทคนิคพิเศษที่ไม่เหมือนกันซึ่งแก้ปัญหาเดียวกันได้จริง ดังนั้นหากใช้ไลบรารี FRP (เช่น Elm) แสดงว่า Flux มีประโยชน์เล็กน้อย ถูกต้องหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.