জাভা বিধি ইঞ্জিনগুলির প্রো এবং কনস [বন্ধ]


108

জেএসইসি এবং ড্রলগুলি জাভা বিধিগুলি গ্রহণ করার পক্ষে কি কি ? অন্য কোন খেলোয়াড় আছে?

আমি বুঝতে পারি যে ড্রলসগুলি ওপেন সোর্স এবং জেএসইএস নয়, তবে তারা আপনার কোডের সাথে ব্যবহারের সহজতা, পারফরম্যান্স, সংহতকরণের স্তরের মতো অন্যান্য ক্ষেত্রে কীভাবে তুলনা করবেন?

উত্তর:


128

জেএসইসি এবং ড্রলগুলি জাভা বিধিগুলি গ্রহণ করার পক্ষে কি কি?

ব্যবসায়ের নিয়মগুলিকে অ্যাপ্লিকেশন যুক্তি থেকে আলাদা করার প্রয়োজন হলে একটি নিয়ম ইঞ্জিন ব্যবহার করুন। কি আপনার প্রকল্পের প্রয়োজন একটি নিয়ম ইঞ্জিন নিবন্ধ একটি ভাল উদাহরণ আছে:

উদাহরণস্বরূপ, একটি সাধারণ স্টোরফ্রন্ট সিস্টেমে ছাড়ের গণনা করার জন্য কোড জড়িত থাকতে পারে:

if (product.quantity > 100 && product.quantity < 500) {
  product.discount = 2;
} else if (product.quantity >= 500 && product.quantity < 2000) {
  product.discount = 5;
} else if (product.quantity >= 2000) {
  product.discount = 10;
}

একটি নিয়ম ইঞ্জিন উপরেরটিকে কোডের সাথে প্রতিস্থাপন করে যা দেখতে দেখতে এটি:

ruleEngine.applyRules(product);

অ-প্রযুক্তিগত লোকের হাতে কোনও রুল অ্যাডমিন কনসোল স্থাপন করা ভাল জিনিস কিনা তা আপনি সিদ্ধান্ত নিতে পারেন :)

আরো বিস্তারিত বলা উচিৎ? একটি বিধি ইঞ্জিন ব্যবহার করবেন? , কেন একটি রুল ইঞ্জিন ব্যবহার করবেন? , কোনও বিধি ইঞ্জিন ব্যবহার করতে হবে এবং গুগলে সিদ্ধান্ত নেওয়ার জন্য কিছু গাইডলাইন

অন্য কোন খেলোয়াড় আছে?

অন্যান্য খেলোয়াড়দের মধ্যে রয়েছে জেআরুলস, কর্টিকন (জেআরুলস সর্বাধিক বিখ্যাত আইএমও - যার অর্থ সেরা নয়)।

আপনার কোডের সাথে ব্যবহারের স্বাচ্ছন্দ্য, পারফরম্যান্স, সংহতকরণের স্তরের মতো তারা কীভাবে অন্যান্য ক্ষেত্রে তুলনা করতে পারে?

আপনাকে সুনির্দিষ্টভাবে বলতে পারি না, ড্রোলসের সাথে আমার কেবলমাত্র একটি (ইতিবাচক) অভিজ্ঞতা আছে। তবে আপনি JBoss Drools বনাম ILog JRules এর মতো ব্লগ পোস্টগুলি থেকে কিছু প্রতিক্রিয়া পাবেন - একটি অজানা গল্প (এটি পড়তে ভুলবেন না) বা জেআরুলস দৃষ্টিকোণ থেকে দ্রোলসের সাথে কাজ করা । আমি নিশ্চিত যে আপনি গুগলে তাদের আরও কিছু খুঁজে পেতে পারেন (তবে আমি ড্রলসকে চেষ্টা করে দেখাব)।


1
আপনার উত্তর ভাল দেখাচ্ছে। আপনি আমাকে দয়া করে বলতে পারেন কোথায় ড্রল ব্যবহার করবেন এবং জেস কোথায়? মূলত, আমি উত্তরটি আরও সম্পর্কিত সম্পর্কিত আশা করি। বি / ডাব্লু ড্রল এবং জেস
টনি

7
বাহ, @ পাসল, সেই পণ্যের পরিমাণ / ছাড়ের উদাহরণটি একটি আসল ডাব্লুটিএফ। বলুন পরিমাণ 5000। প্রথম আইএফ সত্য হিসাবে মূল্যায়ন করে, ELSE IF কখনই মূল্যায়ন হয় না। কোনও বিধি ইঞ্জিনে এই জাতীয় ব্যবসায়ের যুক্তি স্থাপন করা কোনওরকম সাহায্য করে না, যদিও এটি ত্রুটিটি খুঁজে পাওয়া আরও কঠিন করে তুলতে পারে।
ডক করুন

তার প্রতিরক্ষার ক্ষেত্রে সেই উদাহরণটি ছিল প্রথম প্রবন্ধের। এখন দেখার মতো বিশ্বাসযোগ্য নয় যে, কারও কাছে আর কী খুঁজছেন ... :)
Jeb

6
প্রযুক্তিবিহীন হাতে নিয়ম নিয়ন্ত্রণের বিপদগুলির একটি দুর্দান্ত উদাহরণ।
পেস

1
কেন একটি রুল ইঞ্জিন ব্যবহার?
লিঙ্কযুক্ত

16

আমাদের অ্যাপ্লিকেশন সার্ভারের সাথে ব্যবহারের জন্য আমরা এখন বিধিগুলি মূল্যায়ন করছি। আমরা ওপেনরুলস পেরিয়ে এসেছি , যা জাভার সাথে সংহত করা সহজ এবং আমাদের পরীক্ষাগুলি যতটা দ্রুত দেখিয়েছে, তত দ্রুত। অন্যদের উপরে ওপেনরুলসের প্রধান সুবিধাটি হ'ল নিয়মগুলি সংশোধন ও পরিচালনা করা হয়। এটি সমস্তই এক্সেল টেবিলগুলিতে ঘটে যা নন-প্রোগ্রামারদের পক্ষে সহজতম উপায়। জড়িত প্রত্যেকে, এমনকি অ-প্রযুক্তিগত লোকেরাও পুরোপুরি বুঝতে পেরেছিলেন :-)

আমাদের কাছে ড্রলস ইন্টিগ্রেটেডও রয়েছে তবে নিয়মগুলি আরও জটিল হওয়ার কারণ এটি আরও বেশি প্রোগ্রামেটিক অ্যাপ্রোচ। সে কারণেই আমরা - সম্ভবত - ওপেনরুলসকে আটকে থাকব।


19
ড্রলস এক্সলে এবং ওয়েব ইন্টারফেসের মাধ্যমে সম্পাদিত বিধিগুলিও সমর্থন করে।
30:43

7

আমাদের সাথে আমাদের একই প্রশ্ন ছিল, অবশেষে আমরা দ্রোলসকে তুলে নিলাম, আপনার যদি নিম্নলিখিতগুলি থাকে তবে একজনের ড্রল ব্যবহার করা উচিত:

  • ব্যবসায়িক যুক্তি যা আপনি ভাবেন যে বিভিন্ন পরিস্থিতিতে বিভিন্ন পরিস্থিতিতে যদি একাধিকের সাথে বিশৃঙ্খল হয়ে পড়ে
  • জটিলতা বাড়ানোর আপনার চাহিদা বাড়বে
  • ব্যবসায়ের যুক্তি পরিবর্তনগুলি ঘন ঘন হবে (1 - 2 বার বছরেও ঘন ঘন ঘটে)
  • আপনার সার্ভারের যথেষ্ট পরিমাণ মেমরি রয়েছে কারণ এটি একটি মেমরির ক্ষুধার্ত সরঞ্জাম, এটি মেমরির ব্যয় করে কর্মক্ষমতা সরবরাহ করে

নিম্নলিখিত URL- এ আরও বিশদ রয়েছে


3

কেবল এটিকে যুক্ত করেই যে কোনও অ্যাপ্লিকেশনটিতে কিছু বৈশিষ্ট্য সক্ষম বা অক্ষম করার জন্য কিছু শর্ত পূরণ করা হয়েছে কিনা তা পরিচালনা করার মতো অনেক লোক সন্ধান করছেন।

আমি যেখানেই গিয়েছি একই প্যাটার্নটি পুনরায় প্রয়োগ করে ক্লান্ত হয়ে পড়েছি, তাই আমি এটির জন্য একটি ওএসএস প্রকল্প তৈরি করার সিদ্ধান্ত নিয়েছি যার নাম রুলি http://sourceforge.net/projects/roolie/

আমি এটিকে কেবল রূপান্তরিত করেছি এবং যেহেতু ২০১০ সাল থেকে এটি প্রকাশিত হওয়ার পরে কোনও বাগের খবর পাওয়া যায় নি, আমি মাভেন সেন্ট্রালে এটি হোস্ট করার জন্য প্রয়োজনীয় পরিবর্তন ব্যতীত অন্য কোনও পরিবর্তন ছাড়াই এটিকে ১.০ এ উন্নীত করেছিলাম (যা আমি প্রক্রিয়ায় আছি) )।

মূলত জেএসআর -৪৪ বেশিরভাগ জিনিসের জন্য ওভারকিল, এবং এখানে প্রচুর শেখার বক্ররেখা এবং ওভারহেড রয়েছে যা বর্তমান অফারগুলির সাথে চলে। আপনি যদি চান তা ঠিক আছে। তবে আপনি যদি নিজের রাষ্ট্র পরীক্ষাগুলি বজায় রাখতে XML এর সাথে জাভাতে লেখা সহজ নিয়মগুলি কেবল শৃঙ্খলাবদ্ধ করতে চান তবে রুলি এটি করা খুব দ্রুত উপায় way কোন নির্ভরতা এবং কোন শেখার বক্ররেখা নেই।


2
রুলি জানিয়েছে যে এটি এমআইটি সোর্সফোর্সে লাইসেন্স পেয়েছে তবে কোডটি এলজিপিএলভি 3 এর প্রতিবেদন করেছে। এর মূল অর্থ এটি কোনও বাণিজ্যিক পণ্য (এবং কিছু ওপেন সোর্স পণ্যগুলিতেও) ব্যবহার করা সন্দেহজনক। Nmav.gnutls.org/2013/03/the-perils-of-lgplv3.html দেখুন ।
ingyhere

2

যখন আমাদের কোনও নিয়ম ইঞ্জিনের দরকার পড়েছিল তখন আমরা আমাদের নিজস্ব রোল করার সিদ্ধান্ত নিয়েছিলাম, কারণ সহজলভ্য কাজগুলি সহজলভ্যতার জন্য উপলভ্যগুলি খুব জটিল ছিল। যদি আপনি এমনকি ব্যবহারকারীদের দেওয়া পার্সিং এক্সপ্রেশনগুলির সাথে দূরবর্তী অবস্থান থেকে অভিজ্ঞ হন তবে এটি করা খুব কঠিন নয়। আমাদের ক্ষেত্রে, বেশিরভাগ অনুমানটি এক্সএসডি দ্বারা পরিচালিত হয় এবং কেবলমাত্র কয়েকটি ক্ষেত্রই আরও পার্স করা যায়।


6
নিয়ম ইঞ্জিনগুলি অ-তুচ্ছ সমস্যার সমাধান করার জন্য সু-প্রতিষ্ঠিত অ্যালগরিদমগুলি (যেমন ফরোয়ার্ড চেইনিং এবং রিট অ্যালগরিদম) ব্যবহার করে। আপনি যদি কেবল প্রকাশের মূল্যায়ন করে থাকেন তবে এমভিইএল এর মতো বিদ্যমান লাইব্রেরি কার্যকর হতে পারে।
jevon
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.