ฉันเป็นแฟนตัวยงของ Business Rules Engines เพราะมันสามารถช่วยให้ชีวิตของคุณง่ายขึ้นในฐานะโปรแกรมเมอร์ หนึ่งในประสบการณ์แรกที่ฉันได้พบขณะทำงานในโครงการคลังข้อมูลคือการค้นหา Stored Procedures ที่มีโครงสร้าง CASE ที่ซับซ้อนซึ่งทอดยาวไปทั่วทั้งหน้า มันเป็นฝันร้ายที่จะแก้จุดบกพร่องเนื่องจากเป็นเรื่องยากมากที่จะเข้าใจตรรกะที่ใช้ในโครงสร้าง CASE ที่ยาวเช่นนี้และเพื่อตรวจสอบว่าคุณมีการทับซ้อนระหว่างกฎในหน้า 1 ของรหัสและอีกกฎจากหน้าที่ 5 โดยรวมแล้วเรามี กฎดังกล่าวมากกว่า 300 กฎที่ฝังอยู่ในโค้ด
เมื่อเราได้รับข้อกำหนดการพัฒนาใหม่สำหรับสิ่งที่เรียกว่าปลายทางการบัญชีซึ่งเกี่ยวข้องกับการปฏิบัติตามกฎมากกว่า 3,000 ข้อฉันรู้ว่ามีบางอย่างที่ต้องเปลี่ยนแปลง ย้อนกลับไปตอนนั้นฉันได้ทำงานกับต้นแบบซึ่งต่อมาได้กลายเป็นผู้ปกครองของสิ่งที่ตอนนี้คือเอ็นจิน Custom Business Rule ซึ่งสามารถจัดการตัวดำเนินการมาตรฐาน SQL ทั้งหมดได้ ในตอนแรกเราใช้ Excel เป็นเครื่องมือในการเขียนและหลังจากนั้นเราได้สร้างแอปพลิเคชัน ASP.net ซึ่งจะช่วยให้ผู้ใช้ทางธุรกิจสามารถกำหนดกฎเกณฑ์ทางธุรกิจของตนเองได้โดยไม่จำเป็นต้องเขียนโค้ด ขณะนี้ระบบทำงานได้ดีโดยมีข้อบกพร่องน้อยมากและมีกฎมากกว่า 7,000 รายการสำหรับการคำนวณปลายทางการบัญชีนี้ ฉันไม่คิดว่าสถานการณ์เช่นนี้จะเกิดขึ้นได้ด้วยการเข้ารหัสอย่างหนัก
อย่างไรก็ตามแนวทางดังกล่าวมีข้อ จำกัด :
- คุณต้องมีผู้ใช้ทางธุรกิจที่มีความสามารถและมีความเข้าใจในธุรกิจของ บริษัท เป็นอย่างดี
- มีภาระงานที่สำคัญในการค้นหาระบบทั้งหมด (ในกรณีของเราคือคลังข้อมูล) เพื่อกำหนดเงื่อนไขแบบฮาร์ดโค้ดทั้งหมดซึ่งเหมาะสมที่จะแปลเป็นกฎที่จะจัดการโดย Business Rule Engine นอกจากนี้เรายังต้องดูแลให้เทมเพลตเริ่มต้นเหล่านี้เข้าใจได้อย่างสมบูรณ์โดยผู้ใช้ทางธุรกิจ
- คุณต้องมีแอปพลิเคชันที่ใช้สำหรับการสร้างกฎซึ่งจะใช้อัลกอริทึมสำหรับการตรวจจับกฎทางธุรกิจที่ทับซ้อนกัน ไม่เช่นนั้นคุณจะต้องเจอกับเรื่องวุ่นวายที่ไม่มีใครเข้าใจผลลัพธ์ที่ได้รับอีกต่อไป เมื่อคุณมีจุดบกพร่องในองค์ประกอบทั่วไปเช่น Custom Business Rule Engine อาจเป็นเรื่องยากมากที่จะแก้ไขข้อบกพร่องและเกี่ยวข้องกับการทดสอบอย่างละเอียดเพื่อให้แน่ใจว่าสิ่งต่างๆที่เคยทำงานมาก่อนจะใช้ได้ผลเช่นกัน
ดูรายละเอียดเพิ่มเติมเกี่ยวกับหัวข้อนี้ได้ในโพสต์ที่ฉันเขียน: http://dwhbp.com/post/2011/10/30/Implementing-a-Business-Rule-Engine.aspx
โดยรวมแล้วข้อได้เปรียบที่ใหญ่ที่สุดของการใช้ Business Rule Engines คือช่วยให้ผู้ใช้สามารถควบคุมคำจำกัดความและการเขียนกฎธุรกิจได้โดยไม่จำเป็นต้องไปที่แผนกไอทีทุกครั้งที่ต้องแก้ไขบางสิ่ง นอกจากนี้ยังช่วยลดภาระงานของทีมพัฒนาไอทีซึ่งปัจจุบันสามารถมุ่งเน้นไปที่การสร้างสิ่งต่างๆที่มีมูลค่าเพิ่มมากขึ้น
ไชโย
Nicolae