কম্পিউটার টিউটোরিয়াল

যখন DRY আপনার কোড ভুল দিকে যায়: কেন রিফ্যাক্টরিং কোডকে কঠিন করতে পারে

"Don't Repeat Yourself" আমার সফটওয়্যার ডেভেলপমেন্ট ক্যারিয়ারের সময় পড়া সবচেয়ে মূল্যবান বইগুলোর একটি থেকে সবচেয়ে মূল্যবান আইডিয়ার একটি। আপনি যদি ডুপ্লিকেট কোড রিফ্যাক্টর করে দূর করতে পারেন, তবে আপনি আরও জেনারেল, আরও স্টেবল কোড প্রোডিউস করবেন। কিন্তু যখন আপনি আপনার কোড DRY করা শুরু করবেন, তবে আপনি কিছু সমস্যায় পড়বেন: এমন কোড যা এজ কেস ভালো হ্যান্ডল করে না, এমন কোড যা অত্যধিক জেনারেলাইজড এবং পড়তে কঠিন, বা এমন কোড যা খুঁজে পাওয়া কঠিন। যদি DRYness দিকে রিফ্যাক্টরিং সবসময় কাজ না করে, তবে আপনি কীভাবে বুঝবেন কখন রিফ্যাক্টর করা উচিত?

Too-DRY কোড এসেছে এক ধরনের মিসঅন্ডারস্ট্যান্ডিং থেকে যে আপনি কোন ধরনের ডুপ্লিকেশন রিফ্যাক্টর করে দূর করার চেষ্টা করবেন। আপনাকে এসেনশিয়াল ডুপ্লিকেশন এবং অ্যাকসিডেন্টাল ডুপ্লিকেশনের পার্থক্য চিনতে পারতে হবে।

এসেনশিয়াল ডুপ্লিকেশন হল সেই কোড যা আপনার কাজ কর रहे সমস্যা ক্লাসকে সমাধান করে। এই ধরনের ডুপ্লিকেশন আপনাকে অবিলম্বে দূর করা উচিত।

অ্যাকসিডেন্টাল ডুপ্লিকেশন হল সেই ডুপ্লিকেশন যা হাতে 大阪 সমস্যার সাথে অসম্পর্কিত, "দুর্যোগবশত ডুপ্লিকেশন।" আপনি যদি অ্যাকসিডেন্টাল ডুপ্লিকেশন খুব আগ্রেসিভলি ক্লিন করেন, তবে আপনি আরও ব্রিটল কোড পাবেন যা নতুন কেস যোগ হলে আন-রিফ্যাক্টর করতে হবে।

তবে আপনি কীভাবে পার্থক্য করবেন? অভিজ্ঞতাজনিত, আপনি এতে ভালো হয়ে যেতে পারেন, কিন্তু দশক ধরে প্রোগ্রামিং করার পরেও, আমি এখনো আধা সময়ও সেটি সঠিকভাবে করতে পারি না। সৌভাগ্য থেকে, একটি জেনারেল রুল আছে যা খুব হেল্প করে: Three Strikes and You Refactor।

প্রথমবার আপনি কিছু করলে, আপনি শুধু করুন।

দ্বিতীয়বার আপনি কিছু একই জিনিস করলে, আপনি ডুপ্লিকেশন দেখে মুখ বিক্রিত করবেন, কিন্তু আপনি ডুপ্লিকেট জিনিসটি করবেন।

তৃতীয়বার আপনি কিছু একই জিনিস করলে, আপনি রিফ্যাক্টর করুন।

আপনি কি দেখতে পাচ্ছেন কেন এটি হেল্প করে? তৃতীয়বার পর্যন্ত, আপনাকে প্যাটার্নগুলো দেখতে শুরু করা উচিত। আপনার আপনার সমস্যা সমাধানের জন্য কোন ডুপ্লিকেট কোড অপরিহার্য এবং কোন কোড শুধু কয়েন্সিডেন্টালি এক जैसा দেখাচ্ছে সেটি বুঝতে পারবেন। আপনি শুধু সেই কোডকে জেনারেলাইজ (এবং DRY আপ) করতে পারবেন যা আপনার সমাধান কর रहे সমস্যার সকল ইনস্ট্যান্সে মৌলিকভাবে একই।

একটু সময় নিন এবং চিন্তা করুন গতবারের রিফ্যাক্টরিং আপনাকে কখন কষ্ট দিয়েছিল। কি আপনি এমন কিছু DRY আপ করার চেষ্টা করছিলেন যা সমস্যার দুটি কপির মাঝপথে ডুপ্লিকেট ছিল, কিন্তু তৃতীয় কপি একটু ভিন্ন ছিল?

এবং পরের বার আপনি যখন মনে করবেন যে আপনাকে কিছু কোড ডুপ্লিকেট করতে হবে, তখন তৃতীয় কপি পর্যন্ত অপেক্ষা করার চেষ্টা করুন। (এটা খুব কঠিন এবং খুব খারাপ লাগে, কিন্তু আখা বন্ধ করে চেষ্টা করুন)। তারপর, DRY আপ করার সময় সেটি সম্পর্কে চিন্তা করুন। কি আপনি ভিন্নভাবে রিফ্যাক্টর করছেন যেভাবে আপনি দ্বিতীয় কপি লিখার পরই রিফ্যাক্টর করলে করতেন?

  1. WPS কী এবং এটি কীভাবে কাজ করে? সম্পূর্ণ গাইড

  2. ফায়ারওয়াল কী এবং এর উদ্দেশ্য কী?

  3. উইন্ডোজ ১০ Meet Now কী এবং কিভাবে এটি সরাবেন

  4. RuboCop দিয়ে রুবি কোড কোয়ালিটি উন্নত: লিন্টিং ও অটো-ফরম্যাটিং