Xendor เป็นเฟรมเวิร์ก Core .NET ที่สามารถใช้ในการสร้างการออกแบบที่เรียบง่ายและสะอาดโดยการบังคับใช้ความรับผิดชอบเดี่ยวและการแยกข้อกังวล คุณสมบัติขั้นสูงของมันเหมาะสำหรับการออกแบบโดเมน (DDD), คำสั่ง Query Responsibilty Segragation (CQRS) และการจัดหาเหตุการณ์ Xendor ยังมีการรวม RabbitMQ
คำสั่งการแยกความรับผิดชอบความรับผิดชอบเป็นรูปแบบที่บอกให้เราแยกการดำเนินการที่กลายพันธุ์ข้อมูลจากข้อมูลที่สอบถาม มันได้มาจากคำสั่งการสืบค้นคำสั่ง (CQS) CQS ระบุว่าสามารถมีเพียงสองวิธีในชั้นเรียน: สิ่งที่กลายพันธุ์สถานะและกลับมาเป็นโมฆะและวิธีที่กลับสถานะ แต่ไม่เปลี่ยน
CQRS เป็นรูปแบบที่คุณใช้หรือไม่? จากบริการ/แอปพลิเคชันของคุณและคุณสามารถนำไปใช้กับส่วนของบริการของคุณเท่านั้น
แทนที่จะจัดเก็บเพียงสถานะปัจจุบันของข้อมูลในโดเมนให้ใช้ร้านค้าต่อท้ายเพื่อบันทึกชุดการกระทำเต็มรูปแบบที่ดำเนินการในข้อมูลนั้น ร้านค้าทำหน้าที่เป็นระบบบันทึกและสามารถใช้ในการทำให้วัตถุโดเมนเป็นจริง สิ่งนี้สามารถทำให้งานง่ายขึ้นในโดเมนที่ซับซ้อนโดยหลีกเลี่ยงความจำเป็นในการซิงโครไนซ์แบบจำลองข้อมูลและโดเมนธุรกิจในขณะที่ปรับปรุงประสิทธิภาพความสามารถในการปรับขนาดและการตอบสนอง นอกจากนี้ยังสามารถให้ความสอดคล้องสำหรับข้อมูลการทำธุรกรรมและรักษาเส้นทางการตรวจสอบเต็มรูปแบบและประวัติที่สามารถเปิดใช้งานการชดเชยการกระทำ
การฉายเป็นแนวคิดที่สำคัญในขณะที่สร้างระบบที่เน้นเหตุการณ์เป็นศูนย์กลาง ในเวลาเดียวกันมันง่ายมาก
การฉายเป็นเรื่องเกี่ยวกับการรับสถานะปัจจุบันจากกระแสของเหตุการณ์
ตัวอย่างเช่นพิจารณาสถานการณ์ที่สตรีมของเหตุการณ์ถูกเผยแพร่โดยเซิร์ฟเวอร์ไปยังสมาชิกทุกคน เหตุการณ์เหล่านี้เกี่ยวข้องกับการลงทะเบียนผู้ใช้และมีลักษณะ:
useraddedtoaccount
{
"userId" : 55 ,
"username" : " alemol " ,
"name" : " Alejandro " ,
"lastName" : " Moline "
}userverifiedemail
{
"userId" : 55 ,
"email" : " [email protected] "
}userUpDated
{
"userId" : 55 ,
"lastName" : " Molines "
}เราสามารถแนบสมาชิกเพื่อสตรีมของเหตุการณ์เหล่านี้เพื่อฉายสตรีมนี้ลงในรูปแบบการอ่านแบบถาวรซึ่งใช้เพื่อให้รายละเอียดผู้ใช้ในเว็บ UI รูปแบบการอ่านสุดท้ายอาจมีลักษณะ:
{
"userId" : 55 ,
"username" : " alemol " ,
"email" : " [email protected] " ,
"name" : " Alejandro " ,
"lastName" : " Molines "
}หากคุณชอบหรือใช้โครงการนี้โปรดให้ดาว ขอบคุณ!
อย่าลังเลที่จะสร้างปัญหาเกี่ยวกับ GitHub การมีส่วนร่วมคำขอดึงเป็นมากกว่าการต้อนรับ!
Xendor เป็นลิขสิทธิ์© 2019 Alejandro Molines และผู้มีส่วนร่วมอื่น ๆ ภายใต้ใบอนุญาต MIT