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

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

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

2
โดยทั่วไปการทำ bubbling ของเหตุการณ์ทำงานอย่างไรและมีความหมายเหมือนกันกับการเผยแพร่เหตุการณ์
ฉันพยายามล้อมรอบงานทั่วไปและหลักการของการจัดกิจกรรมในระบบที่ขับเคลื่อนด้วยเหตุการณ์ (ย่อย) แม้ว่าฉันจะใช้มันในบางครั้งเช่น Javascript, Flash (Actionscript 2 และ 3) และได้สร้างระบบการส่งเหตุการณ์อย่างง่ายใน PHP สำหรับตัวเองในครั้งเดียวฉันไม่เคยเข้าใจการทำ bubbling และ / หรือ การขยายพันธุ์ที่ดี คำถามแรก: การ พ้องเหตุการณ์หมายถึงการเผยแพร่เหตุการณ์หรือไม่ คำถามที่สอง: ฉันถูกต้องในการทำความเข้าใจของฉันว่าเมื่อเหตุการณ์ "ฟองสบู่" นี้หมายความว่ามันได้รับ "ย้าย" ขึ้นลำดับชั้นของวัตถุ? คำถามที่สามและสำคัญที่สุด: หากความเข้าใจในคำถาม 2 ถูกต้อง; สิ่งนี้คือ "การเคลื่อนย้าย" ถึงลำดับชั้นของวัตถุที่นำมาใช้โดยทั่วไป? โดยทั่วไปแล้วมันหมายความว่าวัตถุแม่ "redispatches" เหตุการณ์เดียวกันกับผู้ปกครองของมัน (จนกว่าจะถึงวัตถุราก)? และถ้าเป็นเช่นนั้น วัตถุเหล่านี้ทั้งหมดในลำดับชั้นจำเป็นต้องฟังลูก ๆ ของพวกเขาสำหรับเหตุการณ์เหล่านี้หรือฉันขาดสิ่งสำคัญในการทำความเข้าใจเกี่ยวกับเหตุการณ์เดือดร้อนซึ่งไม่มีความจำเป็นที่จะต้องให้วัตถุแม่ลงทะเบียนด้วยตนเองในฐานะผู้ฟังเหตุการณ์วัตถุเด็ก หากคุณสามารถแสดงให้เห็นถึงหลักการพื้นฐานเหล่านี้โดยใช้รหัสหลอกๆบางอย่างฉันจะขอบคุณมาก ๆ

2
จะสร้างรูทรวมใหม่ใน CQRS ได้อย่างไร?
เราควรสร้างรูทรวมใหม่ในสถาปัตยกรรม cqrs อย่างไร ในตัวอย่างนี้ฉันต้องการสร้างรากรวม AR2 ใหม่ที่เก็บการอ้างอิงถึงหนึ่ง AR1 ฉันกำลังสร้าง AR2 โดยใช้วิธี AR1 เป็นจุดเริ่มต้น จนถึงตอนนี้ฉันเห็นตัวเลือกน้อย: Inside method ใน AR1 createAr2RootOpt1ฉันสามารถโทรnew AR2()และบันทึกออบเจ็กต์นี้ไปยัง db imediatelly โดยใช้บริการโดเมนที่มีที่เก็บข้อมูล ฉันสามารถปล่อยเหตุการณ์ในรากรวมแรกเช่น SholdCreateAR2Eventและจากนั้นก็มีเทพนิยายไร้สัญชาติที่ตอบสนองต่อสิ่งนี้และออกคำสั่งCreateAR2Commandที่ได้รับการจัดการและสร้าง AR2 และปล่อยออกAR2CreatedEventมา ในกรณีของการใช้การจัดหาเหตุการณ์SholdCreateAR2Eventจะไม่ถูกเก็บไว้ในที่จัดเก็บกิจกรรมเนื่องจากจะไม่ส่งผลกระทบต่อสถานะของการรวมรากแรก (หรือเราควรบันทึกสิ่งนี้ไว้ในที่จัดเก็บกิจกรรม) class AR1{ Integer id; DomainService ds; //OPTION 1 void createAr2RootOpt1(){ AR2 ar2 = new AR2(); ds.saveToRepo(ar2); } //OPTION 2 void createAr2RootOpt2(){ publishEvent(new …

2
วิธีการตรวจสอบความสำเร็จในการเล่นเกม?
ฉันโพสต์สิ่งนี้ไปยัง stackoverflow โดยไม่ตั้งใจและตอนนี้โพสต์ที่นี่ตามคำแนะนำในเว็บไซต์นั้น ... นี่เป็นคำถามเชิงแนวคิดระดับสูงมาก พูดในแอปพลิเคชันซอฟต์แวร์ฉันมีการกระทำที่แตกต่างกัน 4 อย่างเช่นอัปโหลดแชร์แสดงความคิดเห็นและกดไลค์ และฉันต้องการมอบป้ายความสำเร็จให้กับผู้ใช้ที่ชอบ: Rookie - อัปโหลด 5 ไฟล์แรกของคุณ อัปโหลด Junkie - อัปโหลด 20 ไฟล์ใน 1 วัน ซอฟต์แวร์รวบรวมข้อมูลกลางคืน - อัปโหลดไฟล์หลังเที่ยงคืน Share-a-holic - แบ่งปัน 10 ไฟล์ที่แตกต่างกัน Likes-Everything - ชอบ 20 ไฟล์ที่แตกต่างกัน คุณได้รับความคิด เขาเป็นวิธีที่ดีที่สุดในการตรวจสอบและดูว่าผู้ใช้ได้รับความสำเร็จโดยเฉพาะโดยไม่ต้องรวบรวมตรรกะเพื่อความสำเร็จในรหัสของฉันหรือไม่ และ .. - รักษาความสามารถในการเพิ่มความสำเร็จใหม่หลังการคอมไพล์ (xml หรือ db) - ความสำเร็จต้องติดตามการกระทำที่เฉพาะเจาะจงจำนวนครั้งและเกณฑ์เพิ่มเติม (เช่นเวลาของวัน) - การตรวจจับควรใกล้เวลาจริงเพื่อให้ผู้ใช้แจ้งเตือน เกือบจะในทันทีเมื่อสำเร็จลุล่วง …

1
Futures / Monads vs Events
ในกรอบแอปพลิเคชันเมื่อผลกระทบต่อประสิทธิภาพการทำงานสามารถถูกเพิกเฉยได้ (10-20 เหตุการณ์ต่อวินาทีสูงสุด) อะไรคือการบำรุงรักษาและความยืดหยุ่นในการใช้เป็นสื่อที่ต้องการสำหรับการสื่อสารระหว่างโมดูล - เหตุการณ์หรืออนาคต / สัญญา / Monads ? บ่อยครั้งที่มีการกล่าวกันว่ากิจกรรม (pub / sub, ผู้ไกล่เกลี่ย) อนุญาตให้มีเพศสัมพันธ์แบบหลวม ๆ - แอปที่บำรุงรักษาได้ดีกว่า ... ประสบการณ์ของฉันปฏิเสธสิ่งนี้: เมื่อคุณมีเหตุการณ์มากกว่า 20 เหตุการณ์ - การแก้ไขข้อบกพร่องกลายเป็นเรื่องยาก เพราะมันยากมากที่จะเห็น: ใครเมื่อไหร่และทำไมใช้อะไร สัญญา (ฉันกำลังเข้ารหัสใน Javascript) มีความน่าเกลียดและโง่กว่าเหตุการณ์มาก แต่: คุณสามารถเห็นการเชื่อมต่อระหว่างการเรียกใช้ฟังก์ชั่นได้อย่างชัดเจนดังนั้นตรรกะของแอปพลิเคชันจะกลายเป็นสิ่งที่ตรงไปตรงมามากขึ้น สิ่งที่ฉันกลัว แม้ว่าจะเป็นสัญญาที่จะนำการแต่งงานที่ยากขึ้นกับพวกเขา ... ป.ล. : คำตอบไม่จำเป็นต้องอิงจาก JS ประสบการณ์จากภาษาอื่น ๆ ที่ใช้งานได้ดี

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