সিস্টেম হাঙ্গেরীয়ের আবেদন কী? [বন্ধ]


18

আপনি কোন নামকরণের নির্দেশিকা অনুসরণ করেন? লেখক বলেছেন:

এছাড়াও আমি চার্লস সিমোনির কাছ থেকে হানিবি স্বরলিপি ব্যবহার করে কোড পছন্দ করি।

আমি বেশ কয়েকজন প্রোগ্রামারকে নিয়ে গিয়েছি যারা এখনও হাঙ্গেরিয়ান ব্যবহার করতে পছন্দ করে, বেশিরভাগ পেটজোল্ড / সিস্টেম হাঙ্গেরিয়ান গন্ধ। ভাবি dwLength = strlen(lpszName)

আমি মেকিং রেক কোড লুক র্রং পড়েছি এবং আমি অ্যাপস হাঙ্গেরিয়ান এর যুক্তি বুঝতে পেরেছি যেখানে ডোমেন-ধরণের তথ্য ভেরিয়েবলের নাম অন্তর্ভুক্ত করা হয়েছে। তবে সংকলকটির নামের সাথে সংযুক্ত করার মানটি আমি বুঝতে পারি না।

প্রোগ্রামাররা এখনও স্বরলিপিটির এই স্টাইলটি ব্যবহার করেই চলেছেন? এটা কি শুধু জড়তা? এমন কি কোনও সুবিধা রয়েছে যা হ্রাসযোগ্য পাঠযোগ্যতার চেয়ে বেশি? লোকেরা কী কোডটি পড়ার সময় সজ্জকারকে উপেক্ষা করা শিখেন এবং যদি তাই হয় তবে কীভাবে তারা মান যুক্ত করা চালিয়ে যান?

সম্পাদনা: প্রচুর উত্তর ইতিহাস ব্যাখ্যা করছে, বা কেন এটি আর প্রাসঙ্গিক নয়, উভয়ই আমার উদ্ধৃত প্রবন্ধে আচ্ছাদিত রয়েছে।

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


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

1
আমি সেই বছরগুলি আগে ব্যবহার করেছি এবং এটি কখনও পছন্দ করে না। আমি একেবারেই মিস করি না।
মেটালমাইকস্টার

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

উত্তর:


38

মুহূর্তে আমি এখনও জন্য হাঙ্গেরীয় ব্যবহার ঠিক তিনটে কারণ , judiciously এড়ানো অন্য সব কিছুর জন্য এটি:

  1. রক্ষণাবেক্ষণ করার সময় কোনও বিদ্যমান কোড বেসের সাথে সামঞ্জস্য থাকা।
  2. নিয়ন্ত্রণের জন্য, যেমন। "TxtFirstName"। আমাদের প্রায়শই "ফার্স্টনেম" মান এবং "ফার্স্টনেম" নিয়ন্ত্রণের মধ্যে পার্থক্য করতে হয়। হাঙ্গেরিয়ান এটি করার জন্য একটি সুবিধাজনক উপায় সরবরাহ করে। অবশ্যই, আমি "ফার্স্টনেমেক্সটবক্স" টাইপ করতে পারি, তবে "txtFrstName" ঠিক ততই বোঝা সহজ এবং চরিত্রগুলিও কম। অধিকন্তু, হাঙ্গেরিয়ান ব্যবহারের অর্থ হ'ল একই ধরণের নিয়ন্ত্রণগুলি সহজেই পাওয়া যায় এবং প্রায়শই আইডিইতে নাম অনুসারে গোষ্ঠীভুক্ত হয়।
  3. যখন দুটি ভেরিয়েবল একই মান ধারণ করে তবে ধরণের দ্বারা পৃথক হয়। উদাহরণস্বরূপ, ব্যবহারকারীর দ্বারা টাইপ করা মূল্যের জন্য "strValue" এবং একই মানের জন্য "intValue" একবার পূর্ণসংখ্যার মতো পার্স হওয়ার পরে।

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


হালনাগাদ:

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


দুর্দান্ত উত্তর, আগুনে জিজ্ঞাসা করা প্রশ্নের উত্তর দেয়।
এশেলি

আমার আইফোনের সৃজনশীল সম্পাদনাটি কেবলমাত্র খেয়াল করেছে ... gsub ('ফায়ারফ্লাই', 'পুরোপুরি');
এশেলি

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

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

2
2 আমি পুরো প্রত্যয় পছন্দ করি কারণ উপসর্গগুলি বেশ নির্বোধ পেতে পারে (একটি tssbবা একটি tsddiকী? হ্যাঁ, সেগুলি বিদ্যমান)। সংক্ষিপ্তসারগুলিতেও অভিন্নতার সমস্যা রয়েছে, এটি গ্রহণ বা TextBoxএটির বিষয়ে কোনও অসঙ্গতি থাকতে পারে (আমি ব্যক্তিগতভাবে একজন সিনিয়র 'দেব উভয়ই একক উইন্ডোতে ব্যবহার করতে দেখেছি)। জন্য 3 আমি হাঙ্গেরীয় ড্রপ যখন পরিবর্তনশীল তার চুড়ান্ত উদ্দীষ্ট টাইপ ছুঁয়েছে (যেমন আমি ব্যবহার করেন এবং আপনার উদাহরণে)। tbtxtvaluestrValue
জোনাথন ডিকিনসন

6

আমি হ্যান্তির স্বরলিপি ব্যবহারের খুব বেশি অনুরাগী নই তবে এইভাবে ভাবুন:

  • আমরা লক্ষ্য করতে পারি যে আপনার কোডে একটি টেক্সটবক্সে স্ট্রিং রেফারিং খুঁজে পাওয়া আরও দ্রুত: আপনার অনুসন্ধান বাক্সে "txt" টাইপ করে।

বিপরীতে ভাবুন না, যেখানে প্রতিটি উপাদানটির নিজস্ব নাম রয়েছে। আপনি কোথায় যেতে চান তা খুঁজে পাওয়া আপনার পক্ষে ধীর হতে পারে, তাই না?

যখন আমরা কোনও ড্রপডাউনলিস্টটি উল্লেখ করতে চাই, তখন এটিই সহজ বা না? :)

এই উপাদানটি কোথায় তা খুঁজে পেতে লোকেরা এতটা সময় ব্যয় করবে না।

উপসর্গ ব্যবহার সি # এর মতো আধুনিক ভাষার সংকলকগুলির জন্য ব্যবহারযোগ্য নয়, তবে এটি মানুষের জন্য ব্যবহারযোগ্য (পঠনযোগ্য)


এটির ব্যবহারিক মানের যে আমি শুনেছি তার এটি সেরা উদাহরণ। (তবে এখনও আমাকে এটিকে গ্রহণ করার পক্ষে যথেষ্ট নয় :)
আশেলী

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

আমি ভেরিয়েবল এবং (বিশেষত) উইজেটগুলির সাথেও একই কাজ করব - প্রায়শই তাদের প্রকারটি বোঝাতে সংক্ষিপ্ত উপসর্গ দিয়ে থাকি। তবে তাদের উপর "ফুল-আউট হাদীস" যাওয়ার দিকটি নয়।
গ্র্যান্ডমাস্টারবি

4

অ্যাপস হাঙ্গেরিয়ান (যে ধরণের সিস্টেমের মাধ্যমে প্রকাশ করা যায় না এমন বস্তুর অর্থগত বৈশিষ্ট্য বোঝাতে ট্যাগগুলি) হ'ল 1980 এর দশকের শুরুর দিকে দুর্বল-টাইপের ভাষা ব্যবহার করার সময় কিছু সাধারণ ত্রুটিগুলি মোকাবেলার যুক্তিসঙ্গত উপায়। তারা আজকের দৃ strongly়-টাইপিত ভাষাগুলিতে খুব কম উদ্দেশ্য করে।

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

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


4

আপনি যদি উপসর্গের সঠিক সিস্টেমটি নিয়ে আসেন তবে আপনি আপনার কীগুলি পরিধান এবং ছড়িয়ে দিতে পারেন যা প্রতিস্থাপন কীবোর্ডগুলিতে ব্যয় হ্রাস করবে।


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

অন্যদিকে, আমি আমার 'হোম কোড' তে প্রায় সমান সময়ের জন্য অলংকৃত তবে সুনামযুক্ত ভেরিয়েবলগুলি ব্যবহার করেছি। আমি কখনও এসএইচ মিস করিনি।

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

সুতরাং, উপসংহারে, কেবলমাত্র তফাতটি আমি দেখতে পাচ্ছি হ'ল আপনার কীবোর্ডের পোশাক এবং টিয়ার।



4

আমি আসলে এই মাসে আমি লিখেছি নতুন কোডে এসএইচ ব্যবহার শুরু।

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

জাভাস্ক্রিপ্টে, আমি ডেটা স্ট্রাকচারের ধরণগুলি ট্র্যাক করতে SH কে অমূল্য বলে মনে করেছি। উদাহরণ স্বরূপ,

var oRowData = aoTableData[iRow];

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

tl; dr: যখন আপনার দুর্বলভাবে টাইপ করা ভাষায় জটিল কোড থাকে তখন এসএইচ দুর্দান্ত হতে পারে। তবে যদি আপনার আইডিই প্রকারগুলি ট্র্যাক করতে পারে তবে এটি পছন্দ করুন।


2

আমি যুক্তি দেখতে আগ্রহী। আমরা জানি তারা অতীতে কেন এটি ব্যবহার করেছিল: টাইপ তথ্যের জন্য আইডিই সহায়তার অভাব। কিন্তু এখন? সহজ কথায় বলতে গেলে, আমি মনে করি এটি একটি traditionতিহ্য। সি ++ কোড সর্বদা এরকম দেখায় তাই জিনিস কেন পরিবর্তন করবেন? তদ্ব্যতীত, আপনি যখন আগের কোডটির উপরে তৈরি করেন যা হাঙ্গেরিয়ান স্বরলিপি ব্যবহার করে, আপনি হঠাৎ এটি ব্যবহার বন্ধ করে দিলে তা বেশ বিস্ময়কর মনে হবে ...


2
সি ++ কোড সর্বদা এর মতো হয় না - বার্জার্ন স্ট্রস্ট্রপ বইটি দেখুন।
জেবিআরউইলকিনসন

@ জেবিআরউইলকিনসন: চার্লস সিমনিই ১৯ 197 around সালের দিকে হাঙ্গেরিয়ান নোটেশন তৈরি করেছেন ( সি 2.com/cgi/wiki? হাঙ্গেরিয়ান নোটেশন )। সুতরাং এই স্বরলিপিটি আসলে সি ++ এর পূর্বাভাস দেয়। সর্বাধিক সি ++ প্রোগ্রামার না থাকলে অনেকেই 1 দিন থেকে এটি ব্যবহার করে আসছেন (তাদের কোডিংয়ের অর্থ, এটি)। আমি বুঝতে পেরেছি যে বজর্ন স্ট্রাস্ট্রাপ উল্লেখযোগ্য ব্যতিক্রম, লিনাস টোরভাল্ডসও তবে এটি সত্য পরিবর্তন করে না।
পাওয়ে ডায়দা

2
আমি মনে করি হাঙ্গেরিয়ান সবসময় মূলত একটি মাইক্রোসফ্ট জিনিস ছিল। আমি এটি ইউনিক্স এবং ইউনিক্সের মতো পরিবেশে বেশি ব্যবহার করতে দেখিনি।
ডেভিড থর্নলি

2

সিস্টেমগুলি হাঙ্গেরীয় স্বরলিপিটি আসলে একটি কুক্কুট, 'টাইপ' শব্দটির একটি ভুল বোঝাবুঝি ছিল। অ্যাপ্লিকেশন ডোমেন টাইপের (সারি সূচক, কলাম সূচক, ...) বিপরীতে সিস্টেম বিকাশকারীরা এটিকে আক্ষরিকভাবে সংকলক প্রকার (শব্দ, বাইট, স্ট্রিং, ...) হিসাবে গ্রহণ করেছে।

তবে আমি অনুমান করি যে প্রতিটি বিকাশকারী বিভিন্ন ধরণের স্টাইলের মধ্য দিয়ে যায় যা সেই সময়কার দুর্দান্ত ধারণা হিসাবে মনে হয় (এবং উপসর্গের ধরণটি কোনও নবজাতকের কাছে ভাল ধারণা বলে মনে হয়) পরিবর্তনের ধরণে (নতুন ধরণের পরিবর্তনশীল, নতুন, অর্থপূর্ণ উপসর্গ তৈরি করে, ইত্যাদি)। ডেভেলপারদের থেকে যে ভালো না এবং বুঝতে পারি কেন এটা একটি দরিদ্র পছন্দ, ডেভেলপারদের কোডিং মান যে ম্যান্ডেট অনুশীলন এবং মানুষের কাছ থেকে ব্যবহার সঙ্গে আটকে থেকে: তাই আমি মনে করি একটি নিষ্ক্রিয়তা আছে <windows.h>। উপসর্গ চিহ্নটি (যা অনেক জায়গায় ভুল: ডাব্লুপিআরএএম?) থেকে মুক্তি পেতে মাইক্রোসফ্টের পক্ষে পরিবর্তন করা খুব ব্যয়বহুল হবে।


1
এমনকি উদ্দিষ্ট ব্যবহারটি সর্বোত্তমের চেয়েও কম কারণ এটি একটি প্রাইভেট টাইপ সিস্টেম তৈরি করে যা সংকলকটি জানে না এবং তাই চেক টাইপ করতে পারে না।
ল্যারি কোলেম্যান

@ ল্যারি: যদিও এটি অবশ্যই সত্য, এমন একটি সফ্টওয়্যার উপলব্ধ রয়েছে যা উত্স কোডটি পার্স করতে পারে এবং কোডটি একটি মানের সাথে মানায়। তারা নিশ্চিত করতে সক্ষম হতে পারে যে উপসর্গগুলি এক্সপ্রেশনগুলিতে মেলে।
স্কিজেড

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

0

হাঙ্গেরীয়দের সাথে লোকেরা নিখোঁজ রয়েছে। হাঙ্গেরিয়ান স্বীকৃতি আসলে স্বতঃপূরণ নিয়ে দুর্দান্ত কাজ করে।

বলুন আপনার একটি ভেরিয়েবল রয়েছে এবং নামটি হাইটওফমনস্টার।

বলুন আপনি ভেরিয়েবলের নামটি ভুলে গেছেন

এটি উচ্চতাঅফমন্সটার বা মনস্টারহাইট বা পরিমাপ ম্যানস্টারহাইট হতে পারে

আপনি একটি চিঠি টাইপ করতে সক্ষম হবেন এবং স্বতঃপূরণ আপনাকে কিছু পরিবর্তনশীল নাম প্রস্তাব করতে পারেন।

উচ্চতাঅফমন্সটারটি একটি অন্তর্নিহিত তা জেনে আপনি কেবল i এবং voila টাইপ করেন।

সময় বাঁচাতে.

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