সি # এর পাস্কেল-কেসিং পদ্ধতির নামের পিছনে দর্শন / যুক্তি কী?


22

আমি কেবল সি # শিখতে শুরু করছি। জাভা, সি ++ এবং অবজেক্টিভ-সি এর পটভূমি থেকে আগত, আমি সি # এর পাস্কেল-কেসটি এর পদ্ধতি-নামগুলির পরিবর্তে অনন্য, এবং একটি বাচ্চাকে প্রথমে অভ্যস্ত করা কঠিন বলে মনে করি। এর পিছনে যুক্তি ও দর্শন কী?

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

(সম্পাদনা: পাস্কেল-কেসিংয়ের অর্থ, প্যাসকেল কেস (যা মূলত উটকেস তবে মূলধন দিয়ে শুরু হয়)। পদ্ধতির নামগুলি সাধারণত বেশিরভাগ ভাষায় ছোট হাতের অক্ষর দিয়ে শুরু হয়))


আপনি যদি দেখেছেন যে কোনও নির্দিষ্ট পরিবারের সমস্ত সদস্যের তাদের সমস্ত বাড়ির সমস্ত দেয়াল একটি অদ্ভুত চিহ্ন দ্বারা আঁকা হয়েছে, তবে আপনি কি আগ্রহী হবেন যে তারা কেন এটি এত অদ্ভুত কাজ করেছিলেন?
নোকচার্ন

1
আপনি কেন এটি পাস্কেল কেস বলা হয় বলে মনে করেন ?
আর মার্টিনহো ফার্নান্দিস

1
@ মার্টিনহো ফার্নান্দিস এটি এই স্টাইলের স্ট্যান্ডার্ড নাম, গুগল পরীক্ষা করুন
অ্যান্ড্রে ১৯

1
@ নচটার্ন - হ্যাঁ আমি কৌতূহলী হবে :)
জোয়েল ইথারটন

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

উত্তর:


27

এটা স্বাদের বিষয়। কেউ একবার নামগুলির জন্য পাস্কাল স্টাইল ব্যবহার করার সিদ্ধান্ত নিয়েছে এবং এটি একটি স্ট্যান্ডার্ডে পরিণত হয়েছে।

আমার একটা বুনো অনুমান আছে যে এটি আন্ডার হেজলসবার্গ , যিনি ডেলফির স্থপতি ছিলেন, পাস্কালের উত্তরসূরী। কেস স্টাইল সি # তে একই রকম।


এটি আমার উত্তর হতে যাচ্ছে। : পি
দেবসোলো

@ ডেভসো দুঃখিত, স্ট্যাকওভারফ্লোতে যখন প্রশ্ন ছিল তখন আমি উত্তর টাইপ করতে শুরু করেছি :)
অ্যান্ড্রে ১৯

আমি মনে করি যে শিকড়গুলি প্রাচীন ইতিহাসের আরও গভীরতর হয় - আমার উত্তরটি নীচে দেখুন :)
ডাভকা

20

যদি আপনি কারণগুলি সম্পর্কে জিজ্ঞাসা করছেন তবে এখানে ঘোড়ার মুখ থেকে সরাসরি কথা বলা হয়েছে:

এমএসডিএন ব্লগে ব্রাস আব্রামসের লেখা পাস্কেল কেসিং এবং উট কেসিংয়ের নিবন্ধের ইতিহাস

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

পাস্কাল কেসিং কনভেনশন প্রতিটি শব্দের প্রথম চরিত্রকে বড় করে দেয় (দৈর্ঘ্যের দুটি অক্ষরের উপরে সংক্ষিপ্ত শব্দ সহ) ...

এবং এখানে নকশার গাইডলাইন রয়েছে: ক্লাস লাইব্রেরি বিকাশকারীদের জন্য নকশার নির্দেশিকা

এই নির্দেশিকাগুলি শ্রেণিবদ্ধ গ্রন্থাগার ডিজাইনারদের বিভিন্ন সমাধানের মধ্যে বাণিজ্য সম্পর্কে বুঝতে সহায়তা করার উদ্দেশ্যে। এমন পরিস্থিতিতে থাকতে পারে যেখানে ভাল লাইব্রেরি ডিজাইনের প্রয়োজন হয় আপনি এই নকশার নির্দেশিকা লঙ্ঘন করুন। এই জাতীয় কেসগুলি বিরল হওয়া উচিত এবং এটি গুরুত্বপূর্ণ যে আপনি নিজের সিদ্ধান্তের জন্য দৃ jus় সমর্থনযোগ্যতা প্রদান করুন। বিভাগটি .NET ফ্রেমওয়ার্কে প্রকারের নামকরণ এবং ব্যবহারের নির্দেশিকাগুলির পাশাপাশি সাধারণ নকশার নিদর্শনগুলি বাস্তবায়নের জন্য গাইডলাইন সরবরাহ করে ...


2
TurboPascalমাইক্রোসফ্ট ভুলে যাওয়ার জন্য এটি খুব সুবিধাজনক Philip Kahn(এফ Borland) এর বাচ্চা । রাজনীতি ....
ডাভকা

1
প্রথম লিঙ্কে মন্তব্যগুলি দুর্দান্ত, LOL।
jmq

7

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


8
আমি এখনও এটি ঘৃণা করি, হ্যাঁ।
jmq

2

আমি মনে করি না এর পিছনে একটি নির্দিষ্ট দর্শন ছিল। এখানে গাইডলাইন হওয়া দরকার ছিল এবং অনেকগুলি পয়েন্ট ছিল যা এটি প্রভাবিত হতে পারে:

  • তারা যেকোন উপসর্গের চিহ্ন থেকে মুক্তি পেতে চেয়েছিল (হাদিসি এখানে পড়ুন)
  • তারা চেয়েছিলেন যে স্থানীয় / বেসরকারী সদস্য এবং পাবলিক সদস্যদের কেবল তাদের নামগুলি পড়ার দ্বারা আলাদা করা উচিত।
  • তারা জা # কোডের মতো সি # কোড দেখতে চায়নি (এটি প্রচুর পরিমাণে উটের ক্ষেত্রে ব্যবহার করে)

মনে রাখবেন যে এই নামকরণের গাইডলাইনটি .NET কাঠামোর জন্য এবং বিশেষত সি # নয়। কেবি-সংবেদনশীল ভাষা ভিবি.এনইটিতে কনভেনশনটি একই থাকে, তবে আপনি এটিকে বেসরকারী এবং সরকারী সদস্যদের ক্ষেত্রে আলাদা করে ব্যবহার করতে পারবেন না।
আর মার্টিনহো ফার্নান্দিস

@ মার্টিনহো: একমত তবে আমি এখনও মনে করি এটি অন্যতম কারণ ছিল।
ডেস্কলোন

7
+1: "তারা সি # কোডটি জাভা কোডের মতো দেখতে চায় নি (যা উটের ক্ষেত্রে প্রচুর পরিমাণে ব্যবহার করে)": আমি দৃ strongly়ভাবে সন্দেহ করি যে আপনি ঠিক এখানে আছেন!
জর্জিও

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

0

আমি জানি না যে এটি সুন্দর এবং কমপ্যাক্ট ছাড়াও কেসিংয়ের পিছনে একটি "দর্শন" রয়েছে এবং আন্ডারস্কোর ব্যবহার না করে সহজেই একাধিক শব্দ হিসাবে উপস্থিত হতে পারে।

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


5
do-না ভুলবেন-পাতার মর্মর-শৈলী নামকরণ করার!
আর মার্টিনহো ফার্নান্দিস

@ মার্টিনহো ফার্নান্দেস আসলে সি-এর মতো ভাষার প্রসঙ্গে এটি বৈধ নয়।
অ্যান্ড্রে 19

হ্যাঁ, লিস্প হোয়াইটস্পেস অ্যাকাউন্টে নেয়। (- var1 var2)
মাইকেল কে

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

0

একটি বন্য গ্রহণ (তবে অযৌক্তিক নয়, আইএমএইচও) অনুমান - সি # ডিজাইনটি পাস্কালের মূল উদ্ভাবক নিকলাস ওয়ার্থ তদারকি করেছিলেন। সংযোগটি দেখুন? ... :)

কৌতূহলী # 1: আমি। নেট এবং সি # (হ্যাঁ, আমি প্রাগৈতিহাসিক ...) এবং মাইক্রোসফ্ট সি # তে উইথের নাম রেখে কীভাবে মাইক্রোসফ্টের গর্বের ঘোষণাকে ইতিবাচকভাবে মনে আছে। তবুও, উইকিপিডিয়া পৃষ্ঠাগুলিতে উভয়ই (সি # এবং রাইথ) এটি উল্লেখ করে না।

কৌতূহলী # 2: যদিও এটি বলা হয় PascalCase, এটি ভাষা নিজেই নয়, TurboPascalকম্পাইলার দ্বারা জনপ্রিয় হয়েছিল (যা শেষ পর্যন্ত হয়ে ওঠে Borland)।


4
এবং টার্বোপ্যাসাল সহজেই অ্যান্ডারস হেলসবার্গ দ্বারা ডিজাইন এবং নির্মিত হয়েছিল ...
এসওয়েকো

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

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