/// মন্তব্য ব্লক কেন গুরুত্বপূর্ণ?


49

কেউ একবার বলেছিল আমাদের /// <summary>মন্তব্য পদ্ধতির (সি #) দিয়ে আমাদের সমস্ত পদ্ধতি উপসর্গ করা উচিত তবে কেন তা ব্যাখ্যা করিনি।

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

/// <summary>আপনার কোডে মন্তব্য ব্লক ব্যবহার করার কোনও ভাল কারণ আছে ?

আমি সাধারণত সবসময় //মন্তব্য ব্যবহার করি , এটি কেবল যে /// <summary>ব্লকগুলি নিয়ে আমি ভাবছিলাম।


1
আমি নিশ্চিত ছিলাম না যে এই মন্তব্য ব্লকগুলি ব্যক্তিগত পছন্দ বা প্রস্তাবিত মান ছিল
রাচেল

1
আমিও তাই মনে করি।
রায়ান হেইস

30
আমি মনে করি এটি হ'ল এখানেই প্রশ্ন question এটির একটি ভাল সম্ভাবনা রয়েছে যে বিষয়টিকে স্ট্যাকওভারফ্লোতে বন্ধ করে দেওয়া হবে।
প্যাডিস্ল্যাকার

আপনি ডকুমেন্টেশন জেনারেট করতে চাইলে <সুমারী> ব্লক ব্যবহার করুন। আপনি যদি অন্যদের ব্যবহারের জন্য একটি এপিআই তৈরি করে থাকেন তবে এটি অর্থবোধ করবে। প্রতিটি পদ্ধতির জন্য এটি করা ওভারকিল এবং আপনার নমনীয়তা হ্রাস করে।
ম্যাকনিল

উত্তর:


91

এগুলি যথাসম্ভব ব্যবহার করুন।

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


22
+1 একেবারে ব্যবহার করুন। আপনি যদি নিজের উপাদানগুলি পুনরায় ব্যবহার করেন এবং ইন্টেলিজেন্সে সেই সমস্ত দুর্দান্ত ডকুমেন্টেশন উপলব্ধ করেন তবে এগুলি কীভাবে কার্যকর তা আপনি অবাক হবেন।
ওয়াল্টার

4
এছাড়াও যদি আপনি ভিজুয়াল স্টুডিও ব্যবহার করেন এবং কোনও শ্রেণি, পদ্ধতি বা ক্ষেত্রের ঘোষণার ঠিক আগে /// দিয়ে একটি লাইন শুরু করেন, ভিএস আপনার জন্য এক্সএমএল ডকুমেন্টেশন কাঠামো তৈরি করবে - আপনাকে কেবল এটি পূরণ করতে হবে। আমি সম্মত হয়েছি যে এটি গ্রহণ করে আপনার পর্দার অনেক জায়গা, তবে এটি আমি বলার উপযুক্ত সমঝোতা। এছাড়াও, এফ # এর আরও কিছুটা ভাল সমর্থন রয়েছে (উদাহরণস্বরূপ আপনার <summary> এবং </summary> ব্যবহার করার দরকার নেই যেহেতু সেগুলি 'ধরে নেওয়া হয়েছে')।
ShdNx

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

3
কেবল একটি জিনিস যোগ করার জন্য, এই মন্তব্যগুলি dll মধ্যে সংকলিত হয় না , আপনাকে আপনার dll এর সাথে সম্পর্কিত xML ফাইল সরবরাহ করতে হবে।
বেঞ্জল

এগুলি ব্যবহারযোগ্য, তবে তারা বর্তমান শ্রেণিকে অত্যন্ত অপঠনযোগ্য করে তুলেছে। আমি ইচ্ছা করি অন্য কোনও উপায় ছিল যা কোডটি বিশৃঙ্খলা না করে।
জেরোইন ভ্যান ল্যাঞ্জেন

16

হ্যাঁ, আপনি রাখতে চান এমন কিছুতে বা ভাগ করে নেওয়া হতে পারে একেবারে সেগুলি।

এছাড়াও, এগুলি স্যান্ডক্যাসল এবং স্যান্ডক্যাসল হেল্প ফাইল বিল্ডারের সাথে একযোগে ব্যবহার করুন যা এক্সএমএল আউটপুট নেয় এবং এটিকে সুন্দর, এমএসডিএন-স্টাইলের ডকুমেন্টেশনে রূপান্তরিত করে।

সর্বশেষে আমি কাজ করেছি আমরা প্রতি রাতে ডকুমেন্টেশনগুলি পুনর্নির্মাণ করেছি এবং এটি একটি অভ্যন্তরীণ হোমপেজ হিসাবে হোস্ট করেছি। সংস্থার সূচনাগুলি এমএফ ছিল, সুতরাং এটি এমএফডিএন ছিল;)

সাধারণত আমি কেবল একটি .chm ফাইল তৈরি করি যা সহজেই চারপাশে ভাগ করে নেওয়া হয়।

আপনি এমএসডিএন ফর্ম্যাটে এটি শুরু করার পরে আপনি সমস্ত কিছুর ডকুমেন্টিংয়ের জন্য কীভাবে আসক্ত হয়ে উঠবেন তা অবাক করে দিয়ে যাবেন!


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

12

যদি আপনার কোডিং স্ট্যান্ডার্ড দাবি করে যে আপনি এই জাতীয় মন্তব্য ব্যবহার করুন (এবং কোনও এপিআই বা কোনও কাঠামোর জন্য কোডিং মান এটি দাবি করতে পারে), তবে আপনার কোনও বিকল্প নেই, আপনাকে এই জাতীয় মন্তব্য ব্যবহার করতে হবে।

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

    /// <summary>
    /// Checks if a user is authorized to access the resource
    /// </summary>
    public bool SecurityCheck( User user ) {

    }

প্রতি

    /// <summary>
    /// Checks if a user is authorized to access the resource
    /// </summary>
    public bool IsAuthorizedToAccessResource( User user ) {

    }

প্রতি

    public bool IsAuthorizedToAccessResource( User user ) {

    }

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

2
এবং আমি মনে করি কেবল একটি ইন্টেলিজেন্স দৃষ্টিকোণ থেকে নয়, স্বয়ংক্রিয় ডকুমেন্টেশন জেনারেশন দৃষ্টিকোণ থেকে, এক্সএমএল মন্তব্যগুলি দরকারী। তবে সমস্ত মন্তব্যের মতোই, মন্তব্যগুলি নিজেরাই কার্যকর হয় এবং স্ব নথিবদ্ধ কোডটিতে যুক্ত হয় তবে এটি কেবল সংবেদনশীল করে তোলে।
বৈভব

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

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

2
@ জেলটন আপনার পদ্ধতির নামের সমস্যাটি বর্ণনামূলক নয়, বরং এটি কমপক্ষে 2 টি পৃথক ক্রিয়াকলাপ বর্ণনা করে এবং তাই কমপক্ষে 2 টি স্বতন্ত্র পদ্ধতিতে রিফ্যাক্ট করা উচিত।
নিল

4

আপনার শ্রেণি, পদ্ধতি এবং সম্পত্তির নামকরণ স্বতঃস্পষ্ট হওয়া উচিত, সুতরাং আপনার যদি এগুলির প্রয়োজন হয় তবে এটি সম্ভবত গন্ধ।

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

তবে যাইহোক আপনি এটিকে টুকরো টুকরো করে রাখুন, এগুলি বজায় রাখুন বা তাদের মুছুন।


11
নামকরণ একটি জিনিস তবে পরামিতি বা সম্ভাব্য ছোঁড়া ব্যতিক্রমগুলিতে সীমাবদ্ধতার তালিকা তৈরি করা এখনও মূল্যবান।
অ্যাডাম লিয়ার

হ্যাঁ, আমি আপনার কাছে একটি বিন্দু আছে তা স্বীকার করব, তবে বেশিরভাগ সময় প্যারামিটারের সীমাবদ্ধতাগুলি স্পষ্ট হয় তাই না?
জন ম্যাকআইন্টির

আমি জনের সাথে একমত তা নিশ্চিত নয়। এই যুক্তি দিয়ে,। নেট ফ্রেমওয়ার্ক পদ্ধতিগুলির কোনওটিরই কোনও Intelisense সহায়তা পাওয়া উচিত নয়।
বৈভব

1
@ বৈভব - আমি বলেছিলাম "আমি কোনও এপিআই, লাইব্রেরি ইত্যাদিতে কোনও পাবলিক ক্লাস, পদ্ধতি এবং বৈশিষ্ট্যগুলিতে তাদের ব্যবহার করার পরামর্শ দেব ..." ... এতে আপনি কী বলছেন তা কভার করবে?
জন ম্যাকআইন্টির

1
@ জন - আশ্চর্যজনক, আমি এই মন্তব্যটি লিখতে গিয়ে শপথ করতে পারি যে আমি অন্য কিছু পড়ি al কারণ আপনার দ্বিতীয় অনুচ্ছেদটি ঠিক এই থ্রেডের অন্যত্র আমি যা বলেছিলাম। সুতরাং, মন্তব্যটি লেখার জন্য অবশ্যই আমার মাথায় শিলা থাকতে হবে। হ্যাঁ, আমি এর সাথে একমত
বৈভব

2

যদি আপনি দেখতে পান যে আপনাকে নতুন কোডের সাথে সামঞ্জস্য করতে আপনার মন্তব্যগুলি ফিরে যেতে এবং সম্পাদনা করতে হবে তবে আপনি প্রথমে তাদের ভুল করছেন। সংক্ষিপ্তসার উপাদানটিতে হুবহু এটি থাকা উচিত - একটি সংক্ষিপ্তসার - আপনার কী সংক্ষেপে জিনিসটি কী এবং কেন

মন্তব্যে কীভাবে কিছু কাজ করে তা বর্ণনা করে ডিআরওয়াই লঙ্ঘন করে। যদি আপনার কোডটি যথেষ্ট পরিমাণে বর্ণনামূলক না হয় তবে সম্ভবত আপনার ফিরে আসা উচিত act


1

হ্যাঁ, আমি এগুলি তৈরি করেছি। [স্ক্র্যাচ থেকে নতুন সিস্টেম তৈরি করার সময়]

না, আমি তাদের কাছ থেকে কখনই উপকৃত হইনি। [বিদ্যমান সিস্টেমে যেগুলি রক্ষণাবেক্ষণের প্রয়োজন ছিল সেগুলি নিয়ে কাজ করার সময়]

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


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

1

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

এটি আপনার কোডটি নথিভুক্ত করার এক সর্বাধিক দৃশ্যমান উপায়।

ইনলাইন ডকুমেন্টেশন পড়ার জন্য সোর্স কোডটি খুঁজে পেতে বা কোনও কোড কী করে তা থেকে যায় এমন একটি ডকুমেন্ট খনন করা একটি বেদনা। আপনি যদি বুদ্ধির মাধ্যমে কিছু কার্যকর পপ আপ পেতে পারেন তবে লোকেরা আপনাকে ভালবাসবে।


1

" এটি আমার মতো খুব ব্যবহার করতে হবে;) "

আমি মন্তব্যে (///) খেলতাম। একটি শ্রেণীর জন্য আপনি কেবল এই জাতীয় মতামত করতে পারেন

namespace test
{
    /// <summary>
    /// Summary description for Calendar.
    /// </summary>
    public partial class DatePicker : System.Web.UI.Page
    {

তবে, কোনও পদ্ধতির জন্য আপনি প্যারামিটার এবং রিটার্নের ধরণের বিবরণ দিয়ে আরও অ্যাড-অন করতে পারেন।

/// <summary>
/// Assign selected cases to the participating users based on the filters and configurations
/// </summary>
/// <param name="noOfParticipants">No. of participants to the Table</param>
/// <param name="value">Value of the participant</param>
/// <returns>No Of Cases Assigned on successfull completion</returns>
public long AssignCasesToParticipatingUsers(int noOfParticipants,string value)
{

আপনি এই মন্তব্য তৈরির জন্য একটি শর্ট-কাট ব্যবহার করতে পারেন (///+Tab)


0

লাইব্রেরি বাদে এগুলি ব্যবহার করে

এই সময় তারা দরকারী। এক্সএমএল ডকুমেন্টেশন জেনারেশন চালু হওয়ার সাথে সাথে এবং তার প্রকল্প ব্যতীত সমাবেশের একটি রেফারেন্স ইন্টেলিসেন্সে আরও বিশদ প্রদর্শন করবে।

তবে বর্তমান প্রকল্পের ইন্টার্নালদের জন্য, তারা কেবল পথে চলে।


0

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


0

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

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

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

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