পরিষ্কার আর্কিটেকচার - অনেক বেশি কেস ক্লাস ব্যবহার করুন


15

আমি ক্লিন আর্কিটেকচারে যাচ্ছি এবং আমার অ্যান্ড্রয়েড স্তরটি এমভিসি থেকে এমভিপিতে তুলে নিয়েছি , ডাগার 2 দিয়ে ডিআই, আরএক্সজেভা 2 এর সাথে কার্যকারিতা এবং অবশ্যই জাভা 8 প্রবর্তন করছি।

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

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

এখন, আমার প্রকল্পে, আমার কাছে 6 টি আলাদা আলাদা সত্ত্বার মতো কিছু রয়েছে এবং অবশ্যই প্রতিটি সত্তা ভান্ডারগুলিতে সেগুলি অ্যাক্সেস করার জন্য কমপক্ষে 4 টি পদ্ধতি (সাধারণত পান, যোগ করুন, মুছুন, আপডেট করুন) রয়েছে .. সুতরাং, 6 * 4 = 24

ক্লিন আর্কিটেকচারের এখন অবধি যা আমি বুঝতে পেরেছি তা আমার কাছে 24 ইউজকেস থাকবে।

এমভিসিতে মাত্র 6 টি নিয়ন্ত্রকের সাথে তুলনা করা হলে এটি অনেকগুলি ক্লাস ..

আমার কি সত্যিই 24 টি ব্যবহারের কেস করতে হবে?

ইতিমধ্যে কেউ সাফল্যের সাথে এটি ব্যবহার করেছেন এমন একটি স্পষ্টকরণের আমি সত্যিই প্রশংসা করব।

ধন্যবাদ, জ্যাক


1
উদাহরণস্বরূপ, আপনি কী কোনও পৃষ্ঠার লিঙ্ক পোস্ট করতে পারেন যা এই ব্যবহারের কেসগুলি বিস্তারিতভাবে বর্ণনা করে?
রবার্ট হার্ভে

আমি অনেকগুলি গুগল করেছি , তবে মূলত: এই অ্যাপ্লিকেশনটির নমুনা এবং সম্পর্কিত নিবন্ধ: github.com/jshvarts/OfflineSampleApp ; এই নিবন্ধগুলি: proandroiddev.com/… ; প্রোয়ানড্রয়েডদেব . com/… ; এই আলাপ: youtube.com/watch?v=TvsOsgd0--c&feature=youtu.be ; এবং এই নিবন্ধগুলিও: adityaladwa.wordpress.com/2016/10/25/…
জ্যাকি Degl'Innocenti

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

স্যাম্পল অ্যাপটি অবশ্যই ক্লিন আর্কিটেকচার দৃষ্টান্ত দিয়ে তৈরি করা হয়েছে .. অন্যান্য নিবন্ধগুলি বেশিরভাগই .. আপনি @ রবার্টহারভে কী দেখতে চান?
জ্যাকি Degl'Innocenti

আমার উত্তর নীচে পড়ুন এবং উত্তর।
রবার্ট হার্ভে

উত্তর:


24

আমার কি সত্যিই 24 টি ব্যবহারের কেস করতে হবে?

আপনার লেখার সব কিছুই যদি CRUD হয়

নীচের চিত্রটি দেখুন:

এখানে চিত্র বর্ণনা লিখুন

আপনার দাবিটি হ'ল প্রতিটি সত্তার জন্য আপনার কাছে ছয়টি আলাদা সত্ত্বা এবং 4 টি পদ্ধতি (তৈরি করুন, পড়া, আপডেট করুন এবং মুছুন) থাকবে। তবে এটি চিত্রের মাঝামাঝি (সত্তা স্তর) এর হলুদ বৃত্তে সত্য। ইউটিস কেস লেয়ারে 24 টি পদ্ধতি তৈরি করা অর্থহীন যা কেবলমাত্র CRUD কলগুলির মাধ্যমে সত্তা স্তরগুলিতে প্রেরণ করে।

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

আপনি যখন বিভিন্ন ধরনের ব্যবহার তৈরি করেন, আপনি সম্পর্কে চিন্তা করা উচিত ব্যবসায়িক লেনদেন, না টি ককটেলের পদ্ধতি।

আরও পড়ার
সমষ্টি - ডোমেন অবজেক্টগুলির একটি গোষ্ঠী যা একক ইউনিট হিসাবে বিবেচিত হতে পারে


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

1
এটি কোনও আর্কিটেকচার বেছে নেওয়ার প্রশ্ন নয়। আমার ব্যক্তিগত মতামত: খালি সিআরইউডি অপারেশনগুলির সত্তা স্তরটির সাথে সরাসরি কথা বলা উচিত। অবশ্যই এটি ক্লিন আর্কিটেকচার লঙ্ঘন করে।
রবার্ট হার্ভে

1
আপনি বিন্দু অনুপস্থিত। আর্কিটেকচারটি কোডকে সংগঠিত করার একমাত্র মাধ্যম। আপনি কোড লিখে সমস্যার সমাধান করেছেন, আর্কিটেকচারের সাথে কুস্তি না করে।
রবার্ট হার্ভে

1
আরে রবার্ট, এটি এত সুন্দর নয় যে আপনি ধরে নেন যে আমি কোড লিখি না। আমার উত্তরের বিষয়টি এটি আর্কিটেকচারে, এবং আমরা এসও-তে নেই। আন্তরিকভাবে আমি আপনার শেষ মন্তব্যগুলি সত্যিই বিভ্রান্তিকর এবং বধির পাই। প্রশ্নটি ক্লিন আর্কে ইউজকেস সম্পর্কে, কোড লেখা নয়। আপনি যদি কিছু যোগাযোগের চেষ্টা করছেন তবে দয়া করে আরও ভাল ব্যাখ্যা করুন, কারণ আমি আপনার মন্তব্যের মূল বিষয়টি অনুপস্থিত। আইএমএইচও এটি সফ্টওয়্যার তৈরি করার সময় আর্কিটেকচার বিবেচনা এড়ানো সম্ভব নয়, বা কমপক্ষে ভাল ডিভস কেবল কোডের গুচ্ছটি লেখেন না। তদুপরি আমি আমার মন্তব্যে একটি সুনির্দিষ্ট প্রশ্ন জিজ্ঞাসা করেছি, আপনি কি উত্তর দিতে পারবেন? ধন্যবাদ
জ্যাকি Degl'Innocenti

2
আপনার উদ্ভূত সমস্যার সমাধান (অ্যাপ্লিকেশন অফলাইন প্রথমে) ক্লিন আর্কিটেকচারের সাথে আসলে তেমন কিছু করার নেই। আপনি ক্লিন আর্কিটেকচার ডায়াগ্রামে সেই সমস্যার সমাধান খুঁজে পাবেন না।
রবার্ট হার্ভে

2

প্রতিটি সিআরইউডি-অপারেশন যদি একটি ইউজকেসে অনুবাদ করা হয় তবে আপনি ঠিক। তবে একটি ইউজকেসে একাধিক সিআরইউডি-অপারেশনও থাকতে পারে।

একটি ইউজকেস একটি পৃথক মডেল যা বিভিন্ন ডেটা উত্স থেকে তথ্য সংগ্রহ করে এবং ডেটা ডুবতে যোগাযোগ প্রস্তুত করে। এতে একাধিক সিআরইউডি-অপারেশন জড়িত থাকতে পারে।

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


তাহলে আপনি অনেকগুলি সত্ত্বার সাথে সিআরইউডির উদাহরণের জন্য কোন প্যাটার্নটি গ্রহণ করবেন?
জ্যাকি Degl'Innocenti

এ সম্পর্কে আমার ব্যক্তিগত দৃষ্টিভঙ্গি: এসআরপি (একক দায়িত্বের নীতি) লঙ্ঘন না করা পর্যন্ত আমার অনেক ক্লাস করার সমস্যা নেই। তবে আমি বেশিরভাগ সময় ইউজকেসগুলি "একটি সত্তা তৈরি", "সত্তা আপডেট", "সত্তা মুছুন" এবং "সরল এক্স প্রকারের সত্তা পরিচালনা" হিসাবে "সত্তা আপডেট" করতে নতুন সংজ্ঞা দিই। একটি সত্ত্বা পরিচালনা করতে আপনি প্রায়শই একটি একক UI সরবরাহ করেন। তবে আপনার ইউজকেসটি ঠিক এটিই সংজ্ঞায়িত করতে পারে: আপনার ব্যবসায়ের জন্য কাজের উপকারী লোড পরিচালনা করার উপায় way
oopexpert

ঠিক আছে, সুতরাং বিভিন্ন কেস অপারেশন পরিচালনা করে এমন একটি ইউজ কেস থাকা এসআরপি লঙ্ঘন করে বলে মনে হচ্ছে না কারণ এটি একই ইউজকেসে কেবলমাত্র আরও "ভিন্ন" পদ্ধতিতে (এবং প্রবাহিত) বলে মনে হচ্ছে যে কোনও একক প্রবাহ একাধিক প্রতিক্রিয়াশীলতা ছাড়াই পরিচালনা করে। .. তবে এইভাবে আমরা কি কোনও ইউজকেসের জায়গায় কোনও নিয়ামক তৈরি করছি না? .. ধারণা .. সম্ভবত ব্যবহারের কেসটিকে অবশ্যই একটি স্তর হিসাবে দেখা উচিত এবং সেই স্তরটি কেবল এসআরপিকে সম্মান করতে হবে তবে এটি অনেকগুলি পদ্ধতি প্রয়োগ করতে পারে। আমি এই সম্পর্কে একটি উত্স বা নিবন্ধ রাখতে চাই
জ্যাকি দেগল'ইন্নোসেন্টি

1
একটি ইউজকেস আইএস একটি নিয়ামক। পার্থক্যটি হ'ল, একটি ইউজকেস ব্যবসায়ের দৃষ্টিকোণ থেকে আসে এবং একটি নিয়ামক এটির প্রযুক্তিগত দৃষ্টিভঙ্গি। একটি ইউজকেসটির কেন্দ্রবিন্দুটি হ'ল ব্যবসায়ের মান কী উত্পন্ন করছে। সুতরাং একটি ইউসকেস একটি ব্যবসায়িক মূল্য চালিত নিয়ামক বাস্তবায়ন।
oopexpert

1
সম্মত হন, এইচটিটিপি নিয়ন্ত্রক আই / ও পরিচালনা করার একটি উপায়, কনসোল কমান্ড, ইভেন্ট প্রতিক্রিয়া ইত্যাদিও হতে পারে। এই সমস্ত I / O চ্যানেলগুলি একই ইউজকেস কল করে। একটি ব্যবহারক্ষেত্র ব্যবসায়ের যুক্তির জন্য একটি নিয়ামক, এটি যে আই / ও চ্যানেল থেকে আহ্বান জানানো হয়েছিল সেগুলি সম্পর্কে এটি জানে না, তবে কীভাবে ডোমেন সত্তাকে কাজটি করতে অর্কস্ট্রেট করতে হয় তা এটি জানে।
দিমিত্রি লেজনেভ

1

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


আপনার বাক্যটির সমাধানের অর্থ হ'ল যখন আপনাকে প্রকৃতপক্ষে ক্রুড-জাতীয় ক্রিয়াকলাপগুলি বাস্তবায়ন করতে হবে, এমনকি আপনার বিবেচনার সাথে এই সম্পর্কটির কিছুটা সম্পর্কও পাওয়া যেতে পারে যে কোনও ইউজ কেস এমন একটি নিদর্শন অবলম্বন করা উচিত যাতে আমরা কোনও জটিল অপারেশনে অ্যাক্সেস করতে পারি, এমনকি বহু পদক্ষেপ।
জ্যাকি Degl'Innocenti
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.