ওভার-উদ্যোগী YAGNI (যা বলা হয় প্রয়োগের শুমার ডিজাইন মধ্যে অবজেক্ট ওরিয়েন্টেড উন্নয়ন pitfalls একটি পরিবেশ যেখানে কোন বুদ্ধিমান ব্যক্তি বলতে পারে যে প্রয়োজনীয়তা ছিল মধ্যে) স্পষ্টভাবে পরিবর্তন করতে যাচ্ছেন। এবং বারবার পরিবর্তন।
যদি আপনি (কঠোর) সমস্ত কিছুকে বর্তমানের প্রয়োজনীয়তার সাথে হুবহু কোড করে থাকেন - এমন কাউকে মারধর করার সময় যে "এই আরও জেনেরিক হতে পারে না?" আপনার YAGNI ম্যালেট-এর সাথে এবং তারপরে প্রয়োজনীয়তাগুলি তীব্রভাবে পরিবর্তিত হয় (তবে এমন কোনও উপায়ে প্রত্যাশা করা যেতে পারে), তারপরে এটি গ্রহণ করতে 2 সপ্তাহ গ্রহণের মধ্যে, 20 মিনিট সময় নেওয়ার মধ্যে পার্থক্য হতে পারে।
আপডেট: স্পষ্ট করার জন্য, এখানে একটি কল্পিত উদাহরণ যা ঘটনার থেকে খুব বেশি দূরে নয়। স্ট্যাক ওভারফ্লো ব্যাজ সমর্থন করার জন্য ডিজাইন করা হয়েছিল, তবে মনে করুন তারা প্রথমে কেবলমাত্র চারটি ব্যাজ সম্পর্কে চিন্তা করতে পারে। কেবল চারটি, এত কম সংখ্যক, তাই তারা সাইটের সমস্ত যুক্তি জুড়ে ঠিক চারটি ব্যাজগুলির জন্য হার্ডকোড সমর্থন করে। ডাটাবেসে, ব্যবহারকারীর তথ্য, সমস্ত প্রদর্শন কোডে। কারণ "ইয়া দরকার নেই" এমন কোনও ব্যাজ যা আপনি ভাবতে পারেন না, তাইনা? মনে করুন এরপরে সাইটটি লাইভ হয় এবং লোকেরা নতুন ব্যাজ সুপারিশ করতে শুরু করে। প্রতিটি ব্যাজযোগ করতে দুই সপ্তাহ সময় নেয়, কারণ সমস্ত জায়গাতেই টুইট করার জন্য অনেক হার্ডকোডিং রয়েছে। তবে তবুও, "ইয়া দরকার নেই" আজকের তালিকার তুলনায় আর কোনও ব্যাজ নেই, তাই ব্যাজগুলির জেনেরিক সংগ্রহকে সমর্থন করার জন্য কোনও রিফ্যাক্টরিং কখনও নেই। এমন জেনেরিক সংগ্রহ কি আরও বেশি সময় নিতে পারে? বেশি কিছু না, যদি হয়।
ইয়াজিএনআই একটি মূল্যবান নীতি, তবে এটি (আব) নিখুঁত নকশা এবং অনুপযুক্ত হার্ডকোডিংকে ক্ষমা করার জন্য ব্যবহার করা উচিত নয়। একটি ভারসাম্য আছে, এবং অভিজ্ঞতার সাথে, আমি বিশ্বাস করি আমি এটি কাছে আসছি।