সংস্করণ নিয়ন্ত্রণে কোড এবং কনফিগারেশন থাকতে হবে যা অ্যাপ্লিকেশনটি তৈরি করতে প্রয়োজনীয়।
এই যে মানে:
অস্থায়ী জিনিস যা অল্প সময়ের জন্য প্রবর্তিত হয়েছিল (কোনও বাগের অবস্থান চিহ্নিত করার জন্য সময় প্রয়োজন, বা কোনও ভাষার বৈশিষ্ট্য নিয়ে পরীক্ষা করার জন্য, উদাহরণস্বরূপ) সংস্করণ নিয়ন্ত্রণে রাখা উচিত নয়: আপনার প্রয়োজন না হওয়া পর্যন্ত এটি রাখুন এটি, তারপরে কমিট করার সময় কেবল এটিকে সরিয়ে দিন ।
স্থানীয় ফাইলগুলি যা কোনও নির্দিষ্ট মেশিনের সাথে উপযুক্ত তা একটি শাখায় রাখা যেতে পারে।
আমি এগুলিকে কেবল স্থানীয়ভাবে রাখা এড়াতে চাই, যেহেতু আপনার ল্যাপটপটি চুরি হয়ে গেলে বা ভাইরাস আপনাকে ওএস পুনরায় ইনস্টল করতে বাধ্য করে (এবং উপায় দ্বারা, আপনি দেখতে পাচ্ছেন যে আপনার শেষ ব্যাকআপটি দুই বছর আগে সম্পন্ন হয়েছিল) ।
অন্যদিকে, ফাইলের কাঠামোর সাথে সাবধানতা অবলম্বন করুন: স্থানীয় কনফিগারটি ঠিক আছে, যতক্ষণ না এটি অপ্রতিরোধ্য হয়ে যায়, এবং আপনাকে প্রকল্পে অংশ নেওয়া 42 জন বিকাশকারীদের প্রত্যেকটি ফাইলে একক পরিবর্তন করতে বাধ্য করে।
মেশিনগুলির মধ্যে বিশদগুলি অপসারণ করার সুযোগের জন্য দেখুন। এর অর্থ হতে পারে:
বিকাশকারীদের মেশিনে স্থানীয় দৃষ্টান্তগুলি প্রতিস্থাপন করতে কোনও ডেভেল এসকিউএল সার্ভারে অ্যাক্সেস দেওয়া,
মত প্যাকেজ বিতরণ সেবা ব্যবহার Pypi বা npm প্রকাশ্য প্যাকেজ ও আভ্যন্তরীণ প্যাকেজের জন্য তাদের ব্যক্তিগত প্রতিরূপ জন্য,
দলের সদস্যদের সফ্টওয়্যারগুলির একই সংস্করণ ইনস্টল করতে বলুন,
যতটা সম্ভব স্বচ্ছ সফ্টওয়্যার আপডেট করুন,
অথবা কোনও ক্লিকে কোনও মেশিনে ওএস এবং প্রয়োজনীয় সফ্টওয়্যার স্থাপন করা সম্ভব করে তুলুন (প্লাস প্রতিটি বিকাশকারীকে তার পছন্দসই ভিম বনাম ইম্যাকস, ক্রোম বনাম ফায়ারফক্স, ইত্যাদি ইনস্টল করার সময়)
তাই:
প্রকল্প ফাইল। বর্তমান পিসিতে লেআউট প্রতিবিম্বিত করতে পাথগুলি সম্পাদনা করার প্রয়োজন হতে পারে।
কেন প্রতিটি পিসিতে একই লেআউট ব্যবহার করছেন না? প্রকল্পের মধ্যে থাকা পাথগুলি প্রকল্পের ফাইলের সাথে সম্পর্কিত হওয়া উচিত যার অর্থ প্রকল্পটি কোথায় রয়েছে তা বিবেচ্য নয়। শুধুমাত্র কিছু মেশিনে প্রদর্শিত ক্রিপ্টিক বাগগুলি এড়াতে সফ্টওয়্যার এবং লাইব্রেরিগুলির সংস্করণগুলি সমান হওয়া ভাল এবং দলের অন্যান্য সদস্যদের জন্য পুনরুত্পাদন করা অসম্ভব।
উদাহরণ:
ভিজ্যুয়াল স্টুডিও দিয়ে তৈরি একটি প্রকল্পে আপনি এটি পেতে পারেন:
ফাইলগুলি নিজেরাই। পাথগুলি আপেক্ষিক হওয়ার কারণে, এটি আমার মেশিনে নেই কিনা, প্রকল্পটির অবস্থান রয়েছে H:\Development\Hello World Project\
যখন দলের অন্যান্য সদস্যরা প্রকল্পটি পরীক্ষা করে দেখেছিল C:\Work\HelloWorld\
।
নির্ভরতা, তৃতীয় পক্ষ এবং ইন-হাউস লাইব্রেরি। উভয় প্রকারই নুগেট দ্বারা পরিচালনা করা উচিত যা সমস্ত দ্বন্দ্ব-সম্পর্কিত আলোচনাকে অচল করে দেয়। আমার কাছে থাকা লাইব্রেরির যদি একই সংস্করণ না থাকে তবে নিউগেটকে নির্ভরতা আপডেট করতে বলুন। যে হিসাবে সহজ (যখন এটি ভাল কাজ করে, যা সর্বদা ক্ষেত্রে হয় না)।
দ্রষ্টব্য যে পাশাপাশি একটি ব্যক্তিগত ন্যুগেটে ইন-হাউস লাইব্রেরি রাখাও গুরুত্বপূর্ণ। একটি গোষ্ঠী লাইব্রেরি একটি ভাগ ফোল্ডারে সংরক্ষণ করা বা ইমেল দ্বারা একটি দল জুড়ে পাঠানো অরাজকতা এবং হতাশাজনক সিআই সার্ভার বাড়ে।
সেটিংস। দলটি একই সেটিংস ভাগ করে নেওয়া অত্যন্ত গুরুত্বপূর্ণ। যদি দলের অর্ধেক সতর্কবাণীকে ত্রুটি হিসাবে বিবেচনা করে এবং দলের অর্ধেক সতর্কবাণীকে তেমনি রাখে তবে দলের প্রথম অংশের সদস্যরা দলের দ্বিতীয় অংশ থেকে বিকাশকারীদের দ্বারা প্রাপ্ত সতর্কবাণীগুলি সরাতে তাদের সময় ব্যয় করবে।
ইউটিলিটি সম্পর্কিত সেটিংস settings এগুলি জটিল, কারণ দলের কিছু সদস্য হয়তো কিছু উপযোগ ইনস্টল করেছেন, অন্যরা তা ব্যবহার করেনি।
একই টুলসেটটি ইনস্টল করার জন্য দৃ strongly়ভাবে সুপারিশ করা হয়। কিছু প্রোগ্রামার যদি স্টাইলকপ ব্যবহার করতে চায় তবে অন্যরা তা না করে তবে দলটি কাজটি করবে না। কিছু যদি কোড চুক্তি ব্যবহার করে তবে অন্যরা তা না করে তবে তাদের একই সমস্যা থাকবে।
ফাইল তৈরী। উদাহরণস্বরূপ, ডিবাগিংয়ের সময় অপ্টিমাইজেশন বন্ধ করা দরকার হতে পারে তবে সিআই সার্ভারের জন্য নয়।
সংস্করণ নিয়ন্ত্রণে বেশ কয়েকটি মেকফাইল রাখুন। পাশাপাশি সিআই সার্ভারে একটি ডিবাগ সংস্করণ তৈরি করা এবং এটি একটি ক্লায়েন্টের কাছে ঠেলাঠেলি করা অস্বাভাবিক কিছু নয় যা একটি জটিল ত্রুটির শিকার হয়।
নোংরা কুৎসিত হ্যাকস উদাহরণস্বরূপ, ফাংশনের উপর নির্ভর করে কিছু পরীক্ষা করার জন্য কোনও ফাংশনের মাঝামাঝি 7 ফিরে আসুন এবং 7 এর মান ভেঙে যাওয়ার সন্দেহ।
আমি এই প্রথম কোড এড়ানো হবে। কিছু পরীক্ষা করার জন্য, ইউনিট পরীক্ষা ব্যবহার করুন। ডিবাগিংয়ের উদ্দেশ্যে যদি কিছু কোড অদলবদল করতে সত্যিই কয়েক সেকেন্ড সময় লাগে তবে তা করুন তবে আপনি এই কোডটি কয়েক মিনিটের মধ্যেই সরিয়ে ফেলবেন, সুতরাং এটি করার কোন প্রয়োজন নেই।
আপনি এটি বর্ণনা হিসাবে, আপনি একটি পরীক্ষা লিখতে হবে। উদাহরণস্বরূপ, আপনি যদি নিশ্চিত হতে চান যে:
class TemperatureConverter
{
public int CelsiusToFahrenheit(int temperature)
{
...
}
}
ধ্রুবক temperature
থেকে নিকৃষ্ট যখন একটি ব্যতিক্রম ছুঁড়ে AbsoluteZero
, আপনি কোড নিজেই না খেলা উচিত। পরিবর্তে, একটি ইউনিট পরীক্ষা তৈরি করুন যা করবে:
- আপনার কোডটি স্ব-দলিল করুন,
- আপনার কোডের নির্ভরযোগ্যতা বৃদ্ধি করুন,
- উপরের পদ্ধতিটি সংশোধন করার সময় রক্ষণাবেক্ষণকারীরা রিগ্রেশন পরীক্ষার উপর নির্ভর করতে পারেন তা নিশ্চিত করুন,
- আপনার দলের অন্য বিকাশকারীদের পরিবেশন করুন যাদের একই পরীক্ষার প্রয়োজন হতে পারে।