যখনই সম্ভব সম্ভব এটি করা ভাল, তবে আমি এই ধরণের কাজটি "পদক্ষেপ" হিসাবে নয়, সাবটাস্ক হিসাবে ভাবতে চাই ।
এটি একটি নির্দিষ্ট দায়িত্ব আছে, এবং সংজ্ঞায়িত ইনপুট (গুলি) এবং আউটপুট (গুলি) (মনে: একটি subtask কাজ একটি নির্দিষ্ট ইউনিট যে কাজ করা যেতে পারে হয় "এস" মধ্যে কঠিন )। একটি সাবটাস্ক পুনরায় ব্যবহারের প্রয়োজন হয় না: কিছু লোকের মনে হয় "" আমাকে আর কোনও কিছু থেকে কল করতে হবে না তাই এটিকে কেন একটি ফাংশন হিসাবে লিখি? " তবে এটি একটি ভ্রান্তি।
আমি সুবিধাগুলি এবং এটি কীভাবে নেস্টেড ফাংশনগুলির (ক্লোজারগুলি) বনাম ক্লাসের অন্য কোনও ফাংশনে প্রযোজ্য তাও রূপরেখার চেষ্টা করব। সাধারণভাবে বলতে গেলে, আমি আপনাকে বিশেষভাবে একটির প্রয়োজন না হলে ক্লোজারগুলি ব্যবহার না করার পরামর্শ দেব (অনেকগুলি ব্যবহার রয়েছে, তবে কোডটিকে লজিকাল অংশগুলিতে পৃথক করা তাদের মধ্যে একটি নয়)।
পঠনযোগ্যতার।
পদ্ধতিগত কোডের 200+ লাইন (একটি ফাংশনের মূল অংশ) পড়া শক্ত read 2-20 লাইন ফাংশনগুলি পড়া সহজ। কোড মানুষের জন্য।
নেস্টেড বা না, আপনি মূলত পঠনযোগ্যতার সুবিধা পান, যদি না আপনি পিতামাতার স্কোপ থেকে প্রচুর ভেরিয়েবল ব্যবহার করেন তবে এক্ষেত্রে এটি পড়া ঠিক ততটাই কঠিন হতে পারে।
পরিবর্তনশীল সুযোগ সীমাবদ্ধ
অন্য কোনও ক্রিয়াকলাপটি আপনাকে পরিবর্তনশীল সুযোগ সীমাবদ্ধ করতে এবং আপনার যা প্রয়োজন তা সুনির্দিষ্টভাবে পাস করতে বাধ্য করে।
এটি প্রায়শই আপনাকে কাঠামোগত কোড আরও ভাল করে তোলে কারণ আপনার যদি আগের "পদক্ষেপ" থেকে কোনও ধরণের রাষ্ট্রীয় পরিবর্তনশীলের প্রয়োজন হয় তবে আপনি সম্ভবত খুঁজে পেতে পারেন যে অন্য মানটি পাওয়ার জন্য প্রথমে আরও একটি সাবটাস্ক লিখিত এবং সম্পাদন করা উচিত। বা অন্য কথায়, কোডটির উচ্চ-সংযুক্ত অংশগুলি লিখতে এটি আরও শক্ত করে তোলে।
নেস্টেড ফাংশন থাকা আপনাকে নেস্টেড ফাংশন (ক্লোজার) এর ভিতরে থেকে প্যারেন্ট স্কোপে ভেরিয়েবল অ্যাক্সেস করতে দেয়। এটি খুব কার্যকর হতে পারে তবে এটি সূক্ষ্ম, হার্ড-টু-ফাগল বাগের দিকেও নিয়ে যেতে পারে যেহেতু ফাংশনটির সম্পাদনা এটি লিখিতভাবে ঘটে না। আপনি যদি প্যারেন্ট স্কোপে ভেরিয়েবলগুলি পরিবর্তন করছেন (এটি খুব খারাপ ধারণা, সাধারণত) তবে এটি আরও বেশি ঘটনা।
ইউনিট পরীক্ষা
প্রতিটি সাবটাস্ক, একটি ফাংশন বাস্তবায়িত (বা এমনকি একটি শ্রেণি) কোডটি একা একা, টেস্টেবল টুকরা। ইউনিট টেস্টিং এবং টিডিডি এর সুবিধাগুলি অন্য কোথাও ভালভাবে নথিভুক্ত করা হয়েছে।
নেস্টেড ফাংশন / ক্লোজারগুলি ব্যবহার করে ইউনিট পরীক্ষার অনুমতি দেয় না। আমার কাছে এটি একটি চুক্তি-ব্রেকার এবং কারণটির কোনও নির্দিষ্ট প্রয়োজন না থাকলে আপনার আর একটি ফাংশন হওয়া উচিত।
একটি দল / টপ-ডাউন ডিজাইনে কাজ করা
সাবটাস্কগুলি প্রয়োজন অনুসারে স্বতন্ত্রভাবে বিভিন্ন ব্যক্তি লিখতে পারেন।
এমনকি নিজের দ্বারা, মূল কার্যকারিতাটি তৈরি করার সময়, কিছু বিদ্যমান সাবটাস্ক যা কেবল অস্তিত্বহীনভাবে উপস্থাপিত করার জন্য কোড লেখার সময় কার্যকর হতে পারে এবং সাবটাস্কটি বাস্তবায়নের বিষয়ে উদ্বেগ কেবল তখনই আপনি জানেন যে এটি আপনার প্রয়োজনীয় ফলাফল পেতে চলেছে অর্থপূর্ণ উপায়. একে টপ-ডাউন ডিজাইন / প্রোগ্রামিংও বলা হয়।
কোড পুনরায় ব্যবহার
ঠিক আছে, তাই আমি আগে যা বলেছিলাম তা সত্ত্বেও মাঝে মাঝে আসলে কোনও কারণ হয়ে পরে অন্য কোনও সাবটাস্ক পুনরায় ব্যবহার করার চেষ্টা করে re আমি "আর্কিটেকচার নভোচারী" -বাদের পক্ষে মোটেও সমর্থন করছি না তবে কেবল এটিই যে আলগাভাবে-সংযুক্ত কোড লিখে আপনি পুনরায় ব্যবহার থেকে পরে উপকৃত হতে পারেন।
প্রায়শই পুনরায় ব্যবহারের অর্থ কিছু রিফ্যাক্টরিং হয়, যা পুরোপুরি প্রত্যাশিত হয়, তবে একটি ছোট স্ট্যান্ডেলোন ফাংশনে ইনপুট পরামিতিগুলি রিফ্যাক্ট করা এটি 200+ লাইন ফাংশনটি লেখার কয়েক মাস পরে এটি উত্তোলনের চেয়ে অনেক সহজ, যা এখানে সত্যই আমার বক্তব্য।
যদি আপনি কোনও নেস্টেড ফাংশন ব্যবহার করেন তবে এটিকে পুনরায় ব্যবহার করা সাধারণত কোনও পৃথক ফাংশনে রিফ্যাক্ট করার বিষয়, যা আবার, কেন আমি যুক্তি দিয়েছি যে নেস্টেড যাওয়ার উপায় নয়।