Saya penggemar berat Business Rules Engines, karena dapat membantu Anda membuat hidup Anda lebih mudah sebagai programmer. Salah satu pengalaman pertama yang saya alami saat mengerjakan proyek Data Warehouse adalah menemukan Prosedur Tersimpan yang berisi struktur CASE rumit yang membentang di seluruh halaman. Men-debug adalah mimpi buruk, karena sangat sulit untuk memahami logika yang diterapkan dalam struktur CASE yang begitu panjang, dan untuk menentukan apakah Anda memiliki aturan yang tumpang tindih di halaman 1 kode dan aturan lain dari halaman 5. Secara keseluruhan, kami memiliki lebih dari 300 aturan seperti itu tertanam dalam kode.
Ketika kami menerima persyaratan pengembangan baru, untuk sesuatu yang disebut Tujuan Akuntansi, yang melibatkan penanganan lebih dari 3000 aturan, saya tahu ada sesuatu yang harus diubah. Saat itu saya sedang mengerjakan prototipe yang kemudian menjadi induk dari apa yang sekarang menjadi mesin Aturan Bisnis Kustom, yang mampu menangani semua operator standar SQL. Awalnya kami telah menggunakan Excel sebagai alat penulisan dan, kemudian, kami telah membuat aplikasi ASP.net yang akan memungkinkan Pengguna Bisnis untuk menentukan aturan bisnis mereka sendiri, tanpa perlu menulis kode. Sekarang sistem berfungsi dengan baik, dengan sedikit bug, dan berisi lebih dari 7000 aturan untuk menghitung Tujuan Akuntansi ini. Saya tidak berpikir skenario seperti itu akan mungkin terjadi hanya dengan hard-coding.
Namun, ada batasan untuk pendekatan seperti itu:
- Anda perlu memiliki pengguna bisnis yang cakap yang memiliki pemahaman yang sangat baik tentang bisnis perusahaan.
- Ada beban kerja yang signifikan dalam mencari seluruh sistem (dalam kasus kami Data Warehouse), untuk menentukan semua kondisi hard-code yang masuk akal untuk diterjemahkan ke dalam aturan yang akan ditangani oleh Business Rule Engine. Kami juga harus berhati-hati agar templat awal ini dapat sepenuhnya dipahami oleh Pengguna Bisnis.
- Anda perlu memiliki aplikasi yang digunakan untuk pembuatan aturan, di mana algoritme untuk mendeteksi aturan bisnis yang tumpang tindih diterapkan. Jika tidak, Anda akan berakhir dengan kekacauan besar, di mana tidak ada lagi yang mengerti hasil yang mereka dapatkan. Jika Anda memiliki bug dalam komponen generik seperti Custom Business Rule Engine, akan sangat sulit untuk melakukan debug dan melibatkan pengujian ekstensif untuk memastikan bahwa hal-hal yang sebelumnya berfungsi juga berfungsi sekarang.
Rincian lebih lanjut tentang topik ini dapat ditemukan pada posting yang saya tulis: http://dwhbp.com/post/2011/10/30/Implementing-a-Business-Rule-Engine.aspx
Secara keseluruhan, keuntungan terbesar menggunakan Mesin Aturan Bisnis adalah memungkinkan pengguna untuk mengambil kembali kendali atas definisi dan penulisan Aturan Bisnis, tanpa perlu pergi ke departemen TI setiap kali mereka perlu memodifikasi sesuatu. Ini juga mengurangi beban kerja tim pengembangan TI, yang sekarang dapat fokus pada membangun barang dengan nilai lebih.
Bersulang,
Nicolae