প্রোগ্রামিংয়ে স্টাবিং বলতে কী বোঝায়?


26

আমি প্রায়শই "স্টাব", "স্টাব কিছু আউট", "স্টাবস" এবং আরও কিছু শব্দ শুনি।

প্রোগ্রামিংয়ে স্টাবিংয়ের অর্থ কী এবং শব্দটি কোথা থেকে এসেছে? এটি কোন প্রসঙ্গে ব্যবহার করা যেতে পারে?


এছাড়াও বলা হয়: স্থানধারক।
পিটার বি

উত্তর:


30

স্টাব পদ্ধতি এমন একটি পদ্ধতি যা কেবলমাত্র একটি সাধারণ তবে বৈধ (যদিও সঠিকভাবে সঠিক নয়) ফলাফল দেয়।

এগুলি সাধারণত পরিকাঠামো তৈরির সময় তৈরি করা হয় এবং আপনি এখনই প্রয়োজন প্রতিটি পদ্ধতিতে সময় ব্যয় করতে চান না। পরিবর্তে আপনি স্টাবগুলি তৈরি করেন যাতে সবকিছু সংকলিত হয় এবং আপনার আইডিই এর স্বতঃপূর্ণ আপনি কী কী পদ্ধতি ব্যবহার করার পরিকল্পনা করছেন সে সম্পর্কে জানে।

টেস্ট করার সময় স্টাবগুলি ব্যবহার করা হয় এমন আরও একটি জায়গা হ'ল আপনি নির্ভরতা ইনজেকশনের মাধ্যমে স্বাভাবিক নির্ভরতার পরিবর্তে স্টাব পদ্ধতিগুলি সরবরাহ করেন যা স্থির ফলাফলগুলি প্রত্যাবর্তন করে এবং তারপরে কোডটি তাদের সাথে সঠিকভাবে কাজ করে তা নিশ্চিত করে। আপনি যে কোডটি পরীক্ষা করার চেষ্টা করছেন তার সাথে এটি টেস্টিংকে পৃথক করে এবং এর অর্থ হল যে এই পরীক্ষাগুলি চালানোর জন্য আপনাকে কোনও ডাটাবেস স্পিন করতে হবে না to


3
নিতপিক: স্টাবের সময় স্টাব ব্যবহার করা হয়, বিদ্রূপ করার সময় নয়। উপহাস করার সময়, আপনি মক ব্যবহার করেন। martinfowler.com/articles/mocksArentStubs.html
Jörg W

উপরের জন্য +1, তবে আমি এটি যুক্ত করতে চাই, যদি আপনি এখনও স্টাবযুক্ত পদ্ধতিগুলি ব্যবহারের প্রত্যাশা না করেন তবে স্টাবগুলি একটি ব্যতিক্রম ছুঁড়ে ফেলা বা অন্যথায় একটি ত্রুটির ফলস্বরূপ কার্যকর হতে পারে। উদাহরণ "NotImplementedException": msdn.microsoft.com/en-us/library/... commons.apache.org/proper/commons-lang/javadocs/api-release/org/...
ড্যান আর্মস্ট্রং

6

সম্ভবত এটির সুনির্দিষ্ট উত্তর একটি সুনির্দিষ্ট উদাহরণ দিয়ে দেওয়া হয়েছে। আপনি যেখানে ডেস্কটপ অ্যাপ্লিকেশন তৈরি করছেন সেই ক্ষেত্রে বিবেচনা করা যাক। আপনি নামে একটি ফাংশন আছে করার সিদ্ধান্ত নিয়েছে করেছি createMenubar, createToolbarএবং createMainতাই আপনার আবেদন কন্সট্রাকটর ঝরঝরে এবং পরিপাটি হয়।

আপনার মূল কোডটি এর মতো দেখতে পাবেন (উদাহরণটি অজগরটিতে রয়েছে):

class ExampleApp():
    def __init__(self):
        self.createMenubar()
        self.createToolbar()
        self.createMain()

আপনার সমস্ত কিছু কাজ না করা অবধি আপনার মূল ফাংশনটি ব্যর্থ হবে, সুতরাং আপনি কীভাবে বিকাশের সময় আপনার অ্যাপ্লিকেশনটি পরীক্ষা করতে পারবেন? উদাহরণস্বরূপ, যদি আপনি কাজ শুরু createMenubar, আরম্ভের এটা মেনুবার যেহেতু আপনি টুলবার অথবা GUI এর প্রধান এলাকায় বাস্তবায়িত হয়নি সৃষ্টি পর ব্যর্থ হবে।

এখানেই স্টাবগুলি আসে You আপনি নামক একটি ফাংশন তৈরি করতে পারেন createToolbarএবং createMainএটি অ্যাপ্লিকেশন নির্মাণকারীর প্রয়োজনীয়তা পূরণ করে (যথা এই ফাংশনগুলির উপস্থিতি রয়েছে), এগুলি বাস্তবে বাস্তবায়ন না করেই। এই ফাংশনগুলি স্টাবগুলি:

def createToolbar():
    pass

def createMain():
    pass

এই জায়গাগুলির জায়গায় আপনি টুলবার বা প্রোগ্রামের মূল অংশের বিবরণ নিয়ে চিন্তা না করেই মূল প্রোগ্রাম এবং মেনুবারটি প্রয়োগ করতে শুরু করতে পারেন। অবশেষে আপনি সরঞ্জামদণ্ডে চলে যাবেন, এবং স্টাবটিকে প্রকৃত ফাংশন দিয়ে প্রতিস্থাপন করবেন। এবং অবশেষে, আপনি স্টাবটি সরিয়ে ফেলবেন createMainএবং এটি একটি বাস্তব বাস্তবায়ন দেবেন।

মনে রাখবেন যে স্টাবগুলি অগত্যা কিছু করতে হবে না। এই স্টাবগুলি উদাহরণস্বরূপ, অ্যাপ কন্সট্রাক্টর যে ফাঁকা কনটেইনার উইজেট তৈরি করতে পারে তা তৈরি করতে পারে। মুল বক্তব্যটি হ'ল, আপনি ডামি ফাংশন বা অবজেক্ট তৈরি করেন যা আপনার অন্যান্য কোডটি বিকাশকালে চালানোর জন্য যথেষ্ট কাজ করে। আপনার আবেদন শেষ না হওয়া পর্যন্ত সময়ের সাথে সাথে আপনি স্টাবগুলি একের পর এক প্রতিস্থাপন করুন।


2

"টপ ডাউন" প্রোগ্রামিংয়ে একটি "স্টাব" ব্যবহৃত হয়। আপনি যখন আপনার অ্যাপ্লিকেশনটি জেনারেল থেকে নির্দিষ্ট করে তৈরি করছেন তখনই। এটি করতে গিয়ে, আপনি যে নির্দিষ্ট অ্যাপ্লিকেশনগুলি তৈরির সময় পান নি সে জন্য আপনি "স্টাবস" "স্থানধারক" হিসাবে ব্যবহার করবেন। তারা প্রায়শই ডামি বা এলোমেলো মানগুলির মতো জিনিসগুলি প্রোগ্রামের আরও সাধারণ অংশে ফিরিয়ে দেয়। ঠিক আছে, প্রোগ্রামটির আরও "সিনিয়র" অংশটি তৈরি করতে স্টাবটি একটি মান যথেষ্ট পরিমাণে খাওয়ায়। যতক্ষণ না স্টাবের সত্যিকারের গণনা বা মান দিয়ে এটি প্রতিস্থাপন বা লাগানো হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.