নামকরণের কনভেনশন: উট কেস বনাম আন্ডারস্কোর_ক্যাস? এটা সম্পর্কে আপনার ধারণা কি? [বন্ধ]


70

আমি প্রায় 2 বছর ধরে আন্ডারস্কোর_অ্যাস ব্যবহার করছি এবং নতুন চাকরির কারণে আমি সম্প্রতি উটকেসে স্যুইচ করেছি (প্রায় 2 মাস ধরে পরেরটি ব্যবহার করছি এবং আমি এখনও মনে করি যে আন্ডারস্কোর_সকসই বড় প্রকল্পগুলির জন্য উপযুক্ত যেখানে সেখানে প্রচুর প্রোগ্রামার জড়িত রয়েছে, মূলত কারণ কোডটি পড়া সহজ)।

এখন কর্মস্থলে প্রত্যেকে উট কেস ব্যবহার করে কারণ (তাই তারা বলে) কোডটি আরও মার্জিত দেখাচ্ছে।

আপনি উট কেস বা আন্ডারস্কোর_ক্যাস সম্পর্কে কী ভাবছেন

দয়া করে আমার খারাপ ইংরাজিকে ক্ষমা করবেন

সম্পাদন করা

কিছু আপডেট আগে:

  • ব্যবহৃত প্ল্যাটফর্মটি হ'ল পিএইচপি (তবে আমি পিএইচপি প্ল্যাটফর্ম সম্পর্কিত কঠোর উত্তর প্রত্যাশা করছি না, যে কেউ নিজের মতামত শেয়ার করতে পারে যার উপর ব্যবহার করা সবচেয়ে ভাল হবে, এ কারণেই আমি এখানে প্রথম স্থানে এসেছি)

  • আমি দলে অন্যরকমভাবে উটকেস ব্যবহার করি (আপনার বেশিরভাগ মানুষ যেমন পুনরুদ্ধার করেন)

  • আমরা জেন্ড ফ্রেমওয়ার্ক ব্যবহার করি যা উটকেসের প্রস্তাব দেয়

কিছু উদাহরণ (পিএইচপি সম্পর্কিত):

  • কোডাইনিটার কাঠামোটি আন্ডারস্কোর_কেশের সুপারিশ করে এবং সত্যই কোডটি পড়া সহজ।

  • জেডএফটি উট কেসকে পুনরুদ্ধার করে এবং আমি একাই নন যিনি মনে করেন যে জেডএফ কোডটি অনুসরণ করা আরও কঠিন er

সুতরাং আমার প্রশ্নটি পুনরায় জবাব দেওয়া হবে:

আসুন এমন একটি ক্ষেত্রে আসুন যেখানে আপনার প্ল্যাটফর্ম ফু রয়েছে যা কোনও নামকরণের সম্মেলনের প্রস্তাব দেয় না এবং এটি বেছে নেওয়ার পক্ষে দলের নেতার পছন্দ। আপনি সেই দলনেতা, আপনি উট কেস বা কেন আন্ডারস্কোরকেস বেছে নেবেন?

PS এখন পর্যন্ত প্রম্পট উত্তর জন্য সবাই ধন্যবাদ


6
"সত্যই কোডটি পড়া সহজ" মতামত বা সত্য?
জেডি আইজ্যাকস

9
আইটিহিংকি তারাআরবোথআউটআউট একই একই তবে_আই_থিংক_মিক্সিং_থ্যা_ইস_স্প্যাটিটি_বাবাদ।
ডায়েটবুদ্ধ

7
@ ডায়েটবুদ্ধ: আমি কেবল 'আইটিঙ্ক দ্য অ্যারিবোথআউটআউটআউট'সামের চেয়ে অনেক' দ্রুত 'তবে_আই_থিংক_মিক্সিং_থেম_আইস_স্প্যাটিটি_বাদ' পড়েছি। আমি নিশ্চিত যে বৈজ্ঞানিকভাবে প্রমাণিত হতে পারে। :)
স্টিভেন জিউরিস

@ জন আইজ্যাকস: আমি (আন্ডারকেস প্রবক্তার হিসাবে) রিপোর্ট করে দুঃখ প্রকাশ করছি যে একটি গবেষণায় এই সিদ্ধান্তে উপনীত হয়েছে যে "উট কেসিং প্রশিক্ষণ ছাড়াই সকল বিষয়ে উচ্চতর নির্ভুলতার দিকে পরিচালিত করে"
স্টিভেন জিউরিস

IWonderWhetherReadingEnglishWrittenInOneStyleVersusAnotherMakesMuchDifference। InTheEnd, IFindThatNeitherIsVeryGoodAtBeingEasyToRead। It_screws_horribly_with_line_length_and_makes_even_the_simplest_thing_complicated। I_wonder_whether_there_would_be_language_support_in_the_future_for_quoted_variable_names। "এটি উট কেস বা আন্ডারস্কোর_সেপারেটরগুলির চেয়ে আমার মতে অনেক বেশি অর্থবোধ করবে"।
ক্রিস্টোফার মাহান

উত্তর:


84

আমি সম্মত হই যে এটি আপনি কিছুটা ভাষা ব্যবহার করছেন সেই ভাষার উপর নির্ভর করে; কোডটি আরও কম দেখায় যখন আপনার প্রতীক নামগুলি ভাষার অন্তর্নির্মিত এবং স্টক লাইব্রেরির মতো একই ফর্ম্যাটিং পদ্ধতি অনুসরণ করে।

তবে যেখানে একটি পছন্দ আছে, আমি একটি সহজ কারণের জন্য উটের ক্ষেত্রে আন্ডারস্কোর পছন্দ করি: আমি সেই স্টাইলটি পড়তে সহজ মনে করি। এখানে একটি উদাহরণ দেওয়া হল: কোনটি আপনি বেশি পঠনযোগ্য বলে মনে করেন? এই:

aRatherLongSymbolName

অথবা এটা:

a_rather_long_symbol_name

আমি আন্ডারস্কোর সংস্করণটি পড়তে অনেক সহজ মনে করি। আমার মস্তিষ্ক আরো অনেক কিছু সহজেই আন্ডারস্কোর উপেক্ষা করতে পারেন তুলনায় এটি উট ক্ষেত্রে ছোট হাতের / বড় হাতের সীমানা সনাক্ত করা সম্ভব, বিশেষ করে যেখানে সীমানা গ্লিফ যে বিপরীত মামলার অন্যান্য গ্লিফ সেটির মতো, বা সংখ্যা (মাঝে হতে I/l, O/0, t/I, ইত্যাদি)। উদাহরণস্বরূপ, এই বুলিয়ান ভেরিয়েবল একটি মান সংরক্ষণ করে যা ইগলু যথাযথ পরিকল্পনার অনুমতি নিয়ে নির্মিত হয়েছে কিনা তা নির্ধারণ করে (নিঃসন্দেহে আমাদের সকলের জন্য একটি সাধারণ ব্যবহারের ক্ষেত্রে):

isIllicitIgloo

আমি এই সংস্করণটি পড়তে অনেক সহজ মনে করি:

is_illicit_igloo

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


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

11
প্রথমটির জন্য, আমি প্রকৃতপক্ষে উটকেস পড়তে আরও সহজ পেয়েছি - যদিও পরবর্তীটি স্পষ্টতই আলাদা।
ফোশি

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

17
আমি টাইপিং আন্ডারস্কোরগুলি ঘৃণা করি ।
এপসিলনেক্টর

6
"ব্যবহারযোগ্যতা" পয়েন্টটি এটির জন্য অপ্রাসঙ্গিক। কোড সাধারণত এক ব্যক্তি দ্বারা একবার লেখা হয় তবে আসুন 1-10 বারের ক্রম হিসাবে কিছু সম্পাদনা এবং সম্ভাব্য জুটি প্রোগ্রামিংয়ের জন্য অ্যাকাউন্টিং করুন। তবে কোড সাধারণত এক বা সম্ভাব্য বহু লোক দ্বারা ডজন / শত / হাজার হাজারবার পড়েন। সুতরাং কোড সহজেই পড়তে সহজ করা কোডটি সহজভাবে লেখার চেয়ে আরও অনেক বেশি গুরুত্বপূর্ণ।
hlovdal

97

আমি মনে করি আপনার প্ল্যাটফর্ম দ্বারা গৃহীত নামকরণের কনভেনশনটি ব্যবহার করা উচিত। আন্ডারস্কোর_বেস সি # কোডে অদ্ভুত দেখাবে, যেমন রুবিতে উট কেস =)


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

1
সম্পুর্ন একমত. আমি কেবল মনে করি পরিবর্তে কাস্টমগুলির পরিবর্তে প্ল্যাটফর্ম কনভেনশন ব্যবহার করা ভাল, কারণ উদাহরণস্বরূপ দলে নতুন ছেলেরা এতে আরও স্বাচ্ছন্দ্য বোধ করবে।
আলেক্সি আনুফ্রিয়েভ

2
তবে আমাদের জন্য দুর্ভাগ্য যে দুটি কনভেনশন নিয়ে দুটি প্ল্যাটফর্মে কাজ করে, যেখানে কেউ কেউ পছন্দ করেন এবং কেউ কেউ অন্যটিকে পছন্দ করেন!
মাইকেল কে

প্ল্যাটফর্মটিতে যদি দুটি কনভেনশন থাকে তবে আমি সমস্ত দলের সদস্যদেরকে কনভেনশন করার পক্ষে ভোট দিতে বলব =)
আলেক্সি আনুফ্রিয়েভ

20

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


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

20

জন আইজ্যাকসের জবাবের ভিত্তিতে:

"সত্যই কোডটি পড়া সহজ" মতামত বা সত্য?

আমি কিছু গবেষণা করার সিদ্ধান্ত নিয়েছি এবং এই কাগজটি খুঁজে পেয়েছি । এই বিষয়ে বিজ্ঞানের কী বলতে হবে?

  1. আন্ডারস্কোরের তুলনায় উটের কেসিংয়ের নির্ভুলতার বৃহত্তর সম্ভাবনা রয়েছে । (মতভেদ 51.5% বেশি)
  2. গড়ে, উটের ক্ষেত্রে 0.42 সেকেন্ড বেশি সময় লাগে , যা 13.5% দীর্ঘ।
  3. শৈলী কিভাবে নির্ভুলতা প্রভাবিত করে তার উপর প্রশিক্ষণের কোনও পরিসংখ্যানগতভাবে গুরুত্বপূর্ণ প্রভাব নেই।
  4. সঙ্গে যারা প্রশিক্ষণ দ্রুততর ছিল উটের ক্ষেত্রে শৈলী শনাক্তকারী উপর।
  5. এক শৈলীতে প্রশিক্ষণ, অন্যান্য শৈলীর সন্ধানের সময়টিকে নেতিবাচকভাবে প্রভাবিত করে

বিষয়টিতে আমার ব্লগ পোস্টে আমি বৈজ্ঞানিক কাগজ পর্যালোচনা করি, এবং নিম্নলিখিত উপসংহারটি করি।

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

আমি আগ্রহী যে এই নিবন্ধটি কীভাবে তাদের মতামত পরিবর্তন করতে পারে। :)


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

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

11

স্মার্টস্ট ছেলেরা কপি করুন

প্রোগ্রামিং ভাষার ক্ষেত্রে ভাষার বিকাশকারীদের স্টাইলটি অনুলিপি করুন।

উদাহরণস্বরূপ আমি সি কোড করি ঠিক তেমন কে ওআরআর তে করা হয়।

তারপরে যখন কেউ বোরিং কোডিং শৈলীর কথোপকথন শুরু করার চেষ্টা করে, আমি তাদের বলতে পারি "ডেনিস রিচের সাথে এটি নিয়ে আসুন এবং তিনি কী বলছেন তা আমাকে জানান।"


12
আসল সর্বদা সেরা হয় না। সি সম্পর্কিত কেঅ্যান্ডআর গসপেল বইটিতে অনেকগুলি খারাপ অভ্যাস রয়েছে যা এর আগে শিখা যুদ্ধ শুরু হওয়ার আগে ... মিশ্রার কয়েকটি প্রস্তাবনা পড়ুন।
দ্রুত_ এখন

10
ভুলে যাবেন না, যখন জিইউআই-আইডিই নেই তখন কেএন্ডআর লেখা হয়েছিল। বেশিরভাগ কাজ 80x25 অক্ষর টার্মিনালে করা হয়েছিল, সুতরাং স্ক্রিনের স্থানটি একটি প্রিমিয়ামে ছিল, if (...) {একটি লাইন সংরক্ষণ করেছিল! এই দিনগুলিতে, আরও পর্দার জায়গা রয়েছে - হাই-রেজো জিওআই আইডিই এবং একাধিক মনিটরের সেট আপ সহ আজকে কি লিখলে কে অ্যান্ডআর আলাদা হবে?
Skizz

3
হ্যাঁ, তবে কেউ যখন বলেছেন যে তারা কে & আর এর মতো সি কোড করেন, তারা পুরানো-স্কুল হওয়ার জন্য প্রপস পান।
ক্রিস্টোফার মাহান

3
@ চটজলদি_ এখন, ডেনিস রিচির সাথে এটি আনুন এবং তিনি আমাকে যা বলেছিলেন তা আমাকে জানান!
মার্ক হ্যারিসন

আমি এমএস থেকে প্রচুর ফর্ম্যাটিং গ্রহণ করি: _ ইনটার্নাল টো ক্লাসঅনালি, অ্যাক্সেসযোগ্যবিগেটর, পাবলিক ভেরিয়েবল।
IAbstract

10

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

এটি বলেছিল, যখন আপনি তিনটিঅর্ডারওয়ার্ডস ছাড়িয়ে যান, বা আপনি যদি এক্সএমএলফোর্ডএক্সেম্পল জাতীয় মত ব্যবহার করেন তবে এটি এতটা পঠনযোগ্য হয়ে যায়।

এজন্য ইমাক্স আমাদের চশমা-মোড দেয়।


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

ঠিক আছে, চশমা-মোড কি?
মার্কি


8

ক্যামেলকেস

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

অবশ্যই ধরে নেওয়া যায় যে প্রকল্পটি একটি বিদ্যমান স্ট্যান্ডার্ড কোডবেসটির সাথে আলাদা স্ট্যান্ডার্ড তৈরি করে না।


আমি এর সাথে একমত নই, আপনি কোডটি একবার লিখেছেন, তবে আপনাকে পরে এটি একাধিকবার পড়তে হবে
রোমান পেকার

7

এটি একটি আকর্ষণীয় প্রশ্ন, আমি এটি নিয়ে অনেকবার চিন্তা করেছি। তবে এর কোন সুনির্দিষ্ট উত্তর নেই বলে আমি মনে করি।

"সাংস্কৃতিক" সম্মেলনগুলি অনুসরণ করা এটি একটি ভাল পছন্দ। এই ক্ষেত্রে "সাংস্কৃতিক" অর্থ দল / সংস্থায় স্থাপন করা সম্মেলনগুলি এবং তারা মূলত ভাষা / প্ল্যাটফর্মের সম্মেলনগুলিও বহন করে। এটি অন্যকে আপনার কোডটি সহজেই পড়তে / ব্যবহার করতে সহায়তা করে এবং আপনার কোড বোঝার পথে অতিরিক্ত প্রচেষ্টা এবং সময় প্রয়োজন হয় না।

কখনও কখনও এটি স্বীকৃত স্বীকৃতিগুলি ভাঙ্গা আকর্ষণীয়। আমার একটি ছোট প্রকল্প (পাইথন-এ) আমি underscored_namesইউটিলিটি ফাংশন / "সুরক্ষিত" পদ্ধতিগুলির methodNamesজন্য এবং জাভা-শৈলীর জন্য ব্যবহার করি। আমার দল এতে খুশি হয়েছিল :)


6

প্রোগ্রামিং ভাষার উপর নির্ভর করে।

আমি হাঙ্গেরীয় স্বরলিপি ব্যবহার করব কিনা তা একই নৌকায় কেসটি ব্যবহার করার বিষয়টি বিবেচনা করি:

  • পাইথন: আন্ডারস্কোর_কেস, কোনও হাঙ্গেরিয়ান স্বরলিপি নেই
  • সি ++: উটকেস, হাঙ্গেরিয়ান স্বরলিপি

8
@ কেভিন ক্যান্টু: আসলে জাভাস্ক্রিপ্ট নামটি উটকেসের চেয়ে বরং পাস্কেলকেসে রয়েছে ...
গুফা

1
@ গুফা: টাচé!
কেভিন কেন্টু

2
@ কেভিন কেন্টু: জাভাস্ক্রিপ্টে: XMLHttpRequest<- আমি এই নামটি একটি আবেগের সাথে ঘৃণা করি।
থানাটোস

1
হাইপোথেটিকাল রেজনসন টুকু রেডমন্ড.পুশ (এক্সএমএলএইচটিপিআরকোয়েস্ট)
কেভিন ক্যান্টু

4
@ লিওনেল: আসলে সি ++ ইতিমধ্যে আপনার প্রকারগুলি পরীক্ষা করে যেহেতু হাঙ্গেরিয়ান স্বরলিপি প্রায়শই সি ++ তে ব্যবহৃত হয় না। এটি অন্য যে কোনও কিছুর চেয়ে historicalতিহাসিক নিদর্শন।
সিলিকোতে

6

উভয়!

আমি CakePHP উন্নয়ন অনেক কাজ, এবং আমি হয় ব্যবহার CamelCaseবা $underscored_varsনিম্নলিখিত ফ্যাশন (এমনকি CakePHP প্রকল্প বাইরে) মধ্যে:

  1. ফাইলের নাম - /lowercased_underscored.phpসাধারণ, তবে উল্লেখযোগ্য।
  2. ক্লাস - class CamelCase extends ParentObject। দ্রষ্টব্য, ব্যবহার করার সময় CamelCase, প্রাথমিক অক্ষর ছোট হাতের নয়। আমি camelCaseদেখতে সত্যিই অদ্ভুত দেখাচ্ছে।
  3. ভেরিয়েবল -$are_variables_underscored === TRUE;
  4. উদাহরণগুলি ধারণ করে এমন ভেরিয়েবলগুলি -$CamelCase = new CamelCase();
  5. অ্যারে কী -$collection['underscored_keys'];
  6. ধ্রুবক - আমি মনে করি প্রত্যেকেই একমত হতে পারে যে ধ্রুবক হওয়া উচিত ALL_CAPS_AND_UNDERSCORED
  7. পদ্ধতি -$CamelCase->foo_method_underscored();
  8. স্থির পদ্ধতি -CamelCase::just_like_regular_methods();

3
আপনার সাথে একমত হতে হবে, প্রথম চরিত্রটি লোয়ার কেস হওয়ার কারণে আমাকে পাগল করে তোলে! আমি আবেগের সাথে উটকেসকে ঘৃণা করি।
এইচএলজিইএম

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

5

আমি ব্যক্তিগতভাবে পছন্দ করি underscore_caseকারণ আমি এটিকে আরও পঠনযোগ্য বলে মনে করি তবে অন্যান্য উত্তরদাতাদের সাথে সম্মত হন যারা উল্লেখ করেন যে বিদ্যমান কোডবেসের সাথে ধারাবাহিকতা অনেক বেশি গুরুত্বপূর্ণ।

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

অতীতে আমরা ব্যবহার Windows এ সি কোড লেখেন underscore_case, এবং বলা PascalCaseWin32 ফাংশন:

if (one_of_our_conditions_is_true())
{
    call_one_of_our_functions();
    CallSystemFunction();
}

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

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


5

আমি খুব সহজেই ডিলানের কেবলমাত্র-সাধারণ-ড্যাশ-হিসাবে-তারা-সহজে-সহজে-সহজে-টাইপ-তে-সহজে-সহজেই পড়তে পছন্দ করি।

মত

result-code := write-buffer(file-stream, some-string)

তবে আমি অনুমান করি যেহেতু এই ভাষাটি মোটামুটি অস্পষ্ট, এটি এক প্রকারের অফ-টপিক ... :(


3
আন্ডারস্কোর টাইপ করার জন্য শিফট টিপতে আমিও ক্লান্ত হয়ে পড়েছি।
গৌথিয়ার

8
পরিবর্তনশীল নামের পক্ষে এটি সাধারণত সম্ভব নয়, যেহেতু সাধারণত "-" এর অর্থ বিয়োগ হয়।
এরিক উইলসন

4

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


4
ভাল আপনি কোথাও পড়া সহজ এটি সহজ নয়, এটি আপনার সাথে কাজ করা প্রথমটি ছিল এবং এটিতে আপনি আরও বেশি অভ্যস্ত হন বলে বেকোস করা সহজ, উদাহরণস্বরূপ আমি আন্ডারস্কোর_কেসে আরও আরামদায়ক।
পোলিংকা

1
যেমনটি আমি পড়েছি যে একটি সমীক্ষা করা হয়েছিল এবং এটি আরও ভাল হতে পারে ..
রস

4

বেশিরভাগ লোক যেমন উল্লেখ করেছেন - বিদ্যমান মানটি ব্যবহার করুন। যদি এটি কোনও নতুন প্রকল্প হয় তবে আপনি যে ভাষা এবং ফ্রেমওয়ার্ক ব্যবহার করবেন তার মান ব্যবহার করুন।

এবং বিভ্রান্ত হবেন না, এটি পাঠযোগ্যতার বিষয়ে নয় (যা বিষয়গত) এটি ধারাবাহিক এবং পেশাদার হওয়া সম্পর্কে। অসংখ্য 'স্ট্যান্ডার্ড' সহ যে কেউ কোডবেসে কাজ করেছেন সে বুঝতে পারবে।


4

আমি মাঝে মাঝে একটি মিশ্রণ ব্যবহার করি: মডিউল_ফাংশননাম। আমার মডিউলগুলিতে সমস্ত (অ স্থির) ফাংশন মডিউল সংক্ষেপণের সাথে শুরু হয়।

উদাহরণস্বরূপ, আই 2 সি বাসে একটি বাফার সামগ্রী প্রেরণের জন্য একটি ফাংশন:

i2c_BufferSend()

বিকল্প i2c_buffer_sendউপসর্গ এবং ফাংশন নামের মধ্যে একটি বড় যথেষ্ট পৃথকীকরণ দেখায় না। i2cBufferSendউপসর্গটিতে খুব বেশি মিশ্রিত হয় (এই মডিউলে বেশ কয়েকটি I2C ফাংশন রয়েছে)।

i2c_Buffer_send যদিও বিকল্প হতে পারে।

আমার উত্তরটি হ'ল যে আপনি আপনার প্রকল্পের (আপনার ভাষা, আপনার এসডাব্লু আর্কিটেকচার, ...) সবচেয়ে ভাল কাজ করে তার সাথে নিজেকে খাপ খাইয়ে নিয়েছেন এবং আমি উল্লেখ করতে চেয়েছিলাম যে এই শৈলীর মিশ্রণ কার্যকর হতে পারে।

myGeneralOpinionIsThatNamesAreMuchHarderToReadInCamelCase। I_respect_the_fact_that_some_could_think_otherwise_but_I_do_not_really_understand_why।


1
সর্বশেষ 2 লাইনের জন্য +1, তবে আমি নামকরণের কনভেনশনগুলিকে একত্রিত করে আমি আপনাকে পুনরুদ্ধার করব না, আপনার একটি বা অন্যটির সাথে থাকা উচিত।
পোলিংকা

যতক্ষণ কনভেনশনটি সুস্পষ্টভাবে সংজ্ঞায়িত হয় (উপসর্গ + আন্ডারস্কোর + পাসকেলকেস) ...
গৌথিয়ার

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

4

ব্যক্তিগতভাবে আমি উটকেস পছন্দ করি তবে কিছু ফন্টে আমি মনে করি আন্ডারস্কোরগুলি পড়া সহজ।

আমি প্রস্তাব দিচ্ছি যে আপনার যদি ভেরিয়েবলের সেটগুলি পৃথক করতে উপসর্গগুলি ব্যবহার করতে হয় তবে আপনার এমন একটি ভাষা ব্যবহার করা উচিত যা আপনাকে নাম স্থান বা অবজেক্ট বা কিছু তথ্য তৈরি করতে দেয়।

myName   = 7
bobsName = 8   // :(

me.name  = 7
bob.name = 8   // :D

তেমনিভাবে, যদি আপনার প্রকারভেদগুলি আলাদা করতে হয় তবে তাদের এমন ভাষা ব্যবহার করবেন না কেন?

var intThingy = 7; // :(

int thingy = 7;    // :)

একবার আপনার কাছে এটি সোজা হয়ে গেলে, আপনি কেবল নামটি মেটা-ডেটা হিসাবে ব্যবহার করছেন না, তারপরে আপনার এত দীর্ঘ নাম থাকবে না যে আপনি সেই অতিরিক্ত কীপ্রেসটি পছন্দ করেন বা না চান তা এটি খুব বেশি গুরুত্বপূর্ণ।


1
উট কেস বা আন্ডারস্কোর_কেস ব্যবহার করার অন্যতম কারণ হ'ল এটি কী তা বোঝার জন্য আমার কাছে বস্তুর সংজ্ঞাটি খুঁজে পাওয়ার দরকার নেই।
জোশুয়া শেন লিবারম্যান

2

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

আপনার পরবর্তী কাজটি করতে হবে, আপনি যে ভাষায় লিখছেন তার জন্য নামকরণের নিয়ম নামকরণ inst ইনস্টনেসের জন্য আমার সি ++ কোডটি অবশ্যই পাইথনের জন্য আলাদা কিছু দেখতে পাবেন (পিইপি 8 এখানে একটি দুর্দান্ত গাইড)

আপনি বিভিন্ন বিষয় উল্লেখ করতে বিভিন্ন নামকরণের কনভেনশনও ব্যবহার করতে পারেন, আপনি যতটা সম্ভবত কনস্ট্যান্টগুলির জন্য UPPER_CASE ব্যবহার করেন (এটি অবশ্যই কিছু নির্দিষ্ট ভাষার ক্ষেত্রে প্রযোজ্য), আপনি স্থানীয় ভেরিয়েবল নামের জন্য এই স্টাইলটি ব্যবহার করতে পারেন, যেখানে আপনি উদাহরণস্বরূপ / সদস্যের জন্য উট কেস ব্যবহার করেন ভেরিয়েবল। এই প্রয়োজন নাও হতে পারে আপনি এই ধরনের এখানে কিছু আছে selfবা thisঅবশ্য।

হালনাগাদ

আপনার যেমন প্ল্যাটফর্ম ফু ফু ডাইনি কোনও নামকরণ কনভেনশন পুনরুদ্ধার করে না এমন একটি মামলা নেওয়া যাক এবং এটি বেছে নেওয়ার পক্ষে দলের নেতার পছন্দ। আপনি সেই টিম লিডার, আপনি উট কেস বা কেন আন্ডারস্কোর_কেন্দ্র বেছে নেবেন।

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

খুব অনুরূপ বিষয়ে অ্যালেক্স মার্তেলিকে উদ্ধৃত করতে:

অবশ্যই, আমি প্রতিটি ব্লকের শেষে নিখুঁত "প্রান্ত" টাইপ করার ক্ষেত্রে রুবিতে ক্লান্ত হয়ে পড়েছি (কেবল বিনা অনিবার্যতার চেয়ে) - তবে আমি সমান-নির্বোধ ':' টাইপ করা এড়াতে পারি যা পাইথনটিতে প্রয়োজন শুরু প্রতিটি ব্লক, যাতে প্রায় একটা ধোয়ার :-)। অন্যান্য সিনট্যাক্স পার্থক্য যেমন '@ফু' বনাম 'সেলফুফু', বা রুবি বনাম পাইথনের মামলার উচ্চতর তাত্পর্য আমার কাছে প্রায় অপ্রাসঙ্গিক।

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

উৎস

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


2

আমি বেশ কয়েক বছর আগে পড়েছিলাম যে প্রথম প্রোগ্রামার হিসাবে ইংরেজী বলতে না এমন প্রোগ্রামাররা আন্ডারস্কোর কেসটি সহজেই উটের ঘটনাটি বোঝার ঝোঁক খুঁজে পায়-তবে আমি রেফারেন্সটি খুঁজে পাই না এবং এটি সত্য কিনা আমার কোনও ধারণা নেই।


2

আমি জাভা, পাইথন, সি ++ এর মতো প্রোগ্রামিং ভাষার জন্য, আমি একটি পরিষ্কার ফর্ম্যাট গ্রহণ করেছি:

  • ClassNamesArePascalCase
  • methodNamesAreCamalCase
  • variable_names_are_underscore
  • CONSTANT_VARIABLES_ARE_CAPITAL_VARIABLES

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

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

আপডেট :

আমি তখন থেকে ব্যক্তিগত ভেরিয়েবলগুলি অন্তর্ভুক্ত করতে এই বিধিগুলি প্রসারিত করতে ব্যবহার পেয়েছি। - _প্রাইভেট_ভেরিয়েবল_নাম_এক_প্রিফিক্সড_ও_আন_ফাউন্ডস্কোর - _PRIVATE_CONSTANT_VARIABLES_ARE_PREFIXED_WITH_AN_UNDERSCORE

জাভাতে, এর অর্থ হ'ল ব্যক্তিগত ক্ষেত্রগুলি স্থানীয় ভেরিয়েবলের চেয়ে পৃথক নেমস্পেসে সংজ্ঞায়িত হয়, যার অর্থ আপনি this.ব্যক্তিগত ক্ষেত্রগুলিতে এড়িয়ে যেতে পারেন । অন্যান্য ফর্ম্যাটগুলি আমি " m" এর সাথে উপসর্গ দেখেছি , তবে সেই ফর্ম্যাটগুলি ভেরিয়েবল নামের জন্যও উটকেস ব্যবহার করে। এটাও আমাকে ক্ষেত্র শুধুমাত্র বর্গ দ্বারা অভ্যন্তরীণভাবে অ্যাক্সেস করা উচিত (এবং এটি তৈরি মধ্যে একটি পার্থক্য করতে পারবেন সুপার যখন বাইরে ঘটছে বর্গ স্পষ্ট object._field_xদাঁড়িয়েছে আউট)।


1

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

এখন, আমি যে কনভেনশনটি অনুমান করি তার মূল যুক্তি হ'ল আপনি জানেন যে কোনও ফাংশন / ভেরিয়েবল নামের ফর্ম্যাটটি কী এবং এটি সন্ধান করার দরকার নেই - এটি কি লোডএক্সএমএল ফাইল, লোড এক্সএমএল ফাইল, লোড এক্সএমএল ফাইল, লোড_এক্সএমএল_ফাইল? এখন, আমি "যুক্তিযুক্ত স্টাইলের স্বতঃপূরণ সমর্থন করে এমন একটি IDE পান!" বলে এই যুক্তিটি মোকাবিলা করব! (যদিও সবসময় সম্ভব নয়)।

যদিও শেষ পর্যন্ত, আপনি কী স্টাইলটি বিচুসটি সংকলক / সংজ্ঞাদাতা ব্যবহার করেন তা সত্যিই গুরুত্ব দেয় না। নামটি কার্যকর হ'ল গুরুত্বপূর্ণ:

NumberOfPrisonersReleasedByAccident
manufacturer_name
distance_EarthToMoon

তিনটি ভিন্ন শৈলী, তবে আপনি প্রত্যেকে যা করেন ঠিক তা জানেন।


1
আমি আলাদা করতে অনুরোধ করছি, উত্সের উপস্থিতি গুরুত্বপূর্ণ। "প্র্যাকমেটিক প্রোগ্রামার" এর ভাঙা উইন্ডোজ তত্ত্বটি দেখুন। বিভিন্ন নামকরণের কনভেনশন চেহারা আরও খারাপ করে তোলে। pragprog.com/the-pragmatic-programmer/extracts/software-entropy
Gauthier আপনি

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

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

0

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


0

আমি আমার বেশিরভাগ বিকাশ Eclipse (জাভা, পিএইচপি এবং জাভাস্ক্রিপ্টের জন্য) এর বোকা কারণেই উটকেস পছন্দ করতে চাই এবং যখন আমি Ctrl+ বা Ctrl+ শব্দের মাধ্যমে আসি , এটি আসলে উটকেস সীমানায় থামে।

অর্থাৎ, myIntVariable3 শব্দ হিসাবে Eclipse দ্বারা চিকিত্সা করা হবে যখন Ctrl+ ← →'এটা মাধ্যমে ing।

আমি জানি এটি একটি অদ্ভুত কৌতুক, তবে আমি নিজেকে একটি উটকেসের নামে মাঝের শব্দগুলি সম্পাদনা করতে সক্ষম হতে পছন্দ করি।

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