বিজনেস লজিক লেয়ার (বিএলএল) কী ব্যবহার?


14

ডাটাবেস অ্যাপ্লিকেশনগুলির জন্য ভাল অনুশীলনটি পড়তে আমি প্রায়শই তথাকথিত "ব্যবসায়িক যুক্তিযুক্ত স্তরগুলির" সমর্থকদের কাছে এসেছি এবং আমি সিদ্ধান্ত নেওয়ার চেষ্টা করছি যে এটি আমার প্রকল্পের জন্য একটি ব্যবহার করা ভাল (এটি একটি ছোট ব্যক্তিগত প্রকল্প)। আমার ইস্যুটি এই বিষয়টিতে নিহিত যে আমি বিএলএল এর পক্ষে এমন কিছু করার জন্য ভাবতে পারি না যে ডালটি ইতিমধ্যে পরিচালনা করতে পারে না (প্রশ্নগুলি কার্যকর করে এবং বস্তুগুলিতে ফলাফলগুলি ম্যাপিং করে), সুতরাং আমার বিএলএল ডালকে নিজেই কিছু না করে ডাকে।

ডালও ঠিক কী করা উচিত তা সম্পর্কে আমি ভুল wrong তবে নির্বিশেষে, একটি ডাটাবেস পরিচালনার অ্যাপ্লিকেশনটিতে কোনও বিএলএল থেকে কী ধরণের কার্যকারিতা আশা করা উচিত?


দক্ষতা বনাম নমনীয়তা / কোড পুনরায় ব্যবহারের দ্বিধাদান এর মতো মনে হচ্ছে।
কাজ

@ জোব - হ্যাঁ, ধরণের, বিশেষত যেহেতু এটি একটি ছোট অ্যাপ্লিকেশন কোড পুনরায় ব্যবহারের খুব কম সম্ভাবনা রয়েছে (এখনও)। তবে এটি আংশিকভাবে সর্বোত্তম অনুশীলনটি ব্যবহার করার চেষ্টা করছে।
অ্যান্ড্রু আর্নল্ড

আমি সবাইকে উত্সাহিত করেছি কারণ তারা সকলেই দুর্দান্ত উত্তর; দুর্ভাগ্যক্রমে আমি কেবল একটি গ্রহণ করতে পারি।
অ্যান্ড্রু আর্নল্ড

উত্তর:


10

আমার ছোট অ্যাপ্লিকেশনগুলির জন্য, আমার বিএলএল সাধারণত ডালের পাস-মাধ্যমে শুরু হয়। আমি ঠিক আছে। আমি ব্যবসায়ের নিয়মগুলি "আবিষ্কার" করার সাথে সাথে বিএলএলটি আমি সেগুলি রেখেছি। আমি আমার পরীক্ষাগুলি লেখার সাথে সাথে বিএলএলগুলিতে প্রয়োজনীয় অনেকগুলি জিনিসও সন্ধান করি। আমার নিজস্ব ব্যক্তিগত অ্যাপ্লিকেশনগুলির জন্য, আমি ব্যবসার নিয়মগুলি তৈরি করি এবং বিএলএল এখনও সেগুলিতে রেখেছি। আমার জন্য, বিএলএল এমন একটি জিনিস যা সময়ের সাথে বাড়তে থাকে। আমি যত বেশি প্রকল্পে কাজ করেছি তার বিএলএল তত বেশি।

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


2
আমি 20 বছরের মধ্যে আমার চুলচেরা পরিবর্তন হয়নি। আমি আমার ডাল প্রযুক্তি পরিবর্তন করার জন্য ঘৃণা করি যতইবার আমি চুলের স্টাইলগুলি পরিবর্তন করি।
এরিক ফানকেনবাশ

3
কিছু লোক প্রতি 20 বছরেও তাদের ডাল আপডেট করে!
মার্সি 21

4
ভাল উত্তর. ছোট প্রকল্পগুলিতে বিএলএল রাখার পক্ষে খুব বেশি পরিমাণে না থাকার পক্ষে এটি সাধারণ। ছোট প্রকল্পগুলির জন্য বড় হওয়াও সাধারণ and কাঙ্ক্ষিত।
কারসন 63000

5

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


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

2
@ মিস্ত্রি ম্যান আরও দক্ষতার সাথে সাবজেক্টিভ। এই মন্তব্যের অর্থ হল আপনি জানেন যে সামনের প্রান্তে কী ঘটছে। এটি প্রকৃতির খুব অচল। ডেটা নিশ্চিত করার জন্য এসকিউএল কোয়েরিগুলি ব্যবহার করে নিন তবে আপনি ব্যাক-এন্ডে কোনও ইউআই টাই করতে শুরু করার সাথে একটি সূক্ষ্ম রেখা রয়েছে।
অ্যারন ম্যাকআইভার 21

1
@ মিস্ত্রি ম্যান: সত্যই এটা সম্ভব। এবং এটি প্রায়শই সত্য যে জিনিসগুলি এক স্তর থেকে অন্য স্তরে গিয়ে "রক্তপাত" করে। আসল শিল্প তাদের আলাদা করা এবং তাদের আলাদা রাখতে হয়। আমি জানি, এটি সবসময় সহজ নয় ...
হতাশাগ্রস্ত

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

5

অ্যান্ড্রু,

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

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


4

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

তবে আপনার অ্যাপ্লিকেশনটি ছোট হলেও এটি উপস্থাপনা স্তর থেকে দূরে ডেটা স্তরটিকে তৃতীয় স্তরের মাধ্যমে দূরে রেখে উপকৃত হতে পারে যা সাধারণত একটি ব্যবসায় স্তর হবে। এটি আপনাকে সমস্ত উপস্থাপনা স্তরের পরিবর্তে একক জায়গায় পরিবর্তন করতে দেয়।

মনে করুন আপনি নিজের ওআরএমকে লিনক থেকে এসকিউএল এন্টি ফ্রেমওয়ার্ক (বা নাইবারনেট) এ পরিবর্তন করবেন। আপনার উপস্থাপনা স্তরের তুলনায় ব্যবসায়ের স্তরে এটি পরিবর্তন করা সম্ভবত সহজ হবে, যেহেতু উপস্থাপনাটি তার উপস্থাপনা মডেলটির জন্য দু'ভাবে আঁকড়ে থাকে।

আপনি যদি এমভিসি বুঝতে পারেন, এটি .. মডেল ভিউ কন্ট্রোলার, আপনি একই অ্যাপ্লিকেশন আর্কিটেকচারটি ভাবতে পারেন। মডেলটি আপনার ডেটা স্তরের পক্ষে অলোগুল, উপস্থাপনা স্তরটি ভিউ এবং ব্যবসায় স্তরটি নিয়ামক।


4

ডোমেন চালিত ডিজাইন সম্পর্কে নির্জন প্ল্যানেটের উত্তর পরিপূরক :

এছাড়াও চেক আউট পেঁয়াজ আর্কিটেকচার , যা খুব ডোমেন চালিত নকশা ধারণার সঙ্গে প্রান্তিককৃত হয়।

লক্ষ্য করুন কীভাবে ব্যবসায়িক যুক্তি "স্তর" পেঁয়াজের মূল এবং প্রতিটি অবকাঠামো স্তর (যেমন ডেটা অ্যাক্সেস স্তর) এর বাহ্যিক নির্ভরতা। এটি অনেক পরীক্ষায় সহায়তা করে, কারণ আপনার প্রতিটি বাহ্যিক অবকাঠামোগত নির্ভরতা উপহাস করা এবং আপনার ডোমেন যুক্তিকে পুরোপুরি পরীক্ষা করতে সক্ষম হওয়া উচিত।

আমার মতে: ব্যবসায় যুক্তিযুক্ত স্তরটি যেখানে "খাঁটি ধারণামূলক সমাধান" বাস করে। বাকিগুলি কেবল অবকাঠামোগত প্রয়োগের বিশদ।

তবে কিছু অ্যাপ্লিকেশনগুলিকে এই ধরণের আর্কিটেকচারের প্রয়োজন হবে না। আপনার সমস্ত অ্যাপ্লিকেশন যদি ডেটাসেট সিআরইউডি অপারেশন হয় তবে আপনার 'খাঁটি ধারণাগত সমাধান' আসলে ব্যবহারিকভাবে খালি হতে পারে এবং আপনার যা দরকার তা হ'ল ডাটাবেস সম্পাদনা ফ্রন্ট-এন্ড। সেক্ষেত্রে আপনার সম্ভবত কেবল ডাল এবং ইউআই স্তরগুলিতে দৃষ্টি নিবদ্ধ করা ভাল।


1

এই প্রশ্নের উত্তর (আইএমএইচও): "আমি কি আমার ডালকে পুরোপুরি প্রতিস্থাপন করতে পারি এবং আমার ব্যবসায়িক লজিক কোডের কোনওটিই আবার লিখতে হবে না"?

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.