আপনি যখন jsdocs এর মতো সরঞ্জামগুলি ব্যবহার করেন , এটি আপনার কোডের মন্তব্যের উপর ভিত্তি করে আপনার কোডবেজে স্থির এইচটিএমএল ফাইল এবং এর স্টাইলগুলি তৈরি করে।
এই ফাইলগুলি কি গিট সংগ্রহস্থলে চেক করা উচিত বা তাদের .gitignore দিয়ে উপেক্ষা করা উচিত?
আপনি যখন jsdocs এর মতো সরঞ্জামগুলি ব্যবহার করেন , এটি আপনার কোডের মন্তব্যের উপর ভিত্তি করে আপনার কোডবেজে স্থির এইচটিএমএল ফাইল এবং এর স্টাইলগুলি তৈরি করে।
এই ফাইলগুলি কি গিট সংগ্রহস্থলে চেক করা উচিত বা তাদের .gitignore দিয়ে উপেক্ষা করা উচিত?
উত্তর:
কোনও নির্দিষ্ট প্রয়োজন অনুপস্থিত, সংস্করণ নিয়ন্ত্রণে চেক করা অন্য ফাইলগুলি ব্যবহার করে বিল্ড সরঞ্জামগুলি থেকে নির্মিত, পুনর্নির্মাণ, নির্মিত, বা বিল্ড সরঞ্জামগুলি থেকে উত্পন্ন করা যায় এমন কোনও ফাইল চেক ইন করা উচিত নয় When যখন ফাইলের প্রয়োজন হয়, তখন এটি অন্যটি থেকে তৈরি করা যেতে পারে (পুনরায়) উত্স (এবং সাধারণত বিল্ড প্রক্রিয়া কিছু দিক হিসাবে হবে)।
সুতরাং এই ফাইলগুলি .gitignore দিয়ে উপেক্ষা করা উচিত।
আমার নিয়মটি হ'ল আমি যখন কোনও সংগ্রহশালা ক্লোন করে "বিল্ড" বোতাম টিপি, তারপরে, কিছুক্ষণ পরে সমস্ত কিছু তৈরি হয়। আপনার উত্পন্ন ডকুমেন্টেশনের জন্য এটি অর্জন করতে আপনার দুটি পছন্দ আছে: হয় এই ডক্স তৈরি করার জন্য এবং এটিকে গিটের জন্য রাখার জন্য কেউ দায়বদ্ধ, বা আমার বিকাশ মেশিনে আমার ঠিক কী সফ্টওয়্যার দরকার তা আপনি নথিভুক্ত করেন এবং আপনি নিশ্চিত হন যে "বিল্ড" টিপছেন বোতামটি আমার মেশিনে সমস্ত নথি তৈরি করে।
উত্পন্ন ডকুমেন্টেশনের ক্ষেত্রে, যেখানে আমি একটি শিরোনাম ফাইলটিতে যে কোনও একক পরিবর্তন ডকুমেন্টেশন পরিবর্তন করতে হবে, প্রতিটি বিকাশকারীর মেশিনে এটি করা ভাল, কারণ আমি সর্বদা সঠিক ডকুমেন্টেশন চাই, কেবল যখনই কেউ এটি আপডেট না করে। অন্যান্য পরিস্থিতি রয়েছে যেখানে কিছু উত্পন্ন করতে সময় সাশ্রয়ী, জটিল হতে পারে এমন সফ্টওয়্যার প্রয়োজন যার জন্য আপনার কাছে কেবল একটি লাইসেন্স ইত্যাদি রয়েছে that সেক্ষেত্রে কোনও ব্যক্তিকে জিনিসকে গিটের মধ্যে রাখার দায়িত্ব দেওয়া আরও ভাল।
@ কার্ট সিম্পসন: সমস্ত সফ্টওয়্যার প্রয়োজনীয়তার সাথে ডকুমেন্টেড থাকা আমার অনেক জায়গায় দেখা থেকে অনেক ভাল।
./Test
এবং একটি বিল্ড পেতে পারেন বা একটি বিল্ড পেতে তার কী করা উচিত তা সম্পর্কে ভাল তথ্য পেতে পারেন।
কিছু সংগ্রহস্থলগুলিতে সেগুলি রাখার একটি সুবিধা (হয় একই বা অন্যটি, সাধারণত স্বয়ংক্রিয়ভাবে উত্পাদিত হয়) তা হল আপনি ডকুমেন্টেশনের সমস্ত পরিবর্তন দেখতে পাবেন। কখনও কখনও উত্স কোডের ডিফগুলির চেয়ে এই ভিন্নতাগুলি পড়া সহজ হয় (বিশেষত যদি আপনি কেবল নির্দিষ্টকরণের পরিবর্তনের বিষয়ে যত্নশীল হন, বাস্তবায়ন নয়)।
তবে বেশিরভাগ ক্ষেত্রে তাদের উত্স নিয়ন্ত্রণে রাখার দরকার নেই, যেমন অন্যান্য উত্তরগুলি ব্যাখ্যা করেছে।
উপেক্ষা করেছেন। আপনি চাইবেন যে রেপো ব্যবহারকারীরা যে কোনও উপায়ে সেগুলি পুনর্নির্মাণ করতে সক্ষম হবেন এবং এটি ডকটির সর্বদা সিঙ্কে রয়েছে তা নিশ্চিত হওয়ার জটিলতা দূর করে। যদি আপনি সমস্ত কিছু এক জায়গায় রাখতে চান এবং কোনও কিছু নির্মাণ না করতে চান তবে নির্মিত শিল্পকর্মগুলি এক জায়গায় গুঁড়িয়ে না দেওয়ার কোনও কারণ নেই। তবে সোর্স রেপোগুলি এটি করার পক্ষে খুব ভাল জায়গা নয় যদিও জটিলতার কারণে বেশিরভাগ জায়গার চেয়ে বেশি আঘাত লাগে।
এটি আপনার স্থাপনার প্রক্রিয়ার উপর নির্ভর করে। কিন্তু উত্পন্ন ফাইলগুলিকে একটি সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ করা ব্যতিক্রম এবং যদি সম্ভব হয় তবে এড়ানো উচিত। যদি আপনি হ্যাঁ দিয়ে নিম্নলিখিত দুটি প্রশ্নের উত্তর দিতে পারেন তবে আপনার ডক্সে পরীক্ষা করা একটি বৈধ বিকল্প হতে পারে:
যদি এই শর্তগুলি সত্য হয় তবে আপনি সম্ভবত কোনও উত্তরাধিকার ব্যবস্থা বা বিশেষ সুরক্ষার সীমাবদ্ধতা সহ কোনও সিস্টেম স্থাপন করছেন। বিকল্প হিসাবে, আপনি উত্পন্ন ফাইলগুলি একটি রিলিজ শাখায় প্রতিশ্রুতিবদ্ধ করতে এবং মাস্টার শাখাটি পরিষ্কার রাখতে পারেন।
এটা নির্ভর করে. যদি সেই দস্তাবেজগুলি:
সংগ্রহস্থলের অংশ হওয়া দরকার, এর মতো readme.md
, তারপরে এগুলি গিট রেপোতে রাখাই বেশি পছন্দ preferred কারণ সেই পরিস্থিতিগুলিকে স্বয়ংক্রিয় পদ্ধতিতে পরিচালনা করা মুশকিল হতে পারে।
আপনার যদি সিআই সিস্টেমের মতো এগুলি তৈরি এবং আপডেট করার কোনও স্বয়ংক্রিয় উপায় না থাকে এবং এটি সাধারণ দর্শকদের জন্য দেখার উদ্দেশ্যে হয়, তবে সেগুলি গিট রেপোতে রাখাই বেশি পছন্দ করা হয়।
এগুলি তৈরি করতে প্রচুর সময় নেয়, তবে সেগুলি রাখা ন্যায়সঙ্গত।
সাধারণ দর্শকদের জন্য (ব্যবহারকারী ম্যানুয়ালের মতো) দেখার উদ্দেশ্যে করা হয়েছে, এবং এটি নির্মাণে যথেষ্ট সময় লাগে, যখন আপনার পূর্ববর্তী ডক্সটি অ্যাক্সেসযোগ্য (অফলাইন) হয়ে যায়, তবে সেগুলি গিট রেপোতে রাখাই ন্যায়সঙ্গত।
সাধারণ দর্শকদের জন্য দেখার উদ্দেশ্যে এবং এর পরিবর্তনগুলি / বিবর্তনের ইতিহাস দেখাতে হবে, পূর্ববর্তী ডক সংস্করণগুলিকে কমিট করা এবং আগেরটির সাথে যুক্ত নতুন তৈরি বা প্রতিশ্রুতিবদ্ধ রাখা আরও সহজ হতে পারে। সমর্থনীয়।
সমস্ত দলকে কমিট করার জন্য একটি নির্দিষ্ট স্বীকৃত কারণ রয়েছে, তবে তাদের গিট রেপোতে রাখাই ন্যায়সঙ্গত। (আমরা আপনার প্রসঙ্গটি জানি না, আপনি এবং আপনার দল এটি করে)
অন্য কোনও পরিস্থিতিতে, এটি নিরাপদে উপেক্ষা করা উচিত।
তবে, যদি তাদের গিট রেপোতে রাখা ন্যায়সঙ্গত হয় তবে আপনার দল যে আরও বড় সমস্যার মুখোমুখি হচ্ছে তার লক্ষণ হতে পারে। (সিআই সিস্টেম না থাকা বা অনুরূপ, ভয়াবহ পারফরম্যান্স সমস্যা, নির্মাণের সময় ডাউনটাইমের মুখোমুখি হওয়া ইত্যাদি)
সংস্করণ নিয়ন্ত্রণের নীতি হিসাবে, কেবলমাত্র "প্রাথমিক অবজেক্টগুলি" একটি সংগ্রহস্থলে সংরক্ষণ করা উচিত, "উত্পন্ন বস্তু" নয়।
এই নিয়মের ব্যতিক্রম রয়েছে: যথা, যখন ভান্ডারগুলির গ্রাহকরা থাকে যা থেকে প্রাপ্ত উপকরণগুলির প্রয়োজন হয় এবং তাদের উত্পন্ন করার জন্য প্রয়োজনীয় সরঞ্জাম না পাওয়ার যৌক্তিকভাবে প্রত্যাশা করা হয়। অন্যান্য বিবেচ্য বিষয়গুলি যেমন ওজনিত না করা পরিমাণ মতো হয় তবে? (প্রকল্পের পক্ষে কি কেবল সমস্ত ব্যবহারকারীকেই সরঞ্জাম দেওয়া উচিত?)
এর চরম উদাহরণ হ'ল এমন একটি প্রকল্প যা একটি বিরল প্রোগ্রামিং ভাষা প্রয়োগ করে যার সংকলকটি সেই ভাষায় রচিত (সুপরিচিত উদাহরণগুলিতে ওকামল বা হাস্কেল অন্তর্ভুক্ত রয়েছে ))। যদি কেবল সংকলক উত্স কোডটি সংগ্রহস্থলে থাকে তবে কেউ এটিকে তৈরি করতে পারবেন না; ভার্চুয়াল মেশিনে চালাতে পারে এমন সংকলকটির তাদের সংকলিত সংস্করণ নেই, যাতে তারা সেই সংকলকের উত্স কোডটি সংকলন করতে পারে। তদুপরি, ভাষার সর্বশেষ বৈশিষ্ট্যগুলি তাত্ক্ষণিকভাবে সংকলক উত্সেই ব্যবহৃত হয়, যাতে সংকলকটির সর্বশেষতম সংস্করণটির নিকটবর্তী হওয়াতে সর্বদা এটি প্রয়োজন: আলাদাভাবে প্রাপ্ত এক মাস বয়সী সংকলক বর্তমান কোডটি সংকলন করবে না কারণ কোডটি কোড ভাষা বৈশিষ্ট্যগুলি ব্যবহার করে যা একমাস আগে উপস্থিত ছিল না। এই পরিস্থিতিতে, সংকলকটির সংকলিত সংস্করণটি অবশ্যই অবশ্যই সংগ্রহস্থলটিতে পরীক্ষা করে আপ টু ডেট রাখতে হবে।