ডিআই পাত্রে কী কী বিমূর্ততা হয় । ডিআই পাত্রে আপনার জন্য এই নকশা উদ্বেগ বিমূর্ত। আপনি যেমন অনুমান করতে পারেন, কোডটিতে এটির লক্ষণীয় প্রভাব রয়েছে, প্রায়শই এটি কম সংখ্যক নির্মাতা, সেটার, কারখানা এবং বিল্ডারগুলিতে অনুবাদ হয়। ফলস্বরূপ, তারা আপনার কোডটিকে আরও আলগাভাবে সংযুক্ত করে (অন্তর্নিহিত আইওসি কারণে ), পরিষ্কার এবং সহজতর করে। যদিও ব্যয় ছাড়াই নয়।
পটভূমিগুলি
বছর আগে, এই ধরনের বিমূর্ততা আমাদের বিভিন্ন কনফিগার ফাইল ( ডিকোলেটারি প্রোগ্রামিং ) লিখতে প্রয়োজন । এলওসি সংখ্যা উল্লেখযোগ্যভাবে হ্রাস পাচ্ছে দেখে অবাক করা চমত্কার ছিল, তবে এলওসিএস হ্রাস হওয়ার সাথে সাথে কনফিগার ফাইলের সংখ্যা কিছুটা বাড়িয়েছে। মাঝারি বা ছোট প্রকল্পগুলির জন্য এটি মোটেও সমস্যা ছিল না, তবে বৃহত্তর প্রকল্পগুলির জন্য, কোড এবং এক্সএমএল বর্ণনাকারীদের মধ্যে "কোডের সমাবেশ" 50% বিচ্ছুরিত করার জন্য ... তবে তবুও মূল সমস্যাটি ছিল দৃষ্টান্ত নিজেই। এটি বেশ জটিল ছিল কারণ বর্ণনাকারীরা কাস্টমাইজেশনের জন্য খুব কম জায়গা রেখেছিল।
দৃষ্টান্তটি কনফিগারেশনের উপর ভিত্তি করে কনভেনশনের দিকে অগ্রসর হয়েছিল , যা টীকা বা বৈশিষ্ট্যের জন্য কনফিগারেশন ফাইলগুলিতে ব্যবসা করে। এটি আমাদের কোড ক্লিনার এবং সরল রাখে এবং এক্সএমএল না পারায় এমন নমনীয়তা আমাদের সরবরাহ করে।
সম্ভবত, আপনি এখন পর্যন্ত কীভাবে কাজ করছিলেন সে সম্পর্কিত এটি সর্বাধিক উল্লেখযোগ্য পার্থক্য। কম কোড এবং আরও যাদু।
নিচে দিকে ...
কনফিগারেশন সম্পর্কিত কনভেনশন বিমূর্তনটিকে এত ভারী করে তোলে যে আপনি কীভাবে এটি কাজ করে তা সবেমাত্র জানেন। কখনও কখনও যাদু মনে হয় এবং এখানে আরও একটি ত্রুটি আসে। একবার কাজ করার পরে, অনেক বিকাশকারী কীভাবে এটি কাজ করে তা নিয়ে চিন্তা করে না।
যারা ডিআই পাত্রে ডিআই শিখেন তাদের জন্য এটি প্রতিবন্ধকতা। তারা নকশার ধরণগুলির প্রাসঙ্গিকতা, ভাল অনুশীলন এবং ধারক দ্বারা বিমূর্ত নীতিগুলি পুরোপুরি বুঝতে পারে না। আমি বিকাশকারীদের জিজ্ঞাসা করেছি তারা ডিআই এবং এর সুবিধার সাথে পরিচিত ছিল এবং তারা উত্তর দিয়েছে: - হ্যাঁ, আমি স্প্রিং আইওসি ব্যবহার করেছি -। (এর মানে কী?!?)
এই প্রতিটি "ত্রুটি "গুলির সাথে কেউ একমত বা নাও করতে পারে। আমার বিনীত মতে, আপনার প্রকল্পে কী চলছে তা জানতে হবে। অন্যথায়, আমাদের এটি সম্পর্কে সম্পূর্ণ বোঝা নেই। এছাড়াও ডিআই কী এবং এটি কীভাবে প্রয়োগ করা যায় সে সম্পর্কে ধারণা রাখার বিষয়টিও বিবেচনা করা উচিত।
্যত্নদ্দন্ত...
একটি শব্দ উত্পাদনশীলতা । ফ্রেমওয়ার্কগুলি আমাদের সত্যিকারের বিষয়গুলিতে ফোকাস করতে দেয়। অ্যাপ্লিকেশন এর ব্যবসা।
মন্তব্য করা ত্রুটি থাকা সত্ত্বেও, আমাদের অনেকের জন্য (কোন কাজটি সময়সীমা ও ব্যয় দ্বারা শর্তযুক্ত), এই সরঞ্জামগুলি একটি অমূল্য সংস্থান। আমার মতে, একটি ডিআই পাত্রে বাস্তবায়নের পক্ষে এটি আমাদের মূল যুক্তি হওয়া উচিত। উত্পাদনশীলতা ।
পরীক্ষামূলক
আমরা খাঁটি ডিআই বা পাত্রে বাস্তবায়ন করি কিনা, পরীক্ষার কোনও সমস্যা হবে না। পুরোপুরি বিপরীত. একই ধারকগুলি প্রায়শই আমাদের বাক্সের বাইরে ইউনিট পরীক্ষার জন্য উপহাসগুলি সরবরাহ করে। কয়েক বছর ধরে আমি আমার পরীক্ষাগুলি থার্মোমিটার হিসাবে ব্যবহার করেছি। আমি যদি ধারকগুলির সুবিধার উপরে বেশি নির্ভর করে থাকি তবে তারা আমাকে বলবে। আমি এটি বলছি কারণ এই ধারকরা সেটটার বা কনস্ট্রাক্টর ছাড়াই ব্যক্তিগত বৈশিষ্ট্যগুলির সূচনা করতে পারে। তারা প্রায় কোনও জায়গায় উপাদানগুলি ইনজেক্ট করতে পারে!
ঠিক প্রলোভন লাগছে? সাবধান হও! ফাঁদে পড়বেন না !!
পরামর্শ
আপনি যদি ধারকগুলি কার্যকর করার সিদ্ধান্ত নেন, তবে আমি দৃ strongly়ভাবে ভাল অনুশীলনগুলি বদ্ধ করার পরামর্শ দিই। কনস্ট্রাক্টর, সেটার এবং ইন্টারফেস বাস্তবায়ন করুন। এগুলি ব্যবহারের জন্য কাঠামো / ধারক প্রয়োগ করুন । এটি অন্য ফ্রেমওয়ার্কে বা প্রকৃতটিকে অপসারণ করা সহজ স্থানান্তরকে সহজ করে তুলবে। এটি ধারকটির উপর নির্ভরশীলতা উল্লেখযোগ্যভাবে হ্রাস করতে পারে।
এই অনুশীলন সম্পর্কে:
ডিআই পাত্রে কখন ব্যবহার করবেন
আমার উত্তরটি নিজের অভিজ্ঞতার দ্বারা পক্ষপাতদুষ্ট হতে চলেছে যা মূলত ডিআই কনটেইনারগুলির পক্ষে হয় (যেমন আমি মন্তব্য করেছি যে আমি উত্পাদনশীলতার দিকে খুব বেশি মনোনিবেশ করছি, তাই আমার কখনই খাঁটি ডিআইয়ের প্রয়োজন হয় নি Qu বিপরীতে)।
আমি মনে করি আপনি এই বিষয় সম্পর্কে আকর্ষণীয় মার্ক সিমনের নিবন্ধটি পাবেন , যা খাঁটি ডিআই বাস্তবায়ন করতে হবে এমন প্রশ্নেরও উত্তর দেয় ।
শেষ পর্যন্ত, যদি আমরা জাভা বলছিলাম, আমি প্রথমে জেএসআর 330 - নির্ভরতা ইনজেকশনটির দিকে একবার বিবেচনা করব ।
সংক্ষেপিত
উপকারিতা :
- ব্যয় কাটা এবং সময় সাশ্রয়। প্রমোদ.
- উপাদানগুলির একটি ছোট সংখ্যা।
- কোডটি সহজ এবং ক্লিনার হয়ে যায়।
ত্রুটিগুলি :
- ডিআই-কে তৃতীয় পক্ষের লিবিতে অর্পণ করা হয়। আমাদের তাদের বাণিজ্য বন্ধ, শক্তি এবং দুর্বলতা সম্পর্কে সচেতন হওয়া উচিত।
- শেখার বক্ররেখা.
- তারা দ্রুত আপনাকে কিছু ভাল অভ্যাসগুলি ভুলে যায়।
- প্রকল্পের নির্ভরতা বৃদ্ধি (আরও কম)
- প্রতিফলনের উপর ভিত্তি করে ধারকগুলির আরও সংস্থান (মেমরি) প্রয়োজন। আমরা যদি সংস্থান থেকে সীমাবদ্ধ থাকি তবে এটি গুরুত্বপূর্ণ।
খাঁটি ডিআই এর সাথে পার্থক্য :
- কম কোড এবং আরও কনফিগারেশন ফাইল বা টিকা।