পদ্ধতি এবং ফাংশন নামগুলিতে "এ", "এ", এবং "দ্য": আপনার কী গ্রহণ? [বন্ধ]


16

আমি নিশ্চিত যে আমাদের মধ্যে অনেকেই একের পর এক পদ্ধতি পদ্ধতির নাম দেখেছেন:

  • UploadTheFileToTheServerPlease
  • CreateATemporaryFile
  • WriteTheRecordToTheDatabase
  • ResetTheSystemClock

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

  • UploadFileToServer
  • CreateTemporaryFile
  • WriteOutRecord
  • ResetSystemClock

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

সুতরাং, আপনি কি "পদ্ধতির নাম যা গদ্য" শিবির মতো পড়েন বা "পদ্ধতির নাম যা আমার অর্থ বোঝায় কিন্তু খারাপ বিদেশী-ভাষা থেকে ইংরেজি অনুবাদ" শিবিরের মতো জোরে জোরে পড়েন?


7
নামগুলির মতো পদ্ধতি আমি কখনও দেখিনি WriteTheRecordToTheDatabase। যদি কেউ এটি যাচাই করে থাকে তবে তারা গুরুতর কথাবার্তা বলবে।
টিম রবিনসন

13
" Please"? বাহ
কনফিগারকারী

3
আমি কেবল যুক্ত করতে চাই যে ওয়ার্ডপ্রেসে টেমপ্লেট সহায়ক ফাংশন রয়েছে যেমন "the_contents ()," "get_the_post ()," ইত্যাদি It
কারসন মায়ার্স

1
@ কারসন মায়ার্স হাহ, এটি এর নিখুঁত বাস্তব-বিশ্বের উদাহরণ। ওয়ার্ডপ্রেস কোড :-)
মাইক স্প্রস

উত্তর:


21

আমি একমত হই যে গদ্যের পদ্ধতিগুলি একটি ব্যতিক্রম সহ স্তন্যপান করবে:

ইউনিট পরীক্ষার কেস

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

  • সংযোজনকারী কাস্টমোর্ডার অর্ডারফেইল যখন কাস্টমার্সআইডিআইআইএনআইটিওয়েলড: ব্যর্থ
  • আউট অফসাউন্ডসপ্রাইস রিটার্নস অ্যানারার: ​​পাস হয়েছে
  • CanDeleteAnEventFromASeason: উত্তীর্ণ

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


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

এটি দরকারী, এবং রায় ওশেরভের প্রস্তাবিত MethodUnderTest_Condition_ExpectedBehaviour ইউনিট পরীক্ষার নামকরণ কনভেনশনে ফিট করে। যেমন AddOrder_WithInvalidCustomerId_Fails, CreateItem_WithOutOfBoundsPrice_ReturnsErrorএবংDeleteEvent_EventExistsInSeason_Succeeds
স্টুপারউসার

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

@ উদ্যানরুল মেলা পয়েন্ট, আমি যথেষ্ট পরিষ্কার ছিল না; .._AdditionFailsএবং .._DeletionSucceedsভাল করা উচিত। আমি পদ্ধতিটির ফলাফলটি রেখেছি, তবে আপনি উল্লেখ করেছেন যে তারা পরীক্ষার পাস / ব্যর্থতার পরিভাষায় বিভ্রান্ত হতে পারে।
স্টুপার ইউজার

10

অফিস স্পেস থেকে লরেন্সকে প্যারাফ্রেজ করতে ...

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


10

এ জাতীয় "দীর্ঘ" নাম গদ্যের মতো শোনা যায় না । যখন একা — সম্ভবত, তবে বাকী কোডটি সহ, তারা কেবল আরও গণ্ডগোল করে। এটা দেখ:

bool ResultOfTheUpload
      = UploadTheFileToTheServerPlease(TheNameOfTheFile, TheServersAddress);

Yuuuuk! ..

এটি বৈধ ইংরেজি পাঠ্য নয় এবং কোনও প্রোগ্রামিং ভাষায় এটির মতো দেখাবে না। সুতরাং নিবন্ধগুলিতে বাইট ব্যয় করার কোনও ধারণা নেই।


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

3
আমি পরামর্শ দিচ্ছিbool ResultOfTheGentlyUploadOfTheFileToTheServer
উইজার্ড 79৯

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

7

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

ইংলিশ ব্যাকরণের চেয়ে বেশি, পাঠযোগ্যতা এবং বোধগম্যতা প্রোগ্রামিংয়ে বেশি গুরুত্বপূর্ণ!


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

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

@ মাইক তারপর আমি পদ্ধতিটি 2 টি ভিন্ন পদ্ধতিতে রিফ্যাক্টর করব;)
গোপি

2

আমার জীবনের বৈশিষ্ট্যগুলি কত টাইপস দিয়েছিল তা দিয়ে শেষ করব

* UploadTehFileToTehServerPleaz
* WriteTehRecordToTehDatabase
* ResetTehSystemClock
* ICanHazTehCheezburger

সিরিয়াসলি, আমি এমনকি আমার ক্লাসের নামটি কী তাও দেখতে চাই। যদি আমার ক্লাসটিকে "ফাইল" বলা হত তবে আমি সম্ভবত সাথে যাব

*UploadToServer
*DownloadFromServer

তাই হবে

   File file = new file;
   file.UploadtoServer(ServerAddress);

একটি তুচ্ছ উদাহরণ, তবে আশা করি এটি যথেষ্ট চিত্রণযোগ্য।


হে হে। আমি "ইংলিশ-জাতীয়" নামকরণের ধরণ অনুসরণ করে পদ্ধতির নামগুলিতে "তেহ" কে আসলে দেখেছি। আপনার দ্বিতীয় বিষয় হিসাবে: আমি সম্পূর্ণরূপে একমত, পদ্ধতিগুলির নামগুলিতে অপ্রয়োজনীয়তা হ'ল আমার আরেকটি পোষা প্রুভ ( File.UploadFileToServer... উঘ)।
মাইক স্প্রস

0

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

এবং আমি এটি বরং "UL_FlToSrv" এর চেয়ে দেখতে চাই।

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