আমি প্রায়শই শুনেছি যে কোড পুনঃব্যবহারের ক্ষেত্রে অবজেক্টগুলি বিতরণ করেনি। তুমি কি একমত? আপনি যদি বিশ্বাস করেন যে তারা নেই, তবে কেন নয়?
আমি প্রায়শই শুনেছি যে কোড পুনঃব্যবহারের ক্ষেত্রে অবজেক্টগুলি বিতরণ করেনি। তুমি কি একমত? আপনি যদি বিশ্বাস করেন যে তারা নেই, তবে কেন নয়?
উত্তর:
না, অগত্যা নয়।
অবজেক্টস আরও ভাল শব্দার্থক বিতরণ করে, কোড / কার্যকারিতা এবং সম্ভবত ব্যবহারের সহজলভ্য সংগঠন।
ভাল ডিজাইন করা লাইব্রেরিগুলি কোড পুনরায় ব্যবহারের প্রতিশ্রুতি দেয়, প্রতি সেজে অবজেক্টগুলি নয়।
সত্যই আমি নিশ্চিত নই যে "কোড পুনরায় ব্যবহার" আসলেই কারওর পরে (বা কমপক্ষে, তার পরে হওয়া উচিত)। আমার দর্শন হল "সফ্টওয়্যার উপাদান", যার অর্থ ভাল ইন্টারফেসের মাধ্যমে আরও ভাল রক্ষণাবেক্ষণ এবং অপ্রয়োজনীয় মিলন এড়ানো। "কোড পুনরায় ব্যবহার" কখনও কখনও এর বাইরে চলে যায় এমন একটি বিষয় unnecess অযথা ডুপ্লিকেট কোডটি এমন একটি চিহ্ন যা আপনি জিনিসগুলি ভুল উপায়ে সংগঠিত করেছেন এবং অবশ্যই এটি বজায় রাখতে ব্যথা।
প্রশ্নের আরও কিছুটা প্রত্যক্ষ উত্তর দেওয়ার জন্য, নিজেকে পুনরাবৃত্তি এড়ানোর জন্য বেশ ভাল সরঞ্জামগুলির একটি সংগ্রহ রয়েছে: উত্তরাধিকার, বৈশিষ্ট্য, প্রতিনিধি, উচ্চতর অর্ডার ফাংশন ইত্যাদি those এর মধ্যে লোকেরা সামগ্রিকভাবে ওওর সাথে উত্তরাধিকারকে বিভ্রান্ত করে and আপনি যদি আমাকে জিজ্ঞাসা করেন তবে তারা কিছুটা অতিরিক্ত ব্যবহার করার ঝোঁকও রাখে। সম্ভবত সেখান থেকেই কিছু "OO sucks" ভাইব এসেছে: উত্তরাধিকার আটকে আছে যেখানে এটির কোনও প্রাকৃতিক অধিকার নেই :)
না, "অবজেক্টস" কোডটিকে পুনরায় ব্যবহার সহজতর বা আরও সাধারণ করে তোলে না। একই উদ্বেগগুলি যা কোনও মডুলার প্রোগ্রামে কোডটি পুনরায় ব্যবহার হতে বাধা দেয় (সাধারণ-উদ্দেশ্যগত এপিআই ডিজাইনিং, টেস্টিং এবং ডকুমেন্টিংয়ের জন্য এক-অফ রুটিন লেখার চেয়ে যথেষ্ট বেশি সামনের প্রচেষ্টা প্রয়োজন, এবং সমস্ত ব্যবসায়ের জ্যাক হতে পারে মাস্টার অফ - পুনরায় ব্যবহারের উদ্দেশ্যে যুক্তি যুক্ত করার জন্য এটি যেভাবে ব্যবহার করা হয়েছে তার জন্য এটি যথাযথভাবে অনুকূল নাও হতে পারে) ওও প্রোগ্রামগুলিতে প্রয়োগ করুন, এটির অতিরিক্ত উদ্বেগের সাথে যে একটি দুর্বল নকশাকৃত অবজেক্ট মডেল অন্যথায় পুনঃব্যবহারযোগ্য ব্যবহারের পুনরায় ব্যবহারকে বাধা দিতে পারে কোড।
ওও হ'ল একটি ভাল অনেকগুলি সমস্যার জন্য বিমূর্ততা, তবে '80s-'90 এর হাইপ থেকে সাবধান থাকুন: আপনি যখন ঘুমাবেন তখন এটি আপনার ব্যবসার মৌলিক সমস্যাগুলির চেয়ে বেশি ঝাঁকুনির সমাধান করে না it
আমি আশা করি না যে সমস্ত বস্তু পুনরায় ব্যবহৃত হবে তবে আমাদের কাছে অনেকগুলি অবজেক্ট রয়েছে যা আমরা বিভিন্ন প্রকল্পে পুনরায় ব্যবহার করি। আমাদের এমন বস্তুও রয়েছে যা কেবলমাত্র একটি প্রকল্পে পুনরায় ব্যবহৃত হয়। আমরা প্রায়শই একই প্রকল্পের জন্য ক্লিক-একবার ডেস্কটপ অ্যাপ্লিকেশন, একটি ওয়েব অ্যাপ্লিকেশন এবং একটি ফোন অ্যাপ্লিকেশন থেকে একই ব্যবসায়িক অবজেক্টগুলি (বা ডেটা ট্রান্সফার অবজেক্টস) পাশাপাশি ব্যবসায়িক লজিক অবজেক্টগুলি গ্রাস করব।
আপনি কোথায় শুনেছেন যে ওও পুনঃব্যবহারে বিতরণ করে না? আর যুক্তি কী ছিল? সম্ভবত তাদের বস্তুর নকশা তাদের সেই পরিস্থিতিতে বাধ্য করেছিল ...
কিছু প্রোগ্রামার কোনও ভাষা এবং শৈলীতে কপি এবং পেস্ট করবে।
সত্যিই ভাল প্রোগ্রামাররা প্রায় কোনও ভাষায় সর্বাধিক অনুলিপি এবং আটকানো যায়।
আমি OO প্যাটার্নগুলি পুনরায় ব্যবহারকে উত্সাহিত করে find আমি জাভা কোডটি দেখেছি যা একটি নন-ওও স্টাইলে লেখা হয়েছিল (যেখানে ক্রেপি ওআরএমের কারণে কোডটি থেকে ডেটা পৃথক করা হয়েছিল) এবং পুনরায় ব্যবহার সত্যই দু: খজনক ছিল - তবে ওওতে একই প্রোগ্রামাররা ডিজাইনে আরও ভাল কাজ করেছিলেন ( এবং পুনরায় ব্যবহার করুন))
এছাড়াও আমরা যেখানে অ-patterns প্যাটার্ন বা anti অ্যান্টি-প্যাটারগুলি যেমন সেটার / গেটারস, সুইচ স্টেটমেন্টস, বেনামে অভ্যন্তরীণ ক্লাসগুলি, বিশাল ফাংশন এবং আমি কোড পুনরায় ব্যবহার দেখেছি এবং বয়লারপ্লেট উপরে যেতে দেখেছি ... উল্লেখযোগ্যভাবে।
পুনশ্চ. আমি জানি লোকেরা পূর্ববর্তী অনুচ্ছেদে সমস্যা হবে, তাই আমি কিছুটা ব্যাখ্যা করব।
সেটার এবং গিটাররা ওও সমস্যা সৃষ্টি করে কারণ তারা আপনাকে কোনও অবজেক্টের সদস্যদের উপর পরিচালনা করতে দেয় (কোনও বস্তু তার ওডব্লিউএন সদস্যদের পরিচালনা করতে পারে) এটি আপনার ক্লাসে পরিচালিত কোডটি অন্যান্য শ্রেণীর মধ্যে বিতরণ করে যা আপনাকে সেটার / গেটারের চারপাশে কার্যকারিতা অনুলিপি করার প্রয়োজন হয় distrib । এটি সম্পত্তিগুলির ক্ষেত্রেও প্রযোজ্য - কারণ সম্পত্তিগুলি সহজ হওয়ায় সব পরিস্থিতিতে এগুলি "ভাল" করে না।
অজ্ঞাতনামা অভ্যন্তরীণ শ্রেণীর কোডগুলি একেবারেই পুনরায় ব্যবহার করা যায় না এবং লোকেরা ভুলে যায় যে অনেক কিছুই (শ্রোতার মতো) পূর্ণ-বর্গ শ্রেণি হতে পারে এবং হওয়া উচিত - এটি ক্লোজারগুলিতেও প্রযোজ্য! আপনি যদি শ্রোতার মতো কিছু বাস্তবায়নের জন্য বেনামে অভ্যন্তরীণ শ্রেণি ব্যবহার করে থাকেন তবে কোডটি কোনও পদ্ধতিতে বের করার চেয়ে কেবল নিজের প্রয়োগটি অনুলিপি করে পেস্ট করার সম্ভাবনা রয়েছে বা এর নিজস্ব শ্রেণি এবং এর পরিবর্তে এটি কল করুন। বন্ধগুলি পুনরায় ব্যবহারযোগ্যতাও উন্নত করতে পারে - আপনি কীভাবে এটি ব্যবহার করেন তার উপর নির্ভর করে।
অনেক ক্ষেত্রে আপনার কাছে উপলব্ধ বৈশিষ্ট্যগুলি কীভাবে আপনি আপনার কোডটি গঠন করেন তা আকৃতি দেয়। আপনার সমস্ত কোড এবং এটি কীভাবে ইন্টারেক্ট করে তা আপনাকে কল্পনা করতে সহায়তা করার ক্ষেত্রে ওও আরও শক্তিশালী but
কোনও সিঁড়িওয়ালা বা অন্যান্য ফিটনেস সরঞ্জাম ওজন হ্রাস ডেলিভারি করতে পারে তার চেয়ে অবজেক্টগুলির কোড পুনরায় ব্যবহারের আর সরবরাহ করার ক্ষমতা নেই। বিকাশকারীদের সরঞ্জামগুলি সঠিকভাবে ব্যবহার করতে উত্সাহিত করতে হবে।
একবার সফ্টওয়্যার দলগুলি সমস্ত বিবরণ তাদের মাথায় রাখার চেয়ে পরীক্ষিত কোডটিকে পুনরায় ব্যবহার করার জন্য একটি উচ্চতর মান স্থাপন করলে আপনি আরও বেশি সূক্ষ্ম দানাযুক্ত জিনিস এবং পদ্ধতি এবং সেইজন্য আরও কোড পুনরায় ব্যবহার দেখতে পাবেন।
ওওপি আপনাকে কোডটি পুনরায় ব্যবহার করার আরও উপায় দেয়
সিলভার বুলেট নেই
আপনি এতে কী রেখেছিলেন এবং এর বদলে আপনি কী প্রত্যাশা করেছিলেন!
হ্যাঁ. ভাল অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং উদ্বেগ, কম সংশ্লেষ, উচ্চ সংহতি এবং তথ্য গোপনের বিচ্ছেদকে উত্সাহ দেয়। এই জিনিসগুলি পুনরায় ব্যবহারযোগ্য কোডের জন্য সমস্ত গুরুত্বপূর্ণ।
আমি যুক্তি দিয়ে বলব যে ওওপি-র মূল সুবিধাটি পুনরায় ব্যবহারের পরিবর্তে সামঞ্জস্যতা এবং পরিবর্তনশীলতা, তবে এটি অন্য প্রশ্ন।
হ্যাঁ, তারা করেন, একটি সুপার ক্লাস ক্লিয়ারি থেকে প্রসারিত (উত্তরাধিকারী) করার ক্ষমতা কোড পুনরায় ব্যবহারে অবদান রাখে, আমি নিশ্চিত নই যে অন্য কেউ কীভাবে তর্ক করতে পারে। সুপার ক্লাস থেকে বাকিটি ব্যবহার করার সময় আপনি কেবল একটি ক্লাস প্রসারিত করতে পারেন এবং একটি পদ্ধতি ওভাররাইড করতে পারেন, যদি কোডটি পুনরায় ব্যবহারে এটি সহায়তা না করে তবে আমি জানি না কী
যদি তারা এতক্ষণ তাদের কোড পুনরায় ব্যবহারের প্রতিশ্রুতি দেয় তবে? হ্যাঁ, যদি ওওপি দিয়ে লেখা প্রোগ্রামগুলি বিবেচনা করে ডিজাইনের ধরণগুলি প্রয়োগ করে। অন্যথায়, না বেশিরভাগ। তবে অ্যাডোব সিস্টেমগুলি, গুগল এবং সি ++ বা জাভা বা অন্যান্য ওওপি ভাষার সাথে লেখার মতো বৃহত আকারের তুচ্ছ প্রোগ্রামগুলির জনপ্রিয়তার দিকে তাকিয়ে আমি বলব যে পর্যায়ক্রমণের আগে ওওপি এর অনেক দীর্ঘ পথ রয়েছে। এই প্রশ্নটি জিজ্ঞাসা করার জন্য সেই সময়টি আরও ভাল উপযুক্ত হবে এবং একটি নতুন দৃষ্টান্তের জন্য স্থল কাজ সরবরাহে সহায়তা করতে পারে।