প্রোগ্রামাররা ভেরিয়েবল স্কোপের আগে কী করেছিল, যেখানে সমস্ত কিছু বিশ্বব্যাপী?


40

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

এখানে আমি আছি. আমি বেশ কয়েকটি উন্মুক্ত পদ্ধতিতে কীভাবে বিশ্বব্যাপী পরিবর্তনশীল ব্যতীত অন্য কিছুই পরিচালনা করতে পারি তা চেষ্টা করার চেষ্টা করছি । হ্যাঁ, forলুপগুলির জন্য এমনকি পুনরাবৃত্তিকেও বিশ্বব্যাপী সংজ্ঞায়িত করতে হবে, যা আমি নিজের কোডের বিভিন্ন অংশে নিজেকে পুনর্ব্যবহার করতে দেখি।

আমার প্রশ্ন: যাদের এই ধরণের অভিজ্ঞতা আছে তাদের জন্য, প্রোগ্রামাররা কীভাবে একটি বিশ্বব্যাপী খেলার মাঠে প্রচুর পরিমাণে ভেরিয়েবলের সাথে ডিল করেছিলেন? আমি অনুভব করছি যে এটি কেবল একটি মানসিক জাগ্রত কৌশল হয়ে দাঁড়িয়েছে, তবে কোনও পরিচিত এপ্রোচ আছে কিনা তা জানতে আগ্রহী হব।


71
তারা অনেক প্রার্থনা।
রবার্ট হার্ভে

15
আমি প্রচুর উন্মাদ পরিবর্তনশীল নামগুলি অনুমান করতে পারি যা প্রায় স্কোপ - bob_dog_fur_colourইত্যাদি ... একই নামগুলি আঘাতের সম্ভাবনা হ্রাস করার চেষ্টা করে।
লেটি

12
তারা এমন কর্মসূচি লিখেছিল যা স্কোপে ছোট ছিল এবং এগুলির মধ্যে প্রচুর বাগ রয়েছে।
চার্লস ই। গ্রান্ট

12
@ লাট্টিওয়্যার, আসলে বড় দিনগুলিতে আপনি নিজের পরিবর্তনশীল নামগুলি কীভাবে বর্ণনামূলক করতে পারেন তা সম্পর্কে আপনি খুব সীমাবদ্ধ ছিলেন। কিছু ভাষায় কেবল 1 বা 2 টি চরিত্রের পরিবর্তনশীল নামের অনুমতি দেওয়া হয়েছিল, অন্যরা 8 টিরও বেশি আপনাকে অনুমতি দেয় It এটি চুষে ফেলেছিল, তবে আমরা জানি না যে এটি কতটা চুষেছে। এটি সংমিশ্রণটিকে সীমিত পরিমাণে মেমরিতে সঙ্কুচিত করতে দেয়।
চার্লস ই। গ্রান্ট

17
তারা আরও উন্নত প্রোগ্রামিং ভাষা আবিষ্কার করেছে ...
উইম

উত্তর:


44

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

আপনি সর্বদা অস্থায়ীদের জন্য ব্যবহার করেন এমন একটি ছোট সংখ্যক ভেরিয়েবল রাখার চেষ্টা করুন এবং মনে রাখবেন যে তারা অস্থায়ী। অবিচ্ছিন্নভাবে একইগুলি পুনরায় ব্যবহার করে আপনি কোথায় সেগুলি বৈধ কিনা তা ট্র্যাক করার অভ্যাসে চলে আসবেন।

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

আমি লম্বা শনাক্তকারীদের সাথে আগে জিনিসগুলি দেখেছি, তবে যার সনাক্তকারীগুলি প্রথম 8 টি অক্ষরে শুধুমাত্র অনন্য ছিল। সুতরাং আপনি রনিরেগুন এবং রনিরেব্লাস্টার পেতে পারেন এবং তারা আসলে একই পরিবর্তনশীল। এই ক্ষেত্রে আমি পরিবর্তনশীল নামগুলি 'অনন্য' সীমাতে রাখার পরামর্শ দিচ্ছি যাতে আপনার দুর্ঘটনাক্রমে সংঘর্ষ হওয়ার সম্ভাবনা কম থাকে।


4
+1: অ্যাসেম্বলি লেখার সময় আমি সাধারণত কিছু একই সমস্যার মুখোমুখি হয়ে থাকি যে আমি যদি রেজিস্টারের নাম রাখি তবে নামগুলি বিশ্বব্যাপী (আমি আরও একটি সমস্যার মুখোমুখি হয়েছি যে আমি আরও বেশি নাম তৈরি করলেও, আমি বেশি রেজিস্টার পাই না, তবে তা এখানে প্রাসঙ্গিক নয়)। অস্থায়ী মানগুলির জন্য নিবেদিত কয়েকটি নিবন্ধগুলি সত্যই তৈরি হওয়া ভেরিয়েবলের সংখ্যা কমিয়ে রাখতে সহায়তা করে যা আপনার মাথায় সবকিছু রাখা সহজ করে তোলে। প্রতিটি ফাংশন কোন ভেরিয়েবল ব্যবহার করবে তা ডকুমেন্টিং (সবচেয়ে গুরুত্বপূর্ণটি এটির সংশোধন করবে) গ্লোবাল চিত্রটি সঠিকভাবে পেতে সহায়তা করে।
লিও

53

তথ্য অভিধান.

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

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

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


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

1
এটি আমার ফিরে আসার কথা মনে করিয়ে দেয় যখন আমি বেসিক শিখছিলাম এবং ভেরিয়েবলের দুটি অক্ষরের চেয়ে বেশি নাম থাকতে পারে না এবং সেগুলি একটি বিশাল প্রোগ্রামে রাখে ...
কেভিন রুবিন

কেভিন রবিন, আমাকে মনে করিয়ে দেবেন না আহ ক্লিটন যেমন বলতেন, তেমনি আপনারও যন্ত্রণা অনুভব হচ্ছে ...
জন আর। স্ট্রোহম

8

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

কমপিটারগুলি দুর্দান্তভাবে ব্যয়বহুল হয়ে উঠলে গণনাও অনেক বেশি বিরল এবং বহিরাগত ক্রিয়াকলাপ ছিল, এবং এটি সম্ভবত বিশেষত গাণিতিক ঝোঁকযুক্ত এবং বুদ্ধিমান ব্যক্তিরা প্রথম স্থানে প্রোগ্রামার হয়ে উঠেছে (যদিও এই ধরনের তুলনা পরীক্ষার পক্ষে অচল এবং প্রকৃতপক্ষে রাজনৈতিকভাবে অন্তর্নিহিত)। প্রথম দিনগুলিতে, লোকেদের প্রথমে এটি কেনার জন্য রাজি করার জন্য প্রথমদিকে, সফ্টওয়্যারটি সাধারণত একটি কম্পিউটার দিয়ে ফ্রি পাঠানো হত; এই ধারণাটি যে প্রাতিষ্ঠানিক ব্যবহারকারীরা এমনকি তাদের নিজস্ব প্রোগ্রাম লেখার চেষ্টা করবেন তা প্রথমে অজানা ছিল।


আপনি কত পিছনে কথা বলছেন। আমি ব্যক্তিগতভাবে 80 এর দশকের গোড়ার দিকে এমন একটি দম্পতি মিনিকম্পিউটার দেখেছি যার dat০ কে-এর বেশি লেবেলযুক্ত একটি 'ডেটাপুল' (অর্থাত্ একটি গ্লোবাল ভেরিয়েবল তালিকা) ছিল।
ইভান প্লেস

-১: প্রথম দিনগুলিতে আপনি কেবল কম্পিউটারে অ্যাক্সেস পেতে মাসিক ভাড়া প্রদান করেননি, আপনি সিপিইউ চক্র এবং আপনার প্রোগ্রাম দ্বারা ব্যবহৃত মেমরির জন্য অর্থ প্রদান করেছেন paid সফ্টওয়্যারটি ফ্রি থেকে অনেক দূরে ছিল এবং সফ্টওয়্যারটি এত কম চালানো হয়েছিল।
mattnz

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

কম্পিউটারগুলিতে একাধিক মেগাবাইট মেমরি থাকার অনেক আগেই একক স্কোপ প্রোগ্রামিংয়ের সমস্যাগুলি স্বীকৃত হয়েছিল। লেজিকাল স্কোপ সহ প্রথম ভাষা ALGOL ১৯৫৮ সালে প্রকাশিত হয়েছিল
কেভিন cline

4

আমার গোশ, এটি বহু বছর আগের (স্মৃতি বুদবুদ :))।

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


3

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

আমি খুঁজে পেয়েছি, আপনি যদি এটি করতে যাচ্ছেন তবে আপনার একটি কাঠামোগত নামকরণ কনভেনশন ব্যবহার করা উচিত। উদাহরণস্বরূপ, Motor1_DriveContactor_Run। আপনার ভাষা সমর্থন স্ট্রাকচার (কখনও কখনও ব্যবহারকারী-সংজ্ঞায়িত ধরনের নামেও পরিচিত) ঘটবে তাহলে সেই যেমন কাঠামোগত তথ্য অনুক্রমের তৈরি, ব্যবহার করতে পারেন: Motor[1].DriveContactor.Run

এটি সবকিছুকে সংগঠিত রাখে এবং সাধারণত বুদ্ধি আপনাকে সাহায্য করতে যথেষ্ট শালীন হয়।


2

আমি আসলে অ্যাথওয়ারওয়্যার নামে একটি ভাষায় প্রোগ্রাম করতে শিখেছি, যেখানে সমস্ত কিছু বিশ্বব্যাপী ছিল। ভাগ্যক্রমে, এটিতে অ্যারে এবং নির্দিষ্ট পয়েন্টের পরে তালিকাগুলি নামে কিছু ছিল যা জেনেরিক বস্তুর সাথে সমান ছিল।

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

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

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

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


আমি ম্যাক্রোমিডিয়া অথোয়ার, @ অ্যামি-ব্লঙ্কনশিপ এর সাথেও কাজ করেছি। আমি শেষবার এটি দিয়ে কাজ করার সময় এটি কোন সংস্করণ ছিল তা মনে নেই, সম্ভবত ৩. এটি ফ্ল্যাশ / শোকওয়েভ দ্বারা প্রতিস্থাপন করা হয়েছিল বা এটি এখনও বিদ্যমান?
তুলিনাস কর্ডোভা

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

1

আমি যখন বিশ্ববিদ্যালয়ে ছিলাম তখন আমাদেরকে "দ্য গ্লোবাল ভেরিয়েবল প্রব্লেম" সম্পর্কে দীর্ঘমেয়াদে শেখানো হয়েছিল - প্রচুর গ্লোবাল ভেরিয়েবলের কারণে সৃষ্ট বাগ এবং কোড রক্ষণাবেক্ষণ সমস্যার একটি সংকলন।

কিছু পরিবর্তনশীল অন্যদের চেয়ে বিপজ্জনক।

নিরাপদ : পরিবর্তনশীলগুলি যা নিয়ন্ত্রণের প্রবাহকে প্রভাবিত করে না যেমন লাস্টনাম

বিপজ্জনক : যে কোনও পরিবর্তনশীল যা প্রোগ্রামের প্রবাহের নিয়ন্ত্রণকে প্রভাবিত করে যেমন ডেলিভারিস্ট্যাটাস

সবচেয়ে বিপজ্জনক প্রথম:

  • যৌগিক স্থিতি (মোড এবং উপ-মোড)
  • যৌগিক মান (মোট, উপ-মোট)
  • একক স্থিতি (মোড)
  • একক মান (গণনা)

"গ্লোবাল ভেরিয়েবল সমস্যা" এড়াতে আপনার প্রয়োজন

  • প্রতিটি পরিবর্তনশীল এবং ফাংশন নথি
  • উত্স কোডের একই বিভাগে সম্পর্কিত ভেরিয়েবলগুলি একত্রে (তাদের ব্যবহার করে এমন কোড সহ) রাখুন।
  • "বিপজ্জনক" ভেরিয়েবলগুলি লুকান, যাতে অন্যান্য প্রোগ্রামাররা তাদের অস্তিত্ব সম্পর্কে জানেন না। এগুলি সরাসরি ব্যবহার করা এড়িয়ে চলুন, বিশেষত কোডের অন্যান্য বিভাগে।
  • বিপজ্জনক ভেরিয়েবলগুলি পড়ার / লেখার জন্য এমন ক্রিয়াকলাপ সরবরাহ করুন (যাতে অন্যান্য প্রোগ্রামারগুলির প্রয়োজন হয় না)।

করতে আপনার কোড গঠন , যখন কোন কাঠামো ভাষা, ব্যবহার মতামত ও নামকরণ নিয়মাবলী উপলব্ধ:

/* --------------------------- Program mode ------------------------ */

var Mode_Standard = 1;      // Normal operation (SubMode unused)
var Mode_Backup   = 2;      // Backup mode      (SubMode is backup device)

var BackupMode_Disk = 1;    // SubMode: Backup to disk
var BackupMode_Tape = 2;    // SubMode: Backup to tape

var MainMode = Mode_Standard;
var SubMode = 0;

function Mode_SetBackup(backupMode)
{
    MainMode = Mode_Backup;
    SubMode = backupMode;
}

function Mode_SetStandardMode()
{
    MainMode = Mode_Standard;
    SubMode  = 0;
}

function Mode_GetBackupMode()
{
    if (MainMode != Mode_Backup)
        return 0;

    return SubMode;
}

/* --------------------------- Stock Control ------------------------ */

var Stock_Total =  123;      // Total stock       (including RingFenced)
var Stock_RingFenced = 22;   // Ring-fenced stock (always less than total)

// Adds further ring-fenced stock 
function Stock_AddRingFenced(quantity)
{
    Stock_Total      += quantity;
    Stock_RingFenced += quantity;
}

/* ------------------------- Customers ----------------------- */

var Customer_FirstName = "Tony";
var Customer_LastName  = "Stark";

0

তারা কীভাবে জানত না।

তবে আমি মনে করি যে নামকরণের সংঘর্ষের বিষয়ে আধুনিক ওওপি ভাষাগুলির একটি খুব অনুরূপ সমস্যা ছিল ।

সমাধান গ্রহণ করা হয় নামস্থান । এটি একটি বিমূর্ত ধারণা, তবে বেশ কয়েকটি বাস্তবায়ন (জাভা প্যাকেজ,। নেট নেমস্পেস, পাইথন মডিউল) দ্বারা ব্যাপকভাবে গৃহীত।

আপনি যে ভাষাটি ব্যবহার করছেন তাতে যদি দৈর্ঘ্যের নামকরণের বিষয়ে খুব সীমাবদ্ধতা না থাকে, তবে আপনি ভাল ভেরিয়েবল নামকরণের জন্য নেমস্পেসটি প্রয়োগ করতে পারেন।

সুতরাং ভেরিয়েবলের নামটিও ভেরিয়েবলের সুযোগকে উপস্থাপন করে।

নামকরণের প্যাটার্নটি এর মতো সংজ্ঞায়িত করার চেষ্টা করুন: order_detail_product_code, order_detail_product_unit_price। অথবা অস্থায়ী কাউন্টার বা অদলবদলের জন্য: tmp_i, tmp_swap


0

ভাষাগুলিতে সমস্ত ভেরিয়েবল বৈশ্বিক ছিল (আমি একটি দম্পতি ব্যবহার করেছি) আমরা একটি পরিবর্তনশীল নামকরণ কনভেনশন ব্যবহার করি। উদাহরণস্বরূপ: আমি যদি বিশ্বব্যাপী কোনও পরিবর্তনশীল ব্যবহার করতে চাইতাম তবে আমি "এম_" বা "_" উপসর্গটি ব্যবহার করতে পারি। অবশ্যই এটি এখনও এই শৃঙ্খলা রাখতে বিকাশকারীদের উপর নির্ভর করে

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