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

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

ที่มา: pixabay.com
การพึ่งพาเหตุการณ์
โฟลว์ของโปรแกรมได้รับจากเหตุการณ์ที่อาจเป็นการกระทำของผู้ใช้ข้อความจากโปรแกรมอื่น ๆ ฯลฯ โดยแยกตรรกะการประมวลผลของเหตุการณ์ออกจากโค้ดส่วนที่เหลือของโปรแกรมซึ่งตรงกันข้ามกับการประมวลผลแบบแบตช์
เหตุการณ์อาจมีตั้งแต่การยอมรับหรือปฏิเสธคำขอสินเชื่อที่เรียกว่าเหตุการณ์ระดับสูงไปจนถึงผู้ใช้กดคีย์ซึ่งเป็นเหตุการณ์ระดับต่ำ
เน้นการบริการ
ใช้ในการเขียนโปรแกรมที่ออกแบบมาเพื่อการบริการโดยไม่ทำให้คอมพิวเตอร์ทำงานช้าลงเนื่องจากการวางแนวบริการใช้พลังงานในการประมวลผลเพียงเล็กน้อย นอกจากนี้บริการโดยทั่วไปจะทำงานในพื้นหลังของระบบปฏิบัติการ
เหตุการณ์ที่เกิดขึ้น
เป็นเงื่อนไขที่เกิดขึ้นระหว่างการทำงานของโปรแกรมและจำเป็นต้องมีการดำเนินการบางอย่างในส่วนของระบบ แต่ละเหตุการณ์มีลักษณะที่แตกต่างกันบางเหตุการณ์ต้องการให้โปรแกรมดึงและแสดงข้อมูลบางอย่างและอื่น ๆ ต้องการการคำนวณและการเปลี่ยนแปลงสถานะเพื่อเริ่มต้น
เหตุการณ์รวมถึงเมาส์แป้นพิมพ์อินเทอร์เฟซผู้ใช้และการดำเนินการที่ควรเรียกใช้ในโปรแกรมเมื่อเกิดขึ้น ซึ่งหมายความว่าผู้ใช้ต้องโต้ตอบกับวัตถุในโปรแกรมเช่นคลิกปุ่มเมาส์ใช้แป้นพิมพ์เพื่อเลือกปุ่มเป็นต้น
ตัวควบคุม
เป็นหน่วยหนึ่งของโปรแกรมที่เปิดใช้งานเพื่อตอบสนองต่อเหตุการณ์ นั่นคือเป็นฟังก์ชันหรือเมธอดประเภทหนึ่งที่เรียกใช้การดำเนินการเฉพาะเมื่อเหตุการณ์บางอย่างถูกทริกเกอร์
ตัวอย่างเช่นอาจเป็นปุ่มที่เมื่อผู้ใช้คลิกจะแสดงข้อความและเมื่อคลิกปุ่มนั้นอีกครั้งจะปิดข้อความ
ฟังก์ชันทริกเกอร์
เป็นฟังก์ชันที่ตัดสินใจว่าจะรันโค้ดใดเมื่อเกิดเหตุการณ์เฉพาะ ใช้เพื่อเลือกว่าจะใช้ตัวจัดการเหตุการณ์ใดเมื่อเกิดเหตุการณ์
ควบคุมเวลา
เป็นรหัสเฉพาะที่ทำงานในช่วงเวลาหนึ่ง ซึ่งหมายความว่าเป็นงานที่กำหนดไว้ล่วงหน้าที่ต้องทำ
การอัปเดต Windows เป็นตัวอย่างของเวลาที่ควบคุมได้ซึ่งผู้ใช้สามารถกำหนดเวลาที่จะอัปเดตหรือเมื่อใดที่จะตรวจสอบและดาวน์โหลดการอัปเดต
ตัวอย่างของการเขียนโปรแกรมตามเหตุการณ์
โปรแกรมที่เน้นเหตุการณ์ได้กลายเป็นเรื่องปกติมาก ตัวอย่างที่โดดเด่นที่สุด ได้แก่ การประมวลผลคำเครื่องมือวาดภาพสเปรดชีต ฯลฯ
ระบบการส่งข้อความที่ทันสมัยส่วนใหญ่เป็นไปตามรูปแบบที่ขับเคลื่อนด้วยเหตุการณ์ในขณะที่เว็บไซต์ขนาดใหญ่ใช้สถาปัตยกรรมที่ปรับขนาดได้และขับเคลื่อนด้วยเหตุการณ์ในลักษณะกระจาย ตัวอย่างอื่น ๆ ได้แก่ :
- มีการกดปุ่ม (แก้ไขข้อความ)
- ปฏิทินงานใหม่พร้อมที่จะแจกจ่ายให้กับเจ้าหน้าที่ทุกคน (ระบบการจัดการ)
- ได้รับข้อความ HTML (เว็บเซิร์ฟเวอร์) แล้ว
- ตรวจพบรูปแบบการค้าที่ผิดกฎหมาย (การตรวจจับการฉ้อโกง)
- รถในเกมคอมพิวเตอร์ชนกับรถคันอื่น (เกมแข่งรถ)
- หุ่นยนต์มาถึงปลายทางแล้ว (การจัดการคลังสินค้าตามเวลาจริง)
ใบอนุญาตทำงาน
ตัวอย่างที่ใช้ได้จริงของเหตุการณ์ที่ใช้ในการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์อาจเป็นพนักงานที่ยื่นขอใบอนุญาตทำงานในระบบ เมื่อพนักงานคนนี้ส่งคำขอเขาจะเปิดใช้งานการแจ้งเตือนที่จะส่งไปยังผู้จัดการเพื่อขออนุมัติ
ผู้จัดการสามารถดูรายละเอียดของคำขออนุมัติหรือปฏิเสธอัปเดตในระบบโดยไม่จำเป็นต้องเริ่มเซสชันเพิ่มเติม
การเริ่มต้นของการกระทำ
การดำเนินการของโปรแกรมที่เป็นไปตามพื้นฐานของการเขียนโปรแกรมเชิงเหตุการณ์เริ่มต้นโดยเหตุการณ์:
- ฮาร์ดแวร์
- กำหนดเวลา
- เวลาดำเนินการ
- จากระบบปฏิบัติการ
- เปิดใช้งานโดยคำแนะนำของผู้ใช้ที่ให้ผ่านการโต้ตอบกับ GUI ของโปรแกรม
ในโหมดที่ง่ายที่สุดโปรแกรมเมอร์จะต้องตอบคำถามว่า "จะเกิดอะไรขึ้นเมื่อมีเหตุการณ์หนึ่งเกิดขึ้น"
รูทีนรหัสหลอกต่อไปนี้แสดงให้เห็นว่าตัวกำหนดตารางเวลาทำงานง่ายมากเพียงใด ประกอบด้วยลูปหลักที่ทำงานอย่างต่อเนื่องจนกว่าเงื่อนไขการสิ้นสุดบางอย่างจะเกิดขึ้น
เมื่อเหตุการณ์เกิดขึ้นตัวกำหนดตารางเวลาต้องกำหนดชนิดเหตุการณ์และเลือกตัวจัดการเหตุการณ์ที่เหมาะสมหรือจัดการกับเหตุการณ์หากไม่มีตัวจัดการเหตุการณ์ที่เหมาะสม

ความได้เปรียบ
การประมวลผลที่เร็วขึ้น
เนื่องจากการเผยแพร่ข้อมูลระหว่างโปรเซสเซอร์หลายตัวและตัวจัดการเหตุการณ์
การโต้ตอบ
นี่คือข้อได้เปรียบที่สำคัญที่สุดของการเขียนโปรแกรมเชิงเหตุการณ์ซึ่งช่วยปรับปรุงประสบการณ์ของผู้ใช้ ผู้ใช้ในปัจจุบันต้องการมีส่วนร่วมอย่างจริงจังและไม่ใช่ผู้บริโภคที่อยู่เฉยๆ
ดังนั้นโปรแกรมตามเหตุการณ์จึงช่วยให้ผู้ใช้สำรวจประสบการณ์ของตนเองและสำรวจตัวเลือกที่หลากหลายโดยไม่มีข้อ จำกัด ที่กำหนดไว้ล่วงหน้า
การเข้ารหัสการตัดสินใจน้อยลง
แนวทางการเขียนโปรแกรมนี้มีประโยชน์มากมายสำหรับผู้มีส่วนได้ส่วนเสียทั้งหมดเนื่องจากจำเป็นต้องมีการตัดสินใจในการเขียนโค้ดน้อยกว่าแอปพลิเคชันแบบเดิม
เหตุการณ์จำนวนมากถูกกำหนดโดยการกระทำของผู้ใช้แทนที่จะมีการเข้ารหัสขั้นสูงสำหรับสถานการณ์ที่เป็นไปได้ทั้งหมด ในขณะที่แอปพลิเคชันแบบเดิมทำหน้าที่แอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์จะตอบสนอง
มีความยืดหยุ่น
เหมาะอย่างยิ่งกับแนวโน้มด้านวิศวกรรมซอฟต์แวร์ล่าสุดเช่นการประมวลผลแบบคลาวด์ไมโครเซอร์วิสและความต้องการความสามารถในการปรับขนาดที่ดีขึ้นด้วยระบบที่ยืดหยุ่นและกระจาย
ตั๋วที่ถูกต้อง
ขจัดความเป็นไปได้ของรายการที่มีค่าที่ไม่ถูกต้อง แอปพลิเคชันแบบเดิมถามคำถามและอนุญาตให้ผู้ใช้พิมพ์คำตอบ โดยทั่วไปแอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์จะมีชุดตัวเลือกไม่ว่าจะเป็นปุ่มหรือเมนูแบบเลื่อนลง
บำรุงรักษาง่าย
ความจำเป็นในการแก้ไขและปรับโค้ดที่มีอยู่เมื่อเพิ่มหรือลบโมดูลจะถูกตัดออก ระบบยังคงทำงานได้อย่างราบรื่นโดยไม่คำนึงถึงการปรับเปลี่ยนดังกล่าว
ดังนั้นการเขียนโปรแกรมนี้จึงเหมาะสำหรับแอปพลิเคชันที่มีโฟลว์การควบคุมโดยอิงตามชุดของเหตุการณ์ภายในและภายนอกแทนที่จะเป็นไปตามโครงสร้าง
ข้อเสีย
ขั้นตอนการควบคุมที่ซับซ้อน
วิธีการเขียนโปรแกรมนี้ไม่ใช่ตัวเลือกที่ดีที่สุดสำหรับแอปพลิเคชันขนาดเล็กและเรียบง่ายเนื่องจากความพยายามที่ต้องทำไม่ได้กลายเป็นเรื่องสมเหตุสมผล
การพัฒนาแอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์จะช่วยเพิ่มความซับซ้อนในการออกแบบและจัดส่งระบบ เนื่องจากสถาปัตยกรรมซอฟต์แวร์แบบดั้งเดิมอิงตามการโต้ตอบตามคำขอมากกว่าการโต้ตอบที่ขับเคลื่อนด้วยเหตุการณ์
นอกจากนี้ยังจำเป็นต้องมีการเตรียมการอย่างมากเนื่องจากความจำเป็นในการวนซ้ำเหตุการณ์แบบไม่หยุดหย่อน
มันไม่ได้แทนที่การเขียนโปรแกรมแบบมีโครงสร้าง
ควรสังเกตว่าการเขียนโปรแกรมเชิงเหตุการณ์ไม่ได้แทนที่การเขียนโปรแกรมที่มีโครงสร้างแบบเดิม แต่เติมเต็มเท่านั้น
วิธีการเขียนโปรแกรมแบบดั้งเดิมยังคงมีความสำคัญสำหรับการเขียนโปรแกรมโดยรวมในขณะที่องค์ประกอบการเข้ารหัสที่ขับเคลื่อนด้วยเหตุการณ์ทำหน้าที่ช่วยออกแบบ GUI เท่านั้น
มีความยืดหยุ่น
ความยืดหยุ่นของการจัดกำหนดการที่มุ่งเน้นเหตุการณ์ซึ่งเป็นข้อได้เปรียบที่ไม่มีข้อโต้แย้งยังกลายเป็นการฉ้อโกงในบางสถานการณ์ การแสดงออกอย่างหนึ่งคือความไม่สามารถคาดเดาได้ของโปรแกรมที่มุ่งเน้นเหตุการณ์ในกรณีที่มีการเปลี่ยนแปลงและการควบคุมระบบโดยรวมที่อ่อนแอลง
แม้ว่าผู้เขียนโค้ดจะชอบใช้การเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์เพื่อทำการปรับเปลี่ยนแบบไม่เสียดทานเช่นการถอดหรือเพิ่มโมดูลที่ใช้งานได้บางส่วนการปรับเปลี่ยนเหล่านี้อาจทำให้เกิดการเปลี่ยนแปลงการทำงานที่ไม่คาดคิดได้
ในการเขียนโปรแกรมแบบเดิมระบบจะค้นพบความผิดปกติในการทำงานเหล่านี้ได้อย่างรวดเร็วโดยจัดทำรายงานให้โปรแกรมเมอร์ทราบถึงสาเหตุ ในสภาพแวดล้อมการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์การตรวจจับความผิดปกติดังกล่าวทำได้ง่ายและรวดเร็วน้อยลง
การประยุกต์ใช้งาน
เนื่องจากการเขียนโปรแกรมตามเหตุการณ์กลายเป็นแนวทางมากกว่าภาษาประเภทหนึ่งจึงสามารถสร้างแอปพลิเคชันตามเหตุการณ์ในภาษาโปรแกรมใดก็ได้
การเขียนโปรแกรมตามเหตุการณ์กำลังเปลี่ยนแปลงโลกของบริการพัฒนาซอฟต์แวร์และกำลังกลายเป็นส่วนสำคัญของการพัฒนาในปัจจุบัน การแพร่กระจายของมันถูกกระตุ้นโดย Windows และการแพร่กระจายของสภาพแวดล้อมภาพ
กรณีของสถานการณ์ที่ขับเคลื่อนด้วยเหตุการณ์จะคล้ายกับตัวตั้งเวลาปลุกที่ตั้งไว้ให้ทำงานเฉพาะในช่วงเวลาหนึ่งเช่นส่งเสียงเรียกเข้าและสื่อสารบางอย่างที่บอกว่า "ตื่นได้แล้ว!"
ส่วนต่อประสานผู้ใช้แบบกราฟิก
วิธีการจัดกำหนดการนี้เน้นเหตุการณ์เป็นศูนย์กลาง พื้นที่แอปพลิเคชันที่พบมากที่สุด ได้แก่ การสร้างอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) แอปพลิเคชันเซิร์ฟเวอร์และการพัฒนาเกมแบบผู้เล่นหลายคน
ในขณะที่โปรแกรมทั่วไปสร้างขั้นตอนของเหตุการณ์และมีการควบคุมตัวเลือกของผู้ใช้โปรแกรมที่เป็นนวัตกรรมใหม่นี้ทำหน้าที่สร้าง GUI
GUI เปลี่ยนการโต้ตอบระหว่างมนุษย์กับคอมพิวเตอร์โดยเสนอตัวเลือกมากมายให้กับผู้ใช้ในรูปแบบของเมนูแบบเลื่อนลงหน้าต่างปุ่มและช่องทำเครื่องหมาย
ดังนั้นแทนที่จะทำตามลำดับการดำเนินการที่กำหนดไว้ล่วงหน้าโดยคอมพิวเตอร์ผู้ใช้สามารถเลือกหนึ่งในคำสั่งที่มีอยู่ได้ด้วยตนเอง
นอกจากการเขียนโปรแกรมนี้จะถูกนำไปใช้อย่างแพร่หลายในอินเทอร์เฟซผู้ใช้แบบกราฟิกแล้วยังมีการใช้กันอย่างแพร่หลายในแอปพลิเคชันที่ดำเนินการบางอย่างเพื่อตอบสนองต่อการป้อนข้อมูลของผู้ใช้เช่นเว็บแอปพลิเคชัน JavaScript
อ้างอิง
- ราสพัลชิมา (2018) การใช้งานตามเหตุการณ์ในการพัฒนาซอฟต์แวร์ ที่ปรึกษาบลูเบอร์รี่. นำมาจาก: bbconsult.co.uk.
- องค์ประชุม (2020). การสร้างแอป - บทที่ 1: บทนำสู่การเขียนโปรแกรมตามเหตุการณ์ นำมาจาก: quorumlanguage.com.
- Margaret Rouse (2012). แอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์ Techtarget นำมาจาก: searchitoperations.techtarget.com.
- บทความของสหราชอาณาจักร (2018). คุณลักษณะการเขียนโปรแกรมตามเหตุการณ์ นำมาจาก: ukessays.com.
- Souvik Banerjee (2019). การเขียนโปรแกรมตามเหตุการณ์: เหตุใดจึงได้รับความนิยมในขณะนี้ RS Websols นำมาจาก: rswebsols.com.
- Techopedia (2018). โปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ นำมาจาก: ceilingpedia.com.
- เทคโนโลยีสหราชอาณาจักร (2020) การเขียนโปรแกรมตามเหตุการณ์ นำมาจาก: technologyuk.net.
