আমি jQuery কোড এর মন্তব্য থেকে অনেক ইস্যু নম্বর দেখেছি । (আসলে, jQuery কোডে issue৯ টি ইস্যু নম্বর ছিল)) আমি মনে করি এটি ভাল অনুশীলন হবে, তবে আমি কোনও নির্দেশিকা কখনই দেখিনি।
যদি এটি একটি ভাল অনুশীলন হয় তবে এই অনুশীলনের জন্য গাইডলাইনগুলি কী কী?
আমি jQuery কোড এর মন্তব্য থেকে অনেক ইস্যু নম্বর দেখেছি । (আসলে, jQuery কোডে issue৯ টি ইস্যু নম্বর ছিল)) আমি মনে করি এটি ভাল অনুশীলন হবে, তবে আমি কোনও নির্দেশিকা কখনই দেখিনি।
যদি এটি একটি ভাল অনুশীলন হয় তবে এই অনুশীলনের জন্য গাইডলাইনগুলি কী কী?
উত্তর:
সাধারণভাবে, আমি এটিকে ভাল অনুশীলন হিসাবে বিবেচনা করব না। তবে ব্যতিক্রমী ক্ষেত্রে এটি খুব কার্যকর হতে পারে, যখন কোনও জটিল সমস্যা সমাধানের জন্য কোডটিকে অনিচ্ছাকৃত কিছু করতে হয় এবং কোনও ব্যাখ্যা ছাড়াই এই ঝুঁকি থাকে যে কেউ এই অদ্ভুত কোডটিকে "ফিক্স" করতে এবং এর মাধ্যমে এটি ভেঙে যেতে পারে , যুক্তি ব্যাখ্যা করার সময় একটি বিশাল মন্তব্যের ফলাফল হবে যা ইস্যু থেকে তথ্যটি নকল করে।
আমি মনে করি যে আপনি যখন আপনার উত্স নিয়ন্ত্রণ সিস্টেমের সাথে সম্পর্কিত ফিক্স করবেন তখন কমিট কমেন্টে ইস্যু নম্বর যুক্ত করা যথেষ্ট।
উদাহরণ স্বরূপ:
বাগ # 203: ডেটাবেস সংযোগগুলি 30 সেকেন্ড পরে আর শেষ হবে না।
আমি দেখতে পেয়েছি যে কোডের মধ্যে ইস্যু নম্বর, বিকাশকারীর নাম বা তারিখগুলি পরিবর্তন করা হয়েছে যা কেবল কোডবেজকে দূষিত করে এবং আপনার উত্স নিয়ন্ত্রণ ব্যবস্থা দ্বারা সত্যই বাহ্যিকভাবে পরিচালনা করা উচিত।
আমি এখানে অন্যান্য পোস্টারগুলির সাথে সম্পূর্ণ একমত নই!
ট্র্যাকিং রেফারেন্স সহ কোড মন্তব্য রক্ষণাবেক্ষণ প্রোগ্রামিংয়ের জন্য বিশাল সহায়তা হতে পারে।
যদি আমি কোনও বাগটি সন্ধান করি এবং কোডটির ক্ষেত্রের কাছাকাছি পৌঁছে যাই তা দেখতে যে এটি সম্প্রতি পরিবর্তিত হয়েছে এবং পরিবর্তনের প্রসঙ্গে একটি লিঙ্ক রেখে দেওয়া godশ্বর-প্রেরণ।
হ্যাঁ আমাদের সোর্স কোড নিয়ন্ত্রণ রয়েছে, তবে পৃথকভাবে ফাইল এবং মডিউলগুলি পরীক্ষা করা বেশ ধীর হতে পারে। আপনি চান যে সাম্প্রতিক পরিবর্তনের জন্য এই জিনিসগুলি আপনার দিকে ঝাঁপিয়ে পড়ে।
কোড বেসে সত্যই পুরানোগুলি দেখতে পেয়ে আমি সম্ভবত তাদের হ্রাস করতে চাই, তবে আপনি সাম্প্রতিকভাবে ব্যবহার করেন যদি আপনি সাম্প্রতিককালে আরও সাম্প্রতিক বিষয়গুলিকে রাখার পক্ষে এবং সামান্য সম্ভাব্য সাশ্রয়কৃত বিকাশকারী সময় রাখার পক্ষে খুব সামান্য অংশ থাকে side
আমি আসলে আপনার বাগ ট্র্যাকিং সিস্টেমের এই ছোট্ট রেফারেন্সগুলি কোডে বিশদ মন্তব্যের চেয়ে পছন্দনীয় বলে মনে করি।
git gui blame <filename>
কোড গিটারটি ব্রাউজ করার জন্য খুব দ্রুত জিইউআই সরবরাহ করে যদি আপনি গিট ব্যবহার করেন। ইতিহাসের সাথে কোড মন্তব্যগুলিকে একত্রিত করার জন্য একটি সরঞ্জাম ব্যবহার করা কোডের জন্য কোনও ইনলাইন মন্তব্যের চেয়ে আরও ভাল ডকুমেন্টেশনের অনুমতি দেয়। এটি হ'ল, যদি আপনি ভাল প্রতিশ্রুতি বার্তা লিখতে যেতে বিরক্ত হন (একটি ভাল প্রতিশ্রুতি বার্তা একটি পাতাগুলি কেন প্রয়োগ করা উচিত তা ব্যাখ্যা করে একটি ইমেল বার্তার প্রায় সমান হওয়া উচিত)।
আপনি যদি "ক্লিন কোড" নীতিতে সাবস্ক্রাইব করেন তবে আপনাকে সম্ভবত নিজেকে জিজ্ঞাসা করা দরকার যে মন্তব্যগুলি আদৌ যুক্ত করা ভাল অভ্যাস কিনা? কোডটি যদি কেবল একটি মন্তব্যেই স্পষ্ট করা যায়, তবে অবশ্যই একটি যুক্ত করুন, অন্যথায় আপনার কোডটি সহজেই পড়ে এটি বুঝতে পারা উচিত (আপনি যদি আপনার ভেরিয়েবল, পদ্ধতি, ইত্যাদির জন্য বুদ্ধিমান নাম ব্যবহার করছেন)।
মন্তব্য করা ভাল অনুশীলন কিনা তা সম্পর্কে আপনার ব্যক্তিগত মতামত নির্বিশেষে, একটি মন্তব্যে এমন তথ্য থাকতে হবে যা মন্তব্যটির উল্লেখ করছে কোডের প্রত্যক্ষ মূল্য। এই ক্ষেত্রে, প্রশ্নটি হচ্ছে যে কোনও ইস্যু নম্বর যুক্ত করা কোডটিতে মান যুক্ত করে কিনা। ইস্যু নম্বর যুক্ত করার সাথে আমি যে সমস্যাটি দেখছি তা হ'ল আপনার কয়েকটি কোডের একটি বিভাগ থাকতে পারে যা বেশ কয়েকটি সমস্যা সন্তুষ্ট করার জন্য খুব বেশি সংশোধন করা যেতে পারে এবং কিছুক্ষণ পরে কোনও নির্দিষ্ট সমস্যার সাথে সম্পর্কিত কোন পরিবর্তনগুলি সঠিকভাবে সনাক্ত করা অসম্ভব। উদাহরণস্বরূপ পরবর্তী সমস্যাগুলির জন্য ভারী রিফ্যাক্টর হওয়ার আগে পূর্ববর্তী বিষয়গুলির সাথে সম্পর্কিত কোডের প্রয়োজন হতে পারে। এটি সম্ভবত একটি চূড়ান্ত উদাহরণ, তবে এটি কোডের মন্তব্যে ইস্যু সংখ্যাগুলি কীভাবে অসম্পূর্ণ হতে পারে তা দেখায়।
যদি আপনি গ্যারান্টি দিতে পারতেন যে আমি স্রেফ বর্ণিত পরিস্থিতিটি কখনই ঘটবে না, তবুও আমি যুক্তি দিতে পারি যে সমস্যাটি কী তা সম্পর্কে বর্ণনা ছাড়াই ইস্যু নম্বরটি নিজেই এখনও বেশ বেহুদা এবং এখনও এই সমস্ত তথ্য সত্যই আপনার অন্তর্গত ইস্যু ট্র্যাকিং সিস্টেম এবং নকল করা প্রয়োজন। ইস্যু নম্বরটি নোট করার আরও ভাল জায়গাটি আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমে কমিট মন্তব্য হিসাবে থাকবে। সুবিধাটি হ'ল আপনি সংস্করণগুলি তুলনা করতে এবং কোনও নির্দিষ্ট সমস্যার সাথে সম্পর্কিত কোডের পরিবর্তনগুলি দেখতে পারবেন, যখন আপনি কোডটিতে পরিবর্তনের কারণটি পর্যালোচনা করতে চান তবে ইস্যু নম্বরটি আপনাকে প্রয়োজনীয় সনাক্তকারী সরবরাহ করে।
এই সমস্ত বিষয় মাথায় রেখে, আমি প্রস্তাব দিচ্ছি যে এটি আপনার কোডের মধ্যে মন্তব্যে ইস্যু সংখ্যা যুক্ত করার মতো ভাল অভ্যাস নয়।
আমি মনে করি মন্তব্যটিতে একটি সংক্ষিপ্ত ব্যাখ্যা দেওয়ার সময়, আরও পড়ার জন্য কোনও বিষয় উল্লেখ করা ভাল অনুশীলন।
কোডের টুকরোটিতে সূক্ষ্ম বা অযৌক্তিক কিছু থাকলে আমি সাধারণত মন্তব্যগুলি যুক্ত করি। যেহেতু কয়েকটি সূক্ষ্ম বিষয়গুলি কয়েকটি লাইনে সম্পূর্ণ ব্যাখ্যা করা যায় না, এবং আমি কয়েক ডজন লাইন মন্তব্য যুক্ত করতে চাই না, আমি এটি অর্জন করার চেষ্টা করছে কি তা বর্ণনা করার জন্য একটি সংক্ষিপ্ত মন্তব্য যুক্ত করব এবং এর জন্য ইস্যুটি উল্লেখ করব বিবরণ।
উদাহরণ স্বরূপ:
// Verify MAC before checking the padding, to avoid padding oracle attacks
// See issue 123 for details
যেখানে 123 ইস্যুতে বর্ণনা করা হয়েছে যে সেই আক্রমণটি কেমন হতে পারে এবং নতুন কোড কেন আক্রমণে প্রতিরোধী।
বা:
// Using foo's algorithm here, since it fits out usage pattern best
// Check issue 345 for a discussion of possible algorithms, and why foo was chosen.
আপনার উত্সে ইস্যু নম্বরগুলি রাখার প্রধান সমস্যাটি হ'ল আপনার এখন বাহ্যিক রেফারেন্স রয়েছে। সুতরাং আপনাকে নিশ্চিত হওয়া দরকার যে আপনি সমস্যাটি হারাবেন না।
প্রতিশ্রুতিবদ্ধ বার্তাগুলিতে ইস্যু নম্বরটি অন্তর্ভুক্ত করা খুব কার্যকর হতে পারে যখন আপনার উত্স কোডটি অবিচ্ছিন্ন ইন্টিগ্রেশন দিয়ে সজ্জিত হয়। টিমসিটির মতো অ্যাপ্লিকেশনগুলি সেই তথ্যটি বাইরে নিয়ে যাবে এবং আরও ভাল প্রতিবেদন করার অনুমতি দেবে।
উপরের সাথে বলা হয়েছে যে আমি 100% নিশ্চিত নই এটি কোড মন্তব্য থেকে টানছে। কোডে ইস্যু নম্বরগুলি অন্তর্ভুক্ত করা যদি ইস্যু নম্বরগুলি অব্যাহত থাকে তবে (যেমন আপনি ইস্যু ট্র্যাকারগুলি পরিবর্তন করেন না) এবং কোনও প্রদত্ত প্রকল্পের জন্য আপনার কাছে প্রচুর সমস্যা নেই well
সমস্যাটি এবং সমাধানটি যদি আপনি বর্ণনা করেন তবে পরবর্তী বিকাশকারীকে ইস্যু নম্বরটি দেখার প্রয়োজন হবে না এটি সম্ভবত আরও সহায়ক। কোডটি বন্যের মধ্যে প্রকাশের আগে সংকলক বা মিনিফায়ার আপনার মন্তব্যগুলি সরিয়ে ফেলবে যাতে শেষ ফলাফলের কোনও প্রভাব না পড়ে।