JavaScript యొక్క "సేఫ్ అసైన్‌మెంట్ ఆపరేటర్" ఉందా లేదా ఇది ప్రోగ్రామింగ్ ఫిషింగ్ కాదా?

JavaScript యొక్క సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ ఉందా లేదా ఇది ప్రోగ్రామింగ్ ఫిషింగ్ కాదా?
JavaScript యొక్క సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ ఉందా లేదా ఇది ప్రోగ్రామింగ్ ఫిషింగ్ కాదా?

జావాస్క్రిప్ట్ యొక్క సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ యొక్క ఎనిగ్మా

ప్రోగ్రామింగ్ ఫోరమ్‌లపై ఇటీవలి చర్చల్లో, ఒక రహస్యమైన భావన అంటారు "సేఫ్ అసైన్‌మెంట్ ఆపరేటర్" సంచలనం సృష్టిస్తోంది. డెవలపర్‌లు దాని వినియోగాన్ని సూచించే కోడ్ స్నిప్పెట్‌లను ఎదుర్కొంటున్నారు, కానీ అధికారిక మూలాల నుండి డాక్యుమెంటేషన్ అందుబాటులో లేదు. ఇది JavaScript సంఘంలో ఈ ఆపరేటర్ యొక్క చట్టబద్ధత గురించి ప్రశ్నలను లేవనెత్తింది.

అటువంటి ఉదాహరణలో సింటాక్స్‌తో ఆపరేటర్‌ని ఉపయోగించి అసమకాలిక ఫంక్షన్ ఉంటుంది ?= లోపం నిర్వహణ సమయంలో, ఇది డెవలపర్‌లలో గందరగోళానికి దారితీసింది. ఇది కోడ్ రీడబిలిటీని సులభతరం చేస్తుందని కొందరు పేర్కొన్నప్పటికీ, విశ్వసనీయ సూచనలలో ఈ ఆపరేటర్ యొక్క జాడ లేదు MDN వెబ్ డాక్స్ లేదా అధికారిక ECMAScript ప్రతిపాదనలు. ఇది ప్రయోగాత్మక లక్షణమా లేదా కల్పితమా అని చాలా మంది ఆశ్చర్యానికి గురిచేసింది.

డెవలపర్లు దీన్ని పరీక్షించడానికి ప్రయత్నిస్తున్నారు బ్రౌజర్ కన్సోల్‌లు లోపాలను నివేదించారు, గందరగోళానికి మరింత ఆజ్యం పోశారు. విశ్వసనీయ ప్రోగ్రామింగ్ మూలాల నుండి ఎటువంటి ధృవీకరణ లేకపోవడం చాలా మంది ప్రోగ్రామర్‌లను అయోమయంలో పడేస్తుంది. ఫలితంగా, కాన్సెప్ట్ తప్పుగా అన్వయించబడిందా లేదా అది జావాస్క్రిప్ట్ అభివృద్ధి యొక్క ఊహాజనిత దశకు చెందినదా అనేది అస్పష్టంగా ఉంది.

ఈ వ్యాసం యొక్క మూలాల్లోకి ప్రవేశిస్తుంది సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ మరియు దాని ఉనికి వెనుక ఉన్న సత్యాన్ని వెలికితీసేందుకు ప్రయత్నిస్తుంది. ఇది రాడార్ కిందకి జారిపోయిన నిజమైన లక్షణమా లేదా మీడియం వంటి ఆన్‌లైన్ ప్లాట్‌ఫారమ్‌ల ద్వారా ప్రచారం చేయబడిన మరొక పురాణమా?

ఆదేశం ఉపయోగం యొక్క ఉదాహరణ
await ఒక వరకు async ఫంక్షన్ యొక్క అమలును పాజ్ చేయడానికి ఉపయోగించబడుతుంది ప్రామిస్ పరిష్కరిస్తుంది లేదా తిరస్కరిస్తుంది. అసమకాలిక కార్యకలాపాల యొక్క మృదువైన నిర్వహణను నిర్ధారిస్తుంది.
try...catch లోపాలు సంభవించే కోడ్ బ్లాక్‌లను చుట్టుముడుతుంది, ఏదైనా మినహాయింపులను క్యాచ్ చేస్తుంది మరియు ప్రోగ్రామ్ క్రాష్ కాకుండా నిరోధిస్తుంది. నెట్‌వర్క్ లోపాలు మరియు API వైఫల్యాలను నిర్వహించడానికి అవసరం.
fetch() HTTP అభ్యర్థనలను చేయడానికి ఉపయోగించే వెబ్ API ఫంక్షన్. ఇది తిరిగి వస్తుంది a ప్రామిస్ API ఎండ్‌పాయింట్ నుండి డేటాను తిరిగి పొందేందుకు కీలకమైన ప్రతిస్పందన ఆబ్జెక్ట్‌ను పరిష్కరిస్తుంది.
Response.json() HTTP ప్రతిస్పందన యొక్క శరీరాన్ని JSONగా అన్వయిస్తుంది, తిరిగి a ప్రామిస్. నిర్మాణాత్మక డేటాను కలిగి ఉన్న API ప్రతిస్పందనలను నిర్వహించేటప్పుడు ఇది ప్రత్యేకంగా ఉపయోగపడుతుంది.
instanceof ఆబ్జెక్ట్ అనేది లోపం వంటి నిర్దిష్ట కన్స్ట్రక్టర్ యొక్క ఉదాహరణ కాదా అని తనిఖీ చేస్తుంది. ఈ సందర్భంలో, ఇది పరీక్ష దశలో లోపాలను ధృవీకరించడానికి ఉపయోగించబడుతుంది.
assert.strictEqual() Node.js అసెర్ట్ మాడ్యూల్ నుండి ఒక ఫంక్షన్. ఇది రెండు విలువలు ఖచ్చితంగా సమానంగా ఉన్నాయని నిర్ధారిస్తుంది, ఫంక్షన్ ఆశించిన విధంగా ప్రవర్తిస్తుందని నిర్ధారించడంలో సహాయపడుతుంది.
assert.ok() ఇచ్చిన విలువ సత్యమైనదని ధృవీకరిస్తుంది. పరీక్షలలో, వైఫల్యం సంభవించినప్పుడు లోపం వస్తువు సరిగ్గా తిరిగి వచ్చిందో లేదో తనిఖీ చేస్తుంది.
setTimeout() నిర్దిష్ట సమయానికి కోడ్ అమలును ఆలస్యం చేయడానికి ఉపయోగించబడుతుంది. ఇక్కడ, ఇది నెట్‌వర్క్ ప్రతిస్పందనలను అనుకరించడం ద్వారా పరీక్ష ప్రయోజనాల కోసం అసమకాలిక కార్యకలాపాలను అనుకరిస్తుంది.
module.exports ఇతర ఫైల్‌లలో పునర్వినియోగం కోసం ఫంక్షన్‌లు లేదా వేరియబుల్‌లను ఎగుమతి చేయడానికి Node.jsలో ఉపయోగించబడుతుంది. ఇది handleAsync వంటి ఫంక్షన్‌లను విడిగా పరీక్షించడానికి అనుమతించడం ద్వారా మాడ్యులారిటీని నిర్ధారిస్తుంది.
console.error() కన్సోల్‌కు లోపాలను లాగ్ చేసే డీబగ్గింగ్ సాధనం. API అభ్యర్థనలు మరియు డేటా పార్సింగ్ దశలలో ప్రోగ్రామ్ అమలును నిలిపివేయకుండా సమస్యలను ట్రాక్ చేయడంలో ఇది సహాయపడుతుంది.

జావాస్క్రిప్ట్‌లో స్క్రిప్ట్‌లను నిర్వహించడంలో లోపం యొక్క ఉపయోగం మరియు ఉద్దేశ్యాన్ని విచ్ఛిన్నం చేయడం

పైన అందించిన స్క్రిప్ట్‌లు అసమకాలిక కార్యకలాపాలను నిర్వహించే భావన చుట్టూ తిరుగుతాయి జావాస్క్రిప్ట్. అసమకాలిక ప్రోగ్రామింగ్ కోడ్ ఇతర కార్యకలాపాలను నిరోధించకుండా డేటాను పొందగలదని లేదా మార్చగలదని నిర్ధారిస్తుంది. మొదటి స్క్రిప్ట్‌లో, మేము ఉపయోగిస్తాము ప్రయత్నించండి...పట్టుకోండి API నుండి వనరులను పొందుతున్నప్పుడు సంభావ్య లోపాలను నిర్వహించడానికి. ఈ నిర్మాణం నెట్‌వర్క్ సమస్యలను పట్టుకోవడం మరియు నివేదించడం సులభం చేస్తుంది, డెవలపర్‌లు మరింత విశ్వసనీయమైన అప్లికేషన్‌లను రూపొందించడంలో సహాయపడతాయి. ది వేచి ఉండండి కీవర్డ్ తదుపరి లైన్ కోడ్ అమలుకు ముందే పొందడం ఆపరేషన్ పూర్తవుతుందని నిర్ధారిస్తుంది, ఇది అమలు యొక్క ప్రవాహంపై మరింత నియంత్రణను ఇస్తుంది.

రెండవ ఉదాహరణ స్క్రిప్ట్ అనే హెల్పర్ ఫంక్షన్‌ని ఉపయోగించి వాగ్దానాలను నిర్వహించే మాడ్యులర్ మార్గాన్ని పరిచయం చేస్తుంది హ్యాండిల్అసింక్. ఈ ఫంక్షన్ ప్రామిస్‌లను ట్రై-క్యాచ్ బ్లాక్‌లో ర్యాప్ చేస్తుంది మరియు ఎర్రర్ లేదా పరిష్కరించబడిన డేటాను కలిగి ఉన్న శ్రేణిని అందిస్తుంది. ఇది ఎర్రర్ మేనేజ్‌మెంట్‌ను సులభతరం చేస్తుంది, ప్రత్యేకించి బహుళ అసమకాలిక కార్యకలాపాలను వరుసగా నిర్వహించాల్సిన సందర్భాలలో. ఈ నమూనాతో, అదే ఫంక్షన్ వివిధ రకాల లోపాలను నిర్వహించగలదు, ఇది కోడ్‌బేస్‌ను మరింత నిర్వహించదగినదిగా మరియు పునర్వినియోగపరచదగినదిగా చేస్తుంది.

పరిష్కారం యొక్క మూడవ భాగంలో, మేము ఎలా ప్రదర్శిస్తాము యూనిట్ పరీక్షలు వివిధ వాతావరణాలలో విధులు సరిగ్గా ప్రవర్తించేలా చూసుకోవడానికి ఉపయోగించవచ్చు. పరీక్షలు వంటి విధులను ఉపయోగిస్తాయి assert.strictEqual() నెట్‌వర్క్ అభ్యర్థన సరైన డేటాను అందించిందని లేదా విఫలమైనప్పుడు ఎర్రర్ ఆబ్జెక్ట్ ఉత్పత్తి చేయబడిందని నిర్ధారించుకోవడం వంటి ఆశించిన ఫలితాలను ధృవీకరించడానికి. ఈ పరీక్షలు విస్తరణకు ముందు సమస్యలను గుర్తించడాన్ని సులభతరం చేస్తాయి, పటిష్టమైన మరియు ఎర్రర్-రహిత కార్యాచరణను నిర్ధారిస్తాయి. అదనంగా, అనుకరణ నెట్‌వర్క్ ప్రతిస్పందనలను ఉపయోగించడం సెట్ టైమౌట్() మరింత విశ్వసనీయమైన పరీక్ష కోసం డెవలపర్‌లు వాస్తవ-ప్రపంచ ప్రవర్తనను అనుకరించడంలో సహాయపడుతుంది.

ప్రతి స్క్రిప్ట్ జావాస్క్రిప్ట్ అభివృద్ధిలో ఆప్టిమైజ్ చేసిన పద్ధతులు మరియు మాడ్యులారిటీ యొక్క ప్రాముఖ్యతను ప్రదర్శించడానికి రూపొందించబడింది. ఎర్రర్ హ్యాండ్లింగ్ కోసం హెల్పర్ ఫంక్షన్ వంటి పునర్వినియోగ భాగాలను సృష్టించడం ద్వారా, కోడ్ విభిన్న వినియోగ సందర్భాలకు మరింత అనుకూలంగా మారుతుంది. అంతేకాకుండా, స్క్రిప్ట్‌లు సరైన లాగింగ్ వంటి ఉత్తమ అభ్యాసాలపై దృష్టి పెడతాయి console.error(), అభివృద్ధి మరియు డీబగ్గింగ్ సమయంలో ఏవైనా సమస్యలు సులభంగా గుర్తించబడతాయని నిర్ధారించడానికి. ఈ ఉదాహరణలలో "సేఫ్ అసైన్‌మెంట్ ఆపరేటర్" అని పిలవబడేది లేకపోవడం ఈ ఆపరేటర్ జావాస్క్రిప్ట్‌లో అధికారిక భాగం కాకపోవచ్చునని సూచిస్తుంది, ఇది అప్లికేషన్‌లను రూపొందించడానికి డాక్యుమెంట్ చేయబడిన, నమ్మదగిన పద్ధతులను ఉపయోగించడం యొక్క ప్రాముఖ్యతను బలపరుస్తుంది.

సురక్షిత అసైన్‌మెంట్ ఆపరేటర్‌ని స్పష్టం చేస్తున్నారా: జావాస్క్రిప్ట్ ఫీచర్ లేదా అపోహ?

లోపం నిర్వహణ మరియు డేటా పొందడం కోసం జావాస్క్రిప్ట్ అసమకాలిక ప్రోగ్రామింగ్ విధానం

  
// Solution 1: Handling errors with traditional JavaScript async/await  
async function getData() {  
  try {  
    const res = await fetch('https://api.backend.com/resource/1');  
    if (!res.ok) throw new Error('Network error');  
    const data = await res.json();  
    return data;  
  } catch (error) {  
    console.error('Error fetching data:', error);  
  }  
}  

డిస్ట్రక్చరింగ్‌తో జావాస్క్రిప్ట్‌లో అధునాతన ఎర్రర్ హ్యాండ్లింగ్‌ని అన్వేషిస్తోంది

డిస్ట్రక్చరింగ్ ఉపయోగించి మాడ్యులర్ మరియు పునర్వినియోగ దోష నిర్వహణ యొక్క ప్రదర్శన

  
// Solution 2: Using a helper function to handle async operations with error tracking  
async function handleAsync(promise) {  
  try {  
    const data = await promise;  
    return [null, data];  
  } catch (error) {  
    return [error, null];  
  }  
}  

// Usage example  
async function getData() {  
  const [networkError, res] = await handleAsync(fetch('https://api.backend.com/resource/1'));  
  if (networkError) return console.error('Network Error:', networkError);  

  const [parseError, data] = await handleAsync(res.json());  
  if (parseError) return console.error('Parse Error:', parseError);  

  return data;  
}  

బహుళ పర్యావరణాలలో పరిష్కారాలను పరీక్షించడం మరియు ధృవీకరించడం

వివిధ సందర్భాల్లో కోడ్ విశ్వసనీయంగా పని చేస్తుందని నిర్ధారించడానికి యూనిట్ పరీక్షల అమలు

  
// Solution 3: Unit tests for the error-handling function  
const assert = require('assert');  

async function mockPromise(success) {  
  return new Promise((resolve, reject) => {  
    setTimeout(() => {  
      success ? resolve('Success') : reject(new Error('Failed'));  
    }, 100);  
  });  
}  

(async function runTests() {  
  const [error, success] = await handleAsync(mockPromise(true));  
  assert.strictEqual(error, null, 'Error should be null');  
  assert.strictEqual(success, 'Success', 'Success message mismatch');  

  const [failure, data] = await handleAsync(mockPromise(false));  
  assert.ok(failure instanceof Error, 'Failure should be an Error');  
  assert.strictEqual(data, null, 'Data should be null on failure');  
  console.log('All tests passed!');  
})();  

జావాస్క్రిప్ట్ సింటాక్స్ ఆవిష్కరణల వెనుక రహస్యాన్ని తొలగించడం

అని పిలవబడే చుట్టూ చర్చ ఉండగా సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ గందరగోళాన్ని సృష్టించింది, ప్రయోగాత్మక లక్షణాలు మరియు కమ్యూనిటీ-ఆధారిత ప్రతిపాదనల ద్వారా జావాస్క్రిప్ట్ ఎలా అభివృద్ధి చెందుతుందో అన్వేషించడం చాలా అవసరం. జావాస్క్రిప్ట్ తరచుగా కొత్త సింటాక్స్‌ను పరిచయం చేస్తుంది ECMAScript ప్రతిపాదనలు ఇది అధికారికంగా మారడానికి ముందు అనేక దశల గుండా వెళుతుంది. అయితే, ఆపరేటర్ ?= ఉదాహరణలో పేర్కొన్నది అధికారిక వివరణలో కనిపించదు, ఇది కల్పిత నిర్మాణం కావచ్చు లేదా పైథాన్ వంటి ఇతర ప్రోగ్రామింగ్ భాషలలో ఉపయోగించే సారూప్య భావనల నుండి అపార్థం కావచ్చు అని సూచిస్తుంది.

మీడియం వంటి ప్లాట్‌ఫారమ్‌ల ద్వారా కంటెంట్ వేగంగా వ్యాప్తి చెందడం అటువంటి అపోహల వెనుక ఉన్న ఒక సాధారణ కారణం. కొంతమంది రచయితలు పొరపాటున కావలసిన కార్యాచరణను పోలి ఉండే వాక్యనిర్మాణాన్ని సృష్టించవచ్చు లేదా భాగస్వామ్యం చేయవచ్చు, ఈ లక్షణాలు ఉన్నాయని పాఠకులు విశ్వసిస్తారు. ఈ దృగ్విషయం విశ్వసనీయ డాక్యుమెంటేషన్ మూలాధారాలపై ఆధారపడటం యొక్క ప్రాముఖ్యతను హైలైట్ చేస్తుంది MDN వెబ్ డాక్స్, లేదా ఖచ్చితమైన భాషా నవీకరణల కోసం ECMAScript ప్రతిపాదన దశలను ట్రాక్ చేయడం. వంటి గుర్తింపు పొందిన ఆపరేటర్ లేకపోవడంతో ?=, డెవలపర్‌లు తప్పనిసరిగా అసైన్‌మెంట్‌లను నిర్మూలించడం లేదా వంటి ఇప్పటికే ఉన్న పద్ధతులపై ఆధారపడాలి try...catch అసమకాలిక ఆపరేషన్లలో దోష నిర్వహణ కోసం బ్లాక్స్.

జావాస్క్రిప్ట్ డెవలపర్లు కొన్నిసార్లు భాషను మరింత వ్యక్తీకరణ చేయడానికి కొత్త వాక్యనిర్మాణాన్ని ఎలా ప్రతిపాదిస్తారో కూడా పరిగణనలోకి తీసుకోవడం విలువైనదే. బాబెల్ లేదా టైప్‌స్క్రిప్ట్ వంటి సాధనాలు కోరుకున్న ఆపరేటర్ల ప్రవర్తనను అనుకరించే అనుకూల వాక్యనిర్మాణాలను కూడా పరిచయం చేయవచ్చు. ఇది తెలియని కోడ్ నమూనాలను ఎదుర్కొన్నప్పుడు జాగ్రత్తగా ధృవీకరించవలసిన అవసరాన్ని నొక్కి చెబుతుంది. వంటి అపోహలు సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ బ్రౌజర్ ఆధారిత డీబగ్గర్లు మరియు ఆధునిక JavaScript కంపైలర్‌లు వంటి సాధనాలను ఉపయోగించడం ద్వారా నివారించవచ్చు, ఇవి త్వరగా మద్దతు లేని లేదా తప్పు వాక్యనిర్మాణాన్ని ఫ్లాగ్ చేస్తాయి.

జావాస్క్రిప్ట్ సింటాక్స్ గందరగోళం గురించి తరచుగా అడిగే ప్రశ్నలు

  1. సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ అంటే ఏమిటి?
  2. ది ?= ఉదాహరణలో పేర్కొన్న ఆపరేటర్ జావాస్క్రిప్ట్‌లో అధికారికంగా డాక్యుమెంట్ చేయబడలేదు. ఇది అపార్థం కావచ్చు లేదా ఇతర భాషల వాక్యనిర్మాణం ద్వారా ప్రేరేపించబడి ఉండవచ్చు.
  3. జావాస్క్రిప్ట్‌లో ఇలాంటి ఆపరేటర్‌లు ఏమైనా ఉన్నాయా?
  4. జావాస్క్రిప్ట్ ఉపయోగిస్తుంది =, ??=, మరియు ||= ఆపరేటర్లు షరతులతో విలువలను కేటాయించాలి, కానీ ఇవి ప్రామాణిక భాషా లక్షణాలలో భాగం.
  5. నేను జావాస్క్రిప్ట్‌లోని లోపాలను అసమకాలికంగా ఎలా నిర్వహించగలను?
  6. ఉపయోగించండి try...catch తో బ్లాక్స్ async లోపాలను సునాయాసంగా నిర్వహించడానికి విధులు. ఇది నెట్‌వర్క్ మరియు పార్సింగ్ ఎర్రర్‌లను గుర్తించి తగిన విధంగా నిర్వహించేలా నిర్ధారిస్తుంది.
  7. మీడియం కథనాలు గందరగోళాన్ని సృష్టించడం సాధారణమా?
  8. అవును, మీడియం వంటి ప్లాట్‌ఫారమ్‌లలో ఎవరైనా ప్రచురించవచ్చు కాబట్టి, తప్పుడు సమాచారం లేదా ప్రయోగాత్మక ఆలోచనలు త్వరగా వ్యాపించవచ్చు, దీని వలన డెవలపర్‌లలో గందరగోళం ఏర్పడవచ్చు.
  9. నేను అధికారిక జావాస్క్రిప్ట్ ఫీచర్‌లను ఎలా ట్రాక్ చేయాలి?
  10. వంటి విశ్వసనీయ మూలాధారాలను చూడండి MDN Web Docs లేదా కొత్త భాషా అభివృద్ధిని కొనసాగించడానికి GitHubలో ECMAScript ప్రతిపాదన రిపోజిటరీ.

సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ యొక్క చెల్లుబాటుపై చర్చ

లేకపోవడంతో సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ అధికారిక JavaScript డాక్యుమెంటేషన్‌లో, ఇది తప్పుగా అర్థం చేసుకున్న భావన లేదా మద్దతు లేని ఫీచర్‌గా కనిపిస్తుంది. కొత్త సింటాక్స్ లేదా భాషా ఫీచర్ల కోసం అనధికారిక మూలాధారాలపై ఆధారపడే విషయంలో డెవలపర్‌లు తప్పనిసరిగా జాగ్రత్తగా ఉండాలి.

JavaScript నిరంతరం ECMAScript ప్రతిపాదనల ద్వారా అభివృద్ధి చెందుతున్నప్పటికీ, విశ్వసనీయ మూలాల ద్వారా కొత్త ఆపరేటర్‌లను ధృవీకరించడం చాలా అవసరం. డిస్ట్రక్చరింగ్ వంటి డాక్యుమెంట్ చేయబడిన సింటాక్స్‌కు అంటుకోవడం, ప్రయత్నించండి...పట్టుకోండి, మరియు ఆధునిక అసైన్‌మెంట్ ఆపరేటర్‌లు మెరుగైన పనితీరు, భద్రత మరియు కోడ్ నిర్వహణను నిర్ధారిస్తారు.

సురక్షిత అసైన్‌మెంట్ ఆపరేటర్ అంశం కోసం మూలాలు మరియు సూచనలు
  1. ఈ కథనాన్ని రూపొందించడానికి ఉపయోగించిన కంటెంట్ యొక్క మూలాన్ని వివరిస్తుంది మరియు URLని కలిగి ఉంటుంది MDN వెబ్ డాక్స్ లోపల.
  2. బహుళ వినియోగదారు సహకారాలు మరియు చర్చలతో కంటెంట్ క్రాస్-చెక్ చేయబడింది మధ్యస్థం సేఫ్ అసైన్‌మెంట్ ఆపరేటర్ చుట్టూ ఉన్న దావాను అన్వేషించడానికి.
  3. వద్ద ఆపరేటర్‌కు సంబంధించిన ఏదైనా సూచన కోసం ECMAScript ప్రతిపాదనలను విశ్లేషించారు ECMAScript ప్రతిపాదనల రిపోజిటరీ .