সি # ফাইলের জন্য কোন নামকরণের কনভেনশনে একাধিক ক্লাস রয়েছে?


20

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


13
খোলামেলাভাবে আমি খুব ছোট ক্লাসের জন্যও একটি ফাইল এক শ্রেণির পছন্দ করি
ফেলিস পোলানো

এই শক্তভাবে সম্পর্কিত শ্রেণীর অধীনে আপনি গ্রুপ অনুসারে এটির নাম চয়ন করতে পারেন name
ভি

সম্ভবত এই ক্লাসগুলি খুব ছোট? ব্যক্তিগতভাবে আমি কেবল একটি ফাইলে একাধিক এনামকে গ্রুপ করি (কখনও কখনও ক্লাসের সাথে, কখনও কখনও সমস্ত এনাম একসাথে প্রসঙ্গের উপর নির্ভর করে)।
কনরাড মোরাউস্কি

@ ফিলিস: এমএসপেকের দিকে তাকান :)
ব্রায়ান

উত্তর:


18

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

MyEnumerable.cs
MyEnumerable.MyEnumerator.cs

সম্ভবত আপনি নিজের ক্ষেত্রে একাধিক ফাইলের নামও ব্যবহার করতে পারেন।


4
আরও একটি ধারণা। আপনি ভিজ্যুয়াল স্টুডিও প্রকল্পের মধ্যে একাধিক .cs ফাইলগুলি গোষ্ঠীভুক্ত করতে পারেন যাতে সেগুলি সমস্ত গাছের একই নোডের নীচে উপস্থিত হয় (যেমন .Designer.cs ফাইলগুলি)। এটি আপনাকে সিগন্যাল করবে যে ক্লাসগুলি শক্তভাবে এক সাথে সম্পর্কিত।

6

কমপক্ষে একটি সার্বজনীন শ্রেণীর চেয়ে বেশি নয়, একটি ফাইলে একাধিক শ্রেণি না থাকার চেষ্টা করুন। একাধিক ক্লাসের সাথে ক্লাস ফাইলগুলির নামকরণ করার সময়, বর্ণনামূলক ফাইলের নামটি চয়ন করুন।

Refrences:


4

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

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

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

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

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

চিয়ার্স,


3

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

আমি যা শুরু করেছি তা হল নামকরণের কনভেনশনটি নীচে ব্যবহার করা হচ্ছে: namespace.classname.cs এইভাবে আমি প্রতিটি ফাইলের মধ্যে ঠিক কী তা জানি এবং এটি ফাইলের সামগ্রিক প্রসঙ্গে কিছু প্রকারের সরবরাহও করে। বর্গ নেমস্পেস হতে যাচ্ছে, তাহলে আমি এগিয়ে যান এবং শুধু ব্যবহার classname.cs (জাভা অনুরূপ)।

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