উদাহরণস্বরূপ, বলুন আপনি জাভাতে একটি অ্যাপ লিখছেন ।
আপনার অ্যাপটি পাইথনে লিখিত একটি API সার্ভারের সাথে যোগাযোগ করে ।
পাইথন সার্ভারটি একটি এসকিউএল ডাটাবেসের সাথে যোগাযোগ করে।
আপনার অ্যাপ্লিকেশনটির জন্য জাভাস্ক্রিপ্টে লিখিত একটি ওয়েবসাইটও রয়েছে ।
4 টি ভিন্ন ভাষায়, মূলত একই ডেটা স্ট্রাকচার 4 টি বিভিন্ন বার পুনরাবৃত্তি করা সহজ।
উদাহরণস্বরূপ, কোনও User
প্রকারটি এর মতো দেখতে (সিউডোকোড) হতে পারে:
type User {
integer id;
string name;
timestamp birthday;
}
প্রকল্পের প্রতিটি অংশের জন্য একরকম প্রতিনিধিত্ব প্রয়োজন User
। জাভা এবং পাইথনের অংশগুলির জন্য দুটি পৃথক class
ঘোষণা দরকার need ডাটাবেসটির একটি User
সারণী ঘোষণার প্রয়োজন হবে । এবং সামনের প্রান্তের সাইটটির একটি User
খুব প্রতিনিধিত্ব করা প্রয়োজন ।
এই জাতীয় 4 টি ভিন্ন বার পুনরাবৃত্তি করা সত্যিই নিজেকে পুনর্বার পুনরাবৃত্তি করুন না principle এছাড়াও সমস্যাটি রয়েছে যে যদি User
টাইপটি পরিবর্তন করা হয় তবে প্রকল্পের প্রতিটি বিভিন্ন অংশে এই পরিবর্তনগুলি পুনরাবৃত্তি করা দরকার।
আমি জানি যে গুগলের প্রোটোবুফ লাইব্রেরি এই সমস্যাটির এক ধরণের সমাধান প্রস্তাব করে যেখানে আপনি একটি বিশেষ সিনট্যাক্স ব্যবহার করে একটি ডেটাস্ট্রাকচার লিখেছেন এবং তারপরে গ্রন্থাগারটি একাধিক বিভিন্ন প্রোগ্রামিং ভাষায় আপনার জন্য কাঠামোর ঘোষণা উত্পন্ন করে। তবে এটি এখনও আপনার ধরণের জন্য বৈধতা যুক্তির পুনরাবৃত্তি করার বিষয়টি নিয়ে কাজ করে না।
কারও কাছে এই সম্পর্কে বই / ব্লগ পোস্টগুলির কোনও পরামর্শ বা লিঙ্ক রয়েছে?
Repeating this type 4 different times really breaks the Don't-Repeat-Yourself principle
। না এটা হয় না। আপনার 4 টি আলাদা সিস্টেম রয়েছে যা বিভিন্ন জিনিস করে। আপনি DRY খুব দূরে নিয়ে যাচ্ছেন। আমার অভিজ্ঞতা অনুসারে, আপনি যে পুনরায় ব্যবহারযোগ্যতা বাছাই করতে চান তা বাছাইয়ের কুফল। এটি User
4 টি ভিন্ন ভাষায় 4 বার পুনরাবৃত্তি করার চেয়েও খারাপ । বিতরণ করা পরিবেশে, সংযুক্তকরণ একটি সমস্যা। DRY হয় না।