আইডেম্পোটেন্ট অপারেশন কী?


উত্তর:


963

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

গণিতে, একটি আদর্শবান অপারেশন হ'ল যেখানে f (f (x)) = f (x) । উদাহরণস্বরূপ, abs()ফাংশনটি আদর্শবান কারণ abs(abs(x)) = abs(x)সকলের জন্য x

এই সামান্য নির্ভরশীল বিবেচনায় যে মিলন করা যায় এক্স গাণিতিক সংজ্ঞা মধ্যে একটি বস্তুর রাজ্যের প্রতিনিধিত্ব করে আর একটি অপারেশন যে যে বস্তুর পরিবর্তন ঘটান পারে। উদাহরণস্বরূপ, পাইথনset এবং এর discardপদ্ধতিটি বিবেচনা করুন । discardপদ্ধতি একটি সেট থেকে একটি উপাদান সরিয়ে ফেলা হবে, এবং যদি উপাদান বিদ্যমান নেই কিছুই করে না। তাই:

my_set.discard(x)

দু'বার একই অপারেশন করার মতো একই প্রভাব রয়েছে:

my_set.discard(x)
my_set.discard(x)

আইডেম্পোটেন্ট অপারেশনগুলি প্রায়শই নেটওয়ার্ক প্রোটোকলগুলির ডিজাইনে ব্যবহৃত হয়, যেখানে কোনও অপারেশন করার অনুরোধটি কমপক্ষে একবার হওয়ার গ্যারান্টিযুক্ত, তবে এটি একাধিকবার ঘটতেও পারে। যদি অপারেশনটি আদর্শবান হয় তবে দুই বা ততোধিক বার অপারেশন করার কোনও ক্ষতি নেই।

আরও তথ্যের জন্য আদর্শের উপর উইকিপিডিয়া নিবন্ধটি দেখুন ।


উপরের উত্তরে এর আগে কিছু ভুল এবং বিভ্রান্তিমূলক উদাহরণ ছিল। এপ্রিল 2014 এর আগে লিখিত নীচে দেওয়া মন্তব্যগুলি একটি পুরানো সংশোধন উল্লেখ করে।


6
উদাহরণ: যেহেতু উপরের উত্তরে বলা Idempotent operations are often used in the design of network protocolsহয়েছে যে এখানে একটি সম্পর্কিত উদাহরণ রয়েছে ** জিইটি সার্ভারে কিছু পরিবর্তন করার কথা মনে করা হয় না, তাই জিইটি হ'ল আদর্শবান। এইচটিটিপি / সার্লেট প্রসঙ্গে, এর অর্থ হ'ল একই অনুরোধটি কোনও নেতিবাচক পরিণতি ছাড়াই দু'বার করা যেতে পারে। ** পোস্ট আদর্শবান নয়।
কেএনইউ

1
"স্টেটলেস" কি "আইডেম্পোটেন্ট" এর সমার্থক?
মাইকেল ওসোফস্কি

2
@ মিশেল ওসোফস্কি: না, setউত্তরের পাইথনের উদাহরণে সেট সামগ্রীর স্পষ্টরূপে রাষ্ট্র রয়েছে এবং কিছু আইডেমপ্রোটেন্ট অপারেশন যেমন অফার রয়েছে discard
গ্রেগ হিউগিল

1
@MichaelOsofsky, discardএছাড়াও ফেরত মান রাষ্ট্র encompassing দ্বারা স্টেট-লেস ভাবে বাস্তবায়িত করা যাবে না: discard([my_set, x]) = [my_new_set, x]। সুতরাং আপনি করতে পারেন discard(discard([my_set, x]))। মনে রাখবেন যে, [my_new_set, x]হয় শুধু একটা যুক্তি ও তার প্রকার 2-tuple হয়।
প্যাসেরিয়ার

2
@ গ্রীন নৈর্ব্যক্তিকতার প্রসঙ্গে একই প্রভাব শব্দটি ব্যবহার করার সময় , এর মানে হল যে ফলাফলটি একই, ক্রিয়া নয় । কলিং discard(x)সেট আর উপস্থিত থাকবে: একটি দ্বিতীয় সময় এটি আহ্বান প্রথমবার হিসাবে একই প্রভাব ফেলবে xগণনা আদর্শিকতা একটি সিস্টেমের দৃ ust়তা সম্পর্কে। যেহেতু জিনিসগুলি ব্যর্থ হতে পারে (যেমন নেটওয়ার্ক আউটেজ), যখন কোনও ব্যর্থতা সনাক্ত হয়, আপনি কীভাবে পুনরুদ্ধার করবেন? সবচেয়ে সহজ পুনরুদ্ধার হ'ল এটি আবার করা, তবে এটি কেবল তখনই কাজ করে যদি এটি আবার করা আদর্শবান হয়। যেমন discard(x)আদর্শবান, তবে pop()তা নয়। এটি সবই ত্রুটি পুনরুদ্ধারের বিষয়ে।
Andreas

138

একটি আদর্শশালী অপারেশনটি একটি নির্বিচার সংখ্যক বার পুনরাবৃত্তি করা যেতে পারে এবং ফলাফলটি একই রকম হয় যে এটি কেবল একবার করা হয়েছিল had পাটিগণিতের ক্ষেত্রে কোনও সংখ্যায় শূন্য যুক্ত করা আদর্শবান।

"RESTful" ওয়েব পরিষেবাদিগুলির প্রসঙ্গে আইডেম্পোটেন্স অনেক বিষয়ে কথা হয়। প্রোগ্রামগুলি ওয়েব সামগ্রীতে অ্যাক্সেস দেওয়ার জন্য REST সর্বাধিক উপায়ে এইচটিটিপি উপার্জনের চেষ্টা করে এবং সাধারণত এসওএপি-ভিত্তিক ওয়েব পরিষেবাদির বিপরীতে সেট করা থাকে, যা এইচটিটিপি অনুরোধ এবং প্রতিক্রিয়াগুলির মধ্যে দূরবর্তী প্রক্রিয়া কল স্টাইল পরিষেবাদি কেবল সুড়ঙ্গ করে।

আরআরইএসটি একটি ওয়েব অ্যাপ্লিকেশনটিকে "রিসোর্সগুলি" (কোনও টুইটার ব্যবহারকারী বা কোনও ফ্লিকার চিত্রের মতো) হিসাবে সংগঠিত করে এবং তারপরে এই সংস্থানগুলি তৈরি করতে, আপডেট করতে, পড়তে, এবং মুছতে পোষ্ট, পুট, জিইটি এবং ডিলেট এর HTTP ক্রিয়া ব্যবহার করে।

আদর্শের মধ্যে বিশ্রামে গুরুত্বপূর্ণ ভূমিকা পালন করে। যদি আপনি কোনও রেস্ট স্টোরের উপস্থাপনা পান (যেমন, ফ্লিকারের একটি জেপিগ ছবিটি পান) এবং অপারেশন ব্যর্থ হয়, অপারেশন সফল না হওয়া পর্যন্ত আপনি কেবল জিইটি পুনরাবৃত্তি করতে পারেন। ওয়েব সার্ভিসে, ছবিটি কতবার আয় করেছে তা বিবেচ্য নয়। তেমনিভাবে, আপনি যদি নিজের টুইটার অ্যাকাউন্টের তথ্য আপডেট করতে কোনও রেস্টস্টুল ওয়েব পরিষেবা ব্যবহার করেন, আপনি ওয়েব পরিষেবা থেকে নিশ্চিতকরণ পেতে নতুন তথ্যটিকে যতবার সময় নেবে ততবার বার করতে পারেন। এটি হাজার বার পুট-ইন করা একবার এটি পুট-ইন করার মতো। একইভাবে হাজারবার রিসোর্স রিসোর্স ডিলিট করে দেওয়া একবারে মুছে ফেলার মতোই। Idempotence এইভাবে যোগাযোগের ত্রুটির প্রতিরোধী একটি ওয়েব পরিষেবা নির্মান করা অনেক সহজ করে তোলে।

আরও পঠন: রিচার্ডসন এবং রুবির রাইসফুল ওয়েব সার্ভিসেস , (আদর্শশক্তি 103-104 পৃষ্ঠায় আলোচনা করা হয়েছে), এবং রয় ফিল্ডিংয়ের পিএইচডি গবেষণাগুলি আরইএসটি-র উপর রয়েছে । ফিল্ডিং এইচটিটিপি ১.১, আরএফসি -২16১16 এর অন্যতম লেখক, যা বিভাগ ৯.১.২-তে আদর্শবান্ধবতার কথা বলে


পরিষ্কার এবং সোজা। তবু এটি আদর্শবাদীর কেবল একটি ব্যাখ্যা।
পেসারিয়ার 21

10
"আইডেম্পোটেন্স" একটি ভারী ওভারলোড হওয়া শব্দ কারণ এটি দুর্দান্তভাবে শোনা যায় এবং এসসিপিডিয়ানিয়ান চেকটি পাস করার জন্য পর্যাপ্ত অক্ষর রয়েছে। যদি বেঞ্জামিন পিয়ারস একটি সহজ শব্দ শোনার শব্দটি বেছে নিয়েছিল, তবে আমাদের আজও এই প্রশ্নটি থাকত না।
পেসারিয়ার

2
এটি কীভাবে বুঝতে হবে: একইভাবে হাজার বার একটি রিসোর্স রিসোলেট ডিলিট করে দেওয়া একবারে মুছে ফেলার মতো ? আপনি যদি রিসোর্সটি ইতিমধ্যে মুছে ফেলা হয় তবে তা আবার মুছতে পারবেন না।
সবুজ

1
@ গ্রীন কিন্তু আপনি এটি প্রথমবার মুছবেন না । আপনি একটি মোছার অনুরোধ পাঠান । গুরুত্বপূর্ণ বিষয়টি হ'ল আপনি নিজের পছন্দমতো অনুরোধ প্রেরণ করতে পারেন।
কালেথ

1
@ জিমফেরানস আমি ভেবেছিলাম যে কার্যকারিতা-সম্পর্কিত কিছু কারণ থাকতে পারে (HTTP নিজেই অন্তর্নির্মিত) কেন PUST চিন্তিত না করে কেন PUT বিরক্ত হতে পারে while এখন দেখা যাচ্ছে যে আমাদের কেবল এইচটিটিপি মানগুলির সাথে সামঞ্জস্য করা প্রয়োজন এবং আচরণটি সার্ভারটি কীভাবে বাস্তবায়িত হয় তার উপর ভিত্তি করে
মঙ্গল

109

আপনি অপারেশনটিকে যতবার কল করুন না কেন ফলাফল একই হবে।


8
আমি শুনেছি আইডেম্পোটেন্টকে নীচের দুটি বা উভয় হিসাবে সংজ্ঞায়িত করেছি: 1) প্রদত্ত ইনপুটগুলির সেটের জন্য এটি সর্বদা একই আউটপুট ফেরত আসবে। 2) কোন পার্শ্ব প্রতিক্রিয়া উত্পাদন করে না। আমার প্রশ্ন হ'ল, যদি কোনও ফাংশন # 1 এর সাথে সামঞ্জস্য হয় তবে # 2 নয়, কারণ এটি একটি পার্শ্ব প্রতিক্রিয়ার ফলাফল হিসাবে গণনার সাথে সম্পর্কিত নয় (উদাহরণস্বরূপ কোনও ডেটা স্টোরের অনুরোধে লগ করে), এটি কি এখনও আদর্শবান হিসাবে বিবেচিত হয়?
কীথ বনেট

12
কোনও অপারেশন কল করার ফলাফলটিতে অবশ্যই সিস্টেমের অবস্থা অন্তর্ভুক্ত করা উচিত, সুতরাং যদি অপারেশনটির কিছু সংশ্লেষিত পার্শ্ব প্রতিক্রিয়া থাকে তবে এটি আদর্শবান নয়; যাইহোক, যদি পার্শ্ব প্রতিক্রিয়াটি একই অবস্থায় সিস্টেমটিকে ছেড়ে যায় তবে অপারেশনটিকে যতবার বলা হয়, তবুও এটি আদর্শবান হতে পারে।
রবার্ট

4
সংক্ষিপ্ত এবং মিষ্টি, আমি এই জাতীয় উত্তর পছন্দ করি। আমাকে কেন এই শব্দটি ক্রমাগত সন্ধান করতে হবে তা নিশ্চিত নয়, এটি কেবল আমার সাথে থাকে না।
পার্সার

1
@ কীথবেনেট, দ্বিতীয় সংজ্ঞাটি ভুল। "পার্শ্ব প্রতিক্রিয়া" এর অর্থ আদর্শবান নয় ot আইডেম্পোটেন্ট ফাংশনগুলির পার্শ্ব প্রতিক্রিয়া হতে পারে। যেমন মাইএসকিউএল এর truncateএবং delete
পেসারিয়ার 23

ফলাফলটি একই হবে (যা সিস্টেমের অবস্থা) তবে প্রতিক্রিয়া ভিন্ন হতে পারে (অর্থাত্, কোনও আরএসটি সার্ভিসে HTTP স্থিতি কোড)।
জি স্টিগার্ট

50

আইডেম্পোটেন্স মানে হ'ল একবার কোনও অপারেশন প্রয়োগ করা বা একাধিকবার প্রয়োগ করার একই প্রভাব রয়েছে।

উদাহরণ:

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

জন্য বিশুদ্ধ ফাংশন (কোন পার্শ্ব প্রতিক্রিয়া সঙ্গে ফাংশন) তাহলে idempotency যে চ (x) = চ (চ (x) এর) = চ (চ (চ (x) এর)) = চ (চ (চ (চ (x) এর)) বোঝা ) = ...... এক্স এর সমস্ত মানের জন্য

পার্শ্ব প্রতিক্রিয়াযুক্ত ক্রিয়াকলাপগুলির জন্য , আদর্শগতভাবে আরও বোঝায় যে প্রথম প্রয়োগের পরে কোনও অতিরিক্ত পার্শ্ব প্রতিক্রিয়া হবে না। আপনি যদি চান তবে এই ফাংশনটির জন্য বিশ্বের রাষ্ট্রটিকে অতিরিক্ত "লুকানো" পরামিতি হিসাবে বিবেচনা করতে পারেন।

নোট করুন যে এমন একটি পৃথিবীতে যেখানে আপনার একযোগে ক্রিয়াকলাপ চলছে, আপনি দেখতে পাবেন যে আপনি যে অপারেশনগুলি আদর্শিক শক্তি বলে মনে করেছিলেন সেই কাজগুলি এতটা বন্ধ হয়ে গেছে (উদাহরণস্বরূপ, অন্য কোনও থ্রেড উপরের উদাহরণে বুলিয়ান পতাকার মান আনসেট করতে পারে)। মূলত যখনই আপনার একচেটিয়া এবং পরিবর্তনীয় স্থিতি থাকে, আপনাকে আদর্শগত সম্পর্কে আরও বেশি যত্ন সহকারে চিন্তা করতে হবে।

শক্তিশালী সিস্টেম তৈরিতে আইডেম্পোটেন্সি প্রায়শই একটি দরকারী সম্পত্তি। উদাহরণস্বরূপ, যদি কোনও ঝুঁকি থাকে যে আপনি কোনও তৃতীয় পক্ষের সদৃশ বার্তা গ্রহণ করতে পারেন, তবে বার্তা হ্যান্ডলারটি আদর্শবান অপারেশন হিসাবে কাজ করতে সহায়তা করবে যাতে বার্তাটির প্রভাব কেবল একবার ঘটে।


1
যদি খাঁটি ফাংশনগুলির জন্য f(x) = f(f(x)), আপনার অর্থ কি এটি f(x){return x+1;}খাঁটি ফাংশন নয়? কারণ f(x) != f(f(x)): f(1)3 দেয় যখন f(2)3 দেয়
প্যাসেরিয়ার

1
@ পেসিয়ার নং, @ মিমেকেরা বলছেন খাঁটি এবং আদর্শহীন বোঝা f(x) = f(f(x))। কিন্তু @ গ্রেগ হিউগিল যেমন উল্লেখ করেছেন, এই সংজ্ঞাটি বোঝার জন্য আপনাকে xএকটি অবজেক্ট fহিসাবে এবং একটি ক্রিয়া হিসাবে বিবেচনা করতে হবে যা বস্তুর অবস্থাকে fপরিবর্তিত করে (যেমন: আউটপুটটি একটি রূপান্তরিত হয় x)।
জাস্টিন জে স্টার্ক

24

আপনি যদি একই পরামিতিগুলিতে পাস করে থাকেন তবে একাধিকবার কল করলেও একটি আদর্শশালী অপারেশন একই অবস্থায় ফলাফল তৈরি করে।


1
একেবারেই যৌক্তিক মনে হয় না। stackoverflow.com/questions/1077412/…
সবুজ

2
আমি মনে করি আপনি বিভ্রান্তিমূলক আদর্শবাদী এবং সংবিধানবাদী হতে পারেন
সানক্যাট 2000

16

কেবল একটি বাস্তব ব্যবহারের কেস ছুঁড়ে দিতে চেয়েছিলেন যা আদর্শবোধকে দেখায়। জাভাস্ক্রিপ্টে, বলুন যে আপনি একগুচ্ছ মডেল ক্লাস সংজ্ঞায়িত করছেন (এমভিসি মডেল হিসাবে)। এটি যেভাবে প্রায়শই প্রয়োগ করা হয় তা কার্যকরীভাবে এর মতো (মূল উদাহরণ) এর সমান:

function model(name) {
  function Model() {
    this.name = name;
  }

  return Model;
}

তারপরে আপনি এর মতো নতুন ক্লাস সংজ্ঞায়িত করতে পারেন:

var User = model('user');
var Article = model('article');

আপনি যদি কোডের অন্য কোথাও থেকে Userক্লাসটি পেতে চেষ্টা করেন model('user')তবে তা ব্যর্থ হবে:

var User = model('user');
// ... then somewhere else in the code (in a different scope)
var User = model('user');

এই দুটি Userকনস্ট্রাক্টর আলাদা হবে। এটাই,

model('user') !== model('user');

এটিকে আদর্শবান করে তোলার জন্য , আপনি কেবল এইরকম কিছু ধরণের ক্যাশেিং ব্যবস্থা যুক্ত করবেন:

var collection = {};

function model(name) {
  if (collection[name])
    return collection[name];

  function Model() {
    this.name = name;
  }

  collection[name] = Model;
  return Model;
}

ক্যাচিং যুক্ত করে, যতবার আপনি model('user')এটি করেছেন একই জিনিস হবে এবং তাই এটি আদর্শবান। তাই:

model('user') === model('user');

10

আইডিম্পোটেন্ট অপারেশন হ'ল একটি অপারেশন, ক্রিয়া বা অনুরোধ যা প্রাথমিক প্রয়োগের বাইরেও ফলাফল, অর্থাৎ সিস্টেমের অবস্থা পরিবর্তন না করে একাধিকবার প্রয়োগ করা যেতে পারে।

উদাহরণ (ওয়েব অ্যাপ্লিকেশন বিষয়বস্তু):

আইডেম্পোটেন্ট: একাধিক অনুরূপ অনুরোধ করা একক অনুরোধ করার অনুরূপ প্রভাব ফেলে। একটি ইমেল মেসেজিং সিস্টেমে একটি বার্তা ডেটাবেজে খোলা হয় এবং "খোলা" হিসাবে চিহ্নিত করা হয়। কেউ বার বার বার বার খুলতে পারে তবে এই পুনরাবৃত্তির ক্রিয়া কেবল সেই বার্তাটির "খোলা" অবস্থায় থাকবে। এটি একটি আদর্শশালী অপারেশন। প্রথমবার যখন কোনও তথ্য ব্যবহার করে কোনও সংস্থার আপডেট দেয় যা সংস্থার (সিস্টেমের অবস্থা) সাথে মেলে না, সংস্থানটি আপডেট হওয়ার সাথে সাথে সিস্টেমের অবস্থা পরিবর্তিত হবে। যদি কোনও রিসোর্সে একই আপডেট পুনরায় পুট করে থাকে তবে আপডেটের তথ্যগুলি প্রতিটি পুট-এর উপরে সিস্টেমের মধ্যে থাকা তথ্যের সাথে মেলে এবং সিস্টেমের অবস্থাতে কোনও পরিবর্তন ঘটবে না। একই তথ্যের সাথে পুনরাবৃত্তি করা পুটগুলি আদর্শবান:

নন-আইডেম্পোটেন্ট: যদি কোনও ক্রিয়াকলাপ সর্বদা রাষ্ট্রের পরিবর্তনের কারণ হয়ে দাঁড়ায়, যেমন বারবার একই ব্যবহারকারীকে একই বার্তা পোস্ট করে, ফলে প্রতিবার একটি নতুন বার্তা প্রেরণ করা হয় এবং ডাটাবেসে সঞ্চিত থাকে, আমরা বলি যে অপারেশনটি নন-আইডেম্পোটেন্ট।

অবাধ্যতা: যদি কোনও অপারেশনের কোনও পার্শ্ব প্রতিক্রিয়া না থাকে, যেমন কোনও ডাটাবেজে কোনও পরিবর্তন ছাড়াই কোনও ওয়েব পৃষ্ঠায় বিশুদ্ধরূপে তথ্য প্রদর্শন করা (অন্য কথায় আপনি কেবল ডাটাবেসটি পড়ছেন), আমরা বলি অপারেশনটি নালিশ OT সমস্ত জিইটিগুলি শূন্যপদ হওয়া উচিত।

সিস্টেমের অবস্থার বিষয়ে কথা বলার সময় আমরা অবশ্যই লগিং এবং ডায়াগনস্টিক্সের মতো আশঙ্কাজনক নিরীহ এবং অনিবার্য প্রভাবগুলি উপেক্ষা করছি।


9

আইডেম্পোটেন্ট অপারেশনস: একাধিকবার কার্যকর করা হলে অপারেশনগুলির কোনও পার্শ্ব-প্রতিক্রিয়া নেই।
উদাহরণ : একটি অপারেশন যা কোনও ডেটা রিসোর্স থেকে মানগুলি পুনরুদ্ধার করে এবং বলে যে এটি

অ-আইডেম্পোটেন্ট অপারেশনগুলি মুদ্রণ করে : একাধিকবার মৃত্যুদন্ড কার্যকর করা হলে এমন অপারেশন যা কিছু ক্ষতি করতে পারে। (যেমন তারা কিছু মান বা রাষ্ট্র পরিবর্তন করে)
উদাহরণ: একটি অ্যাকাউন্ট যা একটি ব্যাংক অ্যাকাউন্ট থেকে প্রত্যাহার করে


3
আসলে ভুল উত্তর! আইডেম্পোটেন্ট অপারেশনের জন্য "কোনও পার্শ্ব প্রতিক্রিয়া নেই" বলা ঠিক নয় not আদর্শহীন অপারেশনগুলির জন্য "কিছু ক্ষতির কারণ" বলা একটি বিভ্রান্তিকর উত্তর।
সাইদ মোহতাশাম

9

বেশ বিস্তারিত এবং প্রযুক্তিগত উত্তর। কেবল একটি সাধারণ সংজ্ঞা যুক্ত করা হচ্ছে।

আইডেম্পোটেন্ট = পুনরায় চালিত

উদাহরণস্বরূপ, Createএকবারে একাধিকবার কার্যকর হলে ত্রুটি ছাড়াই চালানোর গ্যারান্টিটি স্বয়ংক্রিয়ভাবে পরিচালিত হয় না। তবে যদি কোনও অপারেশন হয় CreateOrUpdateতবে এটি পুনরায় চালিত হওয়ার (আইডেম্পোটেন্সি) বলে।


3
এটি একটি প্রতারণামূলক সংজ্ঞা। পুনরায় চালনযোগ্যতা আদর্শবান হওয়ার গ্যারান্টি দেয় না। একটি অপারেশন পুনরায় চালানো যায় এবং প্রতিটি রান এ এটি ফলাফলের অতিরিক্ত প্রভাব যুক্ত করতে পারে তাই এটি আদর্শবান হবে না।
সাইদ মোহতাশাম

7

একটি সেট উপর একটি আদর্শশালী অপারেশন তার সদস্যদের এক বা একাধিকবার প্রয়োগ করার সময় অপরিবর্তিত রাখে।

এটি নিখুঁত (x) এর মতো একটি অবিচ্ছিন্ন ক্রিয়াকলাপ হতে পারে যেখানে x ধনাত্মক পূর্ণসংখ্যার সংস্থার সাথে সম্পর্কিত। এখানে পরম (পরম (এক্স)) = এক্স।

এটি একটি বাইনারি অপারেশন হতে পারে যেমন একটি সেট এর ইউনিয়নের সাথে সর্বদা একই সেটটি ফিরে আসে।

চিয়ার্স


আদর্শ (একটি) আদর্শ অপারেশন হ'ল f (f (x)) = f (x)। "এর সদস্যদের অপরিবর্তিত রেখে দেয়" সঠিক উত্তর নয়।
সা Saeedদ মোহতাশাম

7

এটি এমন কোনও ক্রিয়াকলাপ যা প্রতি নবম ফলাফলের ফলে 1 ম ফলাফলের মানের সাথে মিলে একটি আউটপুট আসবে। উদাহরণস্বরূপ -1 এর পরম মান হ'ল 1. -1 এর পরম মানটির পরম মান 1। -1 এর পরম মানের নিরঙ্কুশ মানটির পরম মান 1 এবং আরও অনেক কিছু।

আরও দেখুন: পুনরাবৃত্তি ব্যবহার করার জন্য সত্যিই নির্বোধ সময় কখন হবে?


1
10 বছর পরেও এটি মূর্খ উত্তর। +1
স্নার

2

আইডেমপ্রোটেন্ট অপারেশন বোঝার একটি ভাল উদাহরণ হতে পারে দূরবর্তী কী দিয়ে কোনও গাড়ি লক করা।

log(Car.state) // unlocked

Remote.lock();
log(Car.state) // locked

Remote.lock();
Remote.lock();
Remote.lock();
log(Car.state) // locked

lockএকটি আদর্শবান অপারেশন। প্রতিবার চালানোর সময় কিছুটা পার্শ্ব প্রতিক্রিয়া থাকলেও lock, জ্বলজ্বলে মত, গাড়িটি এখনও একই লক অবস্থায় রয়েছে, আপনি যতবার লক অপারেশন চালান না কেন।


1

আমার 5 সি: ইন্টিগ্রেশন এবং নেটওয়ার্কিংয়ে আইডেম্পোটেন্সি খুব গুরুত্বপূর্ণ। বাস্তব-জীবনের বেশ কয়েকটি উদাহরণ: কল্পনা করুন, আমরা লক্ষ্য সিস্টেমে ডেটা সরবরাহ করি। বার্তাগুলির ক্রম দ্বারা ডেটা সরবরাহ করা। 1. যদি চ্যানেলটিতে ক্রমটি মিশ্রিত হয় তবে কী হবে? (নেটওয়ার্ক প্যাকেজ সর্বদা যেমন করে :))। লক্ষ্য ব্যবস্থা যদি আদর্শবান হয় তবে ফলাফলটি আলাদা হবে না। যদি টার্গেট সিস্টেমটি ক্রমটিতে সঠিক ক্রমের উপর নির্ভর করে, আমাদের লক্ষ্য স্থানে গবেষক প্রয়োগ করতে হবে, যা সঠিক ক্রমটি পুনরুদ্ধার করবে। ২. মেসেজের নকল থাকলে কী হবে? যদি টার্গেট সিস্টেমের চ্যানেল সময়মত স্বীকৃতি না দেয় তবে উত্স সিস্টেম (বা নিজেই চ্যানেল) বার্তাটির অন্য একটি অনুলিপি প্রেরণ করে। ফলস্বরূপ আমরা টার্গেট সিস্টেমের পাশে নকল বার্তা রাখতে পারি। যদি লক্ষ্য ব্যবস্থাটি আদর্শবান, এটি এর যত্ন নেয় এবং ফলাফল আলাদা হবে না। টার্গেট সিস্টেমটি আদর্শবান না হলে আমাদের চ্যানেলের টার্গেট সিস্টেমের দিকে ডুপ্লিকেটরটি প্রয়োগ করতে হবে।


অন্য কোনও অনুরোধগুলি (বা সিস্টেমের অবস্থার পরিবর্তন করে এমন কিছু ঘটছে) থেকে বিচ্ছিন্নভাবে প্রেরিত একক অনুরোধগুলির আদর্শ হ'ল, পুনরায় ক্রম অনুরোধগুলির অনুরূপ নয়। একটি HTTP পুট অনুরোধ এবং একটি HTTP মোছার অনুরোধ উভয়ই স্বতন্ত্রভাবে আদর্শবান হওয়া উচিত - তবে এর অর্থ এই নয় যে একই ইউআরএলগুলিতে পুট এবং ডিলিট কল করার আদেশটি কোনও ব্যাপার নয়, কারণ পুট অনুরোধের পার্শ্ব প্রতিক্রিয়া হতে পারে!
রবিন গ্রিন

1

সংক্ষেপে , আইডেম্পোটেন্ট অপারেশনগুলির অর্থ হ'ল আপনি আদর্শবান্ধব ক্রিয়াকলাপগুলি যতবার পরিচালনা করেন না কেন অপারেশনের ফলে বিভিন্ন ফলাফল হয় না।

উদাহরণস্বরূপ, এইচটিটিপি-র স্পেকের সংজ্ঞা অনুসারে আদর্শ আদর্শ GET, HEAD, PUT, and DELETEকার্যক্রম রয়েছে; তবে POST and PATCHহয় না। যে কারণে কখনও কখনও POSTপ্রতিস্থাপন করা হয় PUT


-4

পুনরায় চেষ্টা করুন-নিরাপদ।

কম্পিউটার বিজ্ঞানে এটির অর্থ বোঝার সহজতম উপায়।


1
পুনরায় চেষ্টা এমন কিছু বোঝায় যা প্রথম বা পূর্ববর্তী সময় ব্যর্থ হয়েছিল। বেশ একই না.
লাসে ভি কার্লসেন

কে আমার প্রশ্ন সম্পাদনা করেছে এবং আমাকে একটি নিচে ভোট পেয়েছে? এটা কি আমি পোস্ট করা টেক্সট না ??
টেকনোপল

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