নামকরণ কি কনভেনশন নির্দেশিকা যত্নশীল?


13

। নেট কনভেনশনগুলি ব্যবহার করে আমি আমার চলকগুলির নাম রাখি:

  • ভেরিয়েবল এবং ক্ষেত্রগুলির জন্য ক্যামেলকেস (আমি একটি শ্রেণিতে ব্যক্তিগত ক্ষেত্রের জন্য _camelCase ব্যবহার করতে পারি)
  • পদ্ধতি, বৈশিষ্ট্য এবং ক্লাসের জন্য পাস্কেলকেস

আমি বিচ্যুত একমাত্র জায়গাটি ধ্রুবক এবং এনামগুলিতে যেখানে আমি আসলে জাভা স্ক্রিইমিং_সিএপিএস শৈলী পছন্দ করি।

আমার সংস্থার কোডবেস সিবি-হাঙ্গেরিয়ান নোটেশন শৈলীতে ভিবি 6 এবং ভিবিএস স্ক্রিপ্ট দ্বারা লিখিত রয়েছে, যদি পুরো বিকাশযুক্ত হাঙ্গেরীয় না হয়

  • স্ট্রিংসের জন্য s বা str
  • আই বা ইনটসের জন্য ইনট
  • দশমিকের জন্য d (বা কখনও কখনও দ্বিগুণ)
  • o বা যে কোনও ধরণের অবজেক্টের জন্য আপত্তি

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

আমি কি এই বিষয়ে একটি শৈল থেকে একটি পাহাড় তৈরি করছি? কোডটি রিলান্ডান্ট আইডেন্টিফায়ারগুলির সাথে বর্ণনামূলক বর্ণনামূলক নাম নয় এবং নিজের মতো ব্যবহার করা চালিয়ে যাচ্ছি এবং স্ট্যান্ডার্ড হওয়ার জন্য চাপ দিচ্ছি কিনা আমার কি যত্ন নেওয়া উচিত নয়?


2
ভাল প্রশ্ন. নামকরণের কনভেনশনগুলি বাধা দেওয়ার জন্য নয়, সহায়তা করার জন্য রয়েছে। যখন তারা বাধা দেয় (কারণ তাদের আসল উদ্দেশ্যটি আর প্রাসঙ্গিক নয়) তখন তাদের খনন করুন।
গ্যারি রোয়ে

উত্তর:


7

আপনার কেবলমাত্র যত্ন নেওয়া উচিত তা হ'ল আপনি এমন একটি দলে কাজ করছেন যেখানে লোকেরা কিছুটা পরিষ্কার করার বিষয়ে চিন্তা করে না। এটা খুব দুঃখজনক।

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

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


+1 আজকাল রিফ্যাক্টর পুনর্নামকরণ এতটাই দক্ষ যে আপনি পরিবর্তনটি করার প্রভাবটি খুব কমই লক্ষ্য করবেন।
গ্যারি রোয়ে

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

3

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

এটি একটি প্রযুক্তিগত debtণ সংক্রান্ত প্রশ্ন, কারণ আপনি স্পষ্টভাবে সঠিক যে এই স্টাইলের হাঙ্গেরিয়ান। নেট সম্পর্কে কোনও ধারণা রাখে না ("I" এর সাথে ইন্টারফেস বাদ দিয়ে তবে অন্য সময়ের জন্য অপেক্ষা করবে), তবে এটি এই ধরণের হতে পারে প্রযুক্তিগত debtণ আপনার দল প্রাকৃতিকভাবে হ্রাস না হওয়া অবধি তার সাথে বাঁচতে পারে


4
আমি এমনকি "আমি" উপসর্গের জন্যও যত্ন নিই না, এবং কেবল এটি ব্যবহার করি কারণ এটি জাভা কনড্রাম, বলা, একটি ইন্টারফেসযুক্ত CustomerRepositoryএবং শ্রেণিটি CustomerRepositoryImplবা অনুরূপ হওয়া এড়ানো যায় ।
ওয়েন মোলিনা

3
+1 - এটির থেকে আরও ভাল কোনও উপায় থাকা উচিত বলে মনে হয়। আমি সময়ে সময়ে "হাঙ্গেরিয়ান লাইট" ব্যবহার করি তবে উপসর্গগুলি সর্বদা ব্যবসায় সম্পর্কিত, প্রকার সম্পর্কিত নয়। উদাহরণস্বরূপ, অ্যাকাউন্টিংয়ের প্রতিটি কিছুর একটি এপি এবং একটি এআর পাশ থাকে এবং তাদের প্রায়শই একই নাম থাকে, যেমন চালান। একটি এআরআইএনভিয়েস এবং একটি APInvoice থাকা আমার কাছে পুরোপুরি যুক্তিসঙ্গত বলে মনে হয়। হাঙ্গেরিয়ান সব সময় সব খারাপ নয়।
মরগান হের্লোকার


আমি সত্যিই যে "হাঙ্গেরীয় স্বরলিপি" বিবেচনা না কারণ হিসাবে আপনি বলেন, এটি একটি ব্যবসা একটি ভাল-সংজ্ঞায়িত সংক্ষেপ যে মানুষ চেনেন তাদের সাথে অর্থ, যে ব্যবহারসমূহ এক্সএমএল প্রিফিক্স কোড থাকার একই লাইন বরাবর Xmlপরিবর্তে ExtensibleMarkupLanguage। অ্যাকাউন্টিং মডিউলে আমি আশা করি যে চালানের জিনিসগুলি যেমন arInvoiceএবং apInvoiceএটি ব্যবসায়ের প্রসঙ্গটি প্রকাশ করে তবে দেখতে objArInvoiceবা oApInvoiceকেবল নির্বোধ আইএমও হয়। আমার ধারণা এটি আরও খারাপ হতে পারে, এটি clsApInvoiceপ্রকৃত শ্রেণির নামের
ওয়েন মোলিনা

1
@ আইরোনকোড: এটি হ'ল অ্যাপস হাঙ্গেরিয়ান নোটেশন, বনাম সিস্টেমগুলি হাঙ্গেরীয় নোটেশন এবং এটি আরও ভাল। দুর্ভাগ্যক্রমে বেশিরভাগ লোকেরা সিস্টেমগুলি ব্যবহার করছে। en.wikedia.org/wiki/…
মিকি ওয়াটস

2

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

  • আরও বিস্তৃতকরণকে উত্সাহিত করুন (খ) ওল (চ) লোট (সি) হার (এল) ওং (গুলি) হর্ট (স্ট্রিংয়ের সাথে বিরোধগুলি? ন:: (এস) ট্রাইং), (ভি) ওআইডি।
  • এনকোডিংটি দৃশ্যমানতাটিকে উত্সাহিত করুন। আমি জাভাল্যান্ড থেকে এসেছি এবং আশা করি এটি নেট নেট অনুসারেও ফিট করে: (প্রি) ভেট, (পাব) ব্লিক, (প্রো) ট্র্যাক্টড (ডিএফ) অল্ট ব্যবহার করা উচিত।
  • .net চূড়ান্ত / কনস্ট্যান্ট আছে? এটি একটি উপসর্গ করুন! আমি কি 'অস্থির' শুনতে পাচ্ছি?
  • কেন int এবং দীর্ঘ একটি উপসর্গ প্রয়োজন, কিন্তু বিভিন্ন বস্তু না? এটা যৌক্তিক নয়। একটি সংক্ষেপে.tab তৈরি করুন। যেখানে প্রতিটি নতুন অবজেক্টের একটি আলাদা সংক্ষিপ্তসার পাওয়া যায়।
  • ভেরিয়েবলগুলি যা নাল এবং এ জাতীয় হতে পারে, যা কখনই শূন্য হওয়া উচিত নয়, এটিও উপস্থাপিত হতে পারে। চালাক লোকেরা পুরো ডিবিসি একটি ভেরিয়েবলের উপসর্গের মধ্যে রাখে।

সিরিয়াসলি: রিফ্যাক্টরিংয়ের সময়, আপনি স্ট্রিং থেকে চরে অবধি দীর্ঘ থেকে পরিবর্তনশীল পরিবর্তন করতে পারেন। আপনারও নাম পরিবর্তন করার দরকার নেই।

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

অতিরিক্ত অক্ষরগুলি ভেরিয়েবলের সিনমেটিককে বিরক্ত করে। একটি পূর্ণসংখ্যার 'সান' 'i_sane' পায়, যা দেখতে আরও বেশি 'পাগল'-এর মতো।

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

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


দুঃখের বিষয় আমি eSomeEnumজায়গাগুলিতেও ব্যবহার করতে দেখেছি ; ধন্যবাদ প্রায়ই না।
ওয়েন মোলিনা

2

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


1

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

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

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


1

পুনঃ-নামকরণের পরিবর্তনশীলগুলির সাথে পরিবর্তনশীলগুলি এত দ্রুত হয় যে আমি অসুস্থ বিবেচিত নামকরণের কনভেনশনগুলিকে এত তাড়াতাড়ি পূর্বাবস্থায় ফিরিয়ে দিতে পারি, যাতে আমাকে পুরানো, ভুল মাথা উঁচু কনভেনশনগুলি ছেড়ে যেতে হবে না।

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


0

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


0

আমার বিচ্যুতি:

  • _PublicPropertyBacker
  • _private_property_backer
  • _privateMember
  • CONSTANT_MEMBER
  • privateFunction
  • param_
  • প্রাইভেট বাটন OkBU; // ইত্যাদি। 3 অক্ষর সীমাবদ্ধ করুন
  • পিনভোক স্ট্রাক্টের জন্য <<<<<<<<<<

জেনেরিক কোড অঞ্চল এবং ফাইল বিন্যাস:

  • সদস্য
    • (ব্যক্তিগত | অভ্যন্তরীণ | সুরক্ষিত | পাবলিক) এক্স [স্ট্যাটিক] এক্স [কনস্ট্যান্ট / পঠনযোগ্য]
  • প্রোপার্টি
    • (ব্যক্তিগত | অভ্যন্তরীণ | সুরক্ষিত | পাবলিক) এক্স [স্ট্যাটিক] এক্স [পঠনযোগ্য]
  • কন্সট্রাকটর
    • (ব্যক্তিগত | অভ্যন্তরীণ | সুরক্ষিত | পাবলিক) এক্স [স্ট্যাটিক]
  • কমান্ড // শূন্য রিটার্ন বা স্থিতি ফেরত সহ যে কোনও কিছু
    • (সর্বজনীন | সুরক্ষিত | অভ্যন্তরীণ | প্রাইভেট) এক্স [স্ট্যাটিক]
  • ইভেন্ট হ্যান্ডলার / ব্যক্তিগত /
    • (নিয়ন্ত্রণ | দূরবর্তী | পরিষেবা | অন্যান্য) ইভেন্টগুলি
  • কার্যসমূহ // রাষ্ট্রকে জিজ্ঞাসা করে, এর কোনও পার্শ্ব প্রতিক্রিয়া হওয়া উচিত নয়
    • (সর্বজনীন | সুরক্ষিত | অভ্যন্তরীণ | প্রাইভেট) এক্স [স্ট্যাটিক]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.