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