হাঙ্গেরিয়ান নোটেশন কী এবং আমার এটি উচিত?

প্রোগ্রামিং চেনাশোনাগুলিতে একটি বিখ্যাত উক্তিটি নিম্নরূপ:

কম্পিউটার বিজ্ঞানে কেবল দুটি শক্ত জিনিস রয়েছে: ক্যাশে অবৈধকরণ এবং নামকরণের জিনিস।

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

হাঙ্গেরিয়ান নোটেশন কি?

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

হাঙ্গেরীয় নোটেশন ব্যবহার করে, পরিবর্তনশীল নামগুলি সমস্ত সম্মত অর্থ সহ একত্রিত অক্ষরের সাথে শুরু হয়। এই অক্ষরগুলি সাধারণত ভেরিয়েবলের ধরণের সংক্ষেপণ। উদাহরণস্বরূপ, l অক্ষরটি একটি দীর্ঘ পূর্ণসংখ্যার প্রতিনিধিত্ব করতে পারে। সংক্ষিপ্তকরণ স্ট একটি স্ট্রিং প্রতিনিধিত্ব করে।

এটা কি আসলেই হাঙ্গেরীয়?

হ্যাঁ, হাঙ্গেরিয়ান নোটেশনটি সত্যই একটি হাঙ্গেরিয়ান আবিষ্কার করেছিলেন! চার্লস সিমনিই যখন এই শব্দটি আবিষ্কার করেছিলেন তখন তিনি মাইক্রোসফ্টের কর্মচারী ছিলেন। তিনি এই সংস্থার একটি প্রোগ্রামার ছিলেন, অ্যাপ্লিকেশন সফ্টওয়্যারটিতে কাজ করছিলেন।

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

এটা দেখতে কেমন?

কেবল বয়স একটি পরিবর্তনশীল নামকরণের পরিবর্তে, হাঙ্গেরিয়ান স্বরলিপি একটি উপসর্গ যে পরিবর্তনশীল ধরন প্রতিনিধিত্বমূলক অন্তর্ভুক্ত করা হয়েছে। উদাহরণস্বরূপ, সি-তে, কোনও প্রোগ্রামার নীচে যেমন একটি পরিবর্তনশীল ঘোষণা করতে পারে:

 int iAge;

দ্রষ্টব্য, যেহেতু সি একটি দৃ strongly়-টাইপিত ভাষা, i উপসর্গটি ঘোষণার স্থানে অপ্রয়োজনীয়। তবে পরে ভেরিয়েবল র সময় উপসর্গটি কার্যকর প্রমাণিত হয়েছে:

 printf("I am %d years old", iAge);

উপসর্গটি আমাদের স্মরণ করিয়ে দিতে সহায়তা করে যে আমরা সঠিক ধরণের ভেরিয়েবল ব্যবহার করছি।

দুর্বল-টাইপযুক্ত ভাষায়, যেমন পিএইচপি, ভেরিয়েবলগুলি তাদের ধারণকৃত মান অনুযায়ী বিভিন্ন ধরণের গ্রহণ করতে পারে। সুতরাং হাঙ্গেরীয় নোটেশন সম্ভবত আরও কার্যকর:

 $iAge = 21;

এখানে একটি সাধারণ হাঙ্গেরিয়ান নোটেশন স্কিমের আরও কয়েকটি উদাহরণ রয়েছে:

উপসর্গ প্রকার উদাহরণ
বুলিয়ান বিলাইটস সক্ষম
চরিত্র সিলেটর গ্রেড
str স্ট্রিং strCategory
i পূর্ণসংখ্যা আইওহেলস
ভাসা fMiles
ক্লাস সিপারসন
{শ্রেণির নাম} অবজেক্ট personLeader

সিস্টেম হাঙ্গেরীয় ভার্সাস অ্যাপস হাঙ্গেরীয়

হাঙ্গেরিয়ান নোটেশনের একটি বিভাজন রয়েছে। এক কোণে, আমাদের কাছে রয়েছে হাঙ্গেরিয়ান, অন্যটিতে অ্যাপস হাঙ্গেরীয়। পার্থক্যটি সূক্ষ্ম তবে সমস্ত গুরুত্বপূর্ণ।

সিস্টেমগুলি হাঙ্গেরীয় হ'ল একটি সংস্করণ যা লোকেরা প্রায়শই হাঙ্গেরিয়ান নোটেশনের সাথে সংযুক্ত থাকে। এটি ভেরিয়েবলের ধরণের সাথে কঠোরভাবে আচরণ করে, যেমন আমরা উপরে দেখিয়েছি।

অ্যাপস হাঙ্গেরিয়ান তার ডেটা টাইপের পরিবর্তে ভেরিয়েবলের উদ্দেশ্য এনকোড করার চেষ্টা করে। এটি অনেক বিস্তৃত ধারণা, সুতরাং উদাহরণগুলি বিভিন্ন বিভিন্ন ব্যবহারের ক্ষেত্রে কভার করতে পারে:

 // an Unsafe String eg a name the user entered in a web form
$usName
// the Length of the vertical side
$lVertical
// a Count of references to an object
$cRefs

অ্যাপস হাঙ্গেরিয়ান হুঙ্গি নোটেশনের মূল রূপ ছিল এবং উদ্দেশ্যটির বর্ণনা দেওয়ার জন্য সিমোনির অভিপ্রায় ছিল। সিস্টেম হাঙ্গেরিয়ান হ'ল একটি রূপান্তর something

হাঙ্গেরীয় স্বরলিপি সম্পর্কে ভাল কি?

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

হাঙ্গেরীয় নোটেশন ধারাবাহিক পরিবর্তনশীল নামকরণ কার্যকর করতে সহায়তা করে। সর্বোপরি, খারাপ ভেরিয়েবলের নামকরণ একটি সর্বাধিক সাধারণ প্রোগ্রামিং ভুল । অ্যাপস নোটেশন প্রোগ্রামারদের এমন গুরুত্বপূর্ণ ত্রুটিগুলি সনাক্ত করতে সহায়তা করতে পারে যা ভাষা তাদের অন্যথায় সতর্ক করে না।

এবং হাঙ্গেরিয়ান স্বরলিপি সম্পর্কে খারাপ কি?

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

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

যে কোনও ভাষা যা ব্যবহারকারী-সংজ্ঞায়িত প্রকার বা শ্রেণিগুলিকে সমর্থন করে সাধারণত উন্নত উপায়ে একই লক্ষ্য অর্জন করতে পারে। পরিবর্তনশীল ইউএসের নামকরণ এটি কোনও নিরাপদ করে না। তবে অনাহারিত স্ট্রিং নামের একটি শ্রেণি তৈরি করা একটি সংকলককে একটি ভেরিয়েবলের ধরণের পরীক্ষা করতে দেয়।

আমার কি হাঙ্গেরিয়ান স্বরলিপি উচিত?

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

তবে আপনি মাইক্রোসফ্ট, যে সংস্থাটি হাঙ্গেরিয়ান নোটেশনটির সূচনা করেছিল তার সর্বশেষ পরামর্শটি গ্রহণ করতে চাইতে পারেন। ২০০৮ সাল থেকে, তাদের সাধারণ নামকরণের কনভেনশনগুলিতে এই সাধারণ নোটটি অন্তর্ভুক্ত করা হয়েছে:

Hungarian হাঙ্গেরীয় স্বরলিপি ব্যবহার করবেন না।