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