tl; dr - মনে হচ্ছে বড় লিগগুলিতে উঠার সময়। আপনি যদি এই ধরণের জিনিসটিতে না থাকেন তবে শূকরের উপরে লিপস্টিক লাগানো এটি কোনও প্রাকৃতিকভাবে তৈরি করে না ...
জনগণের সমস্যা
প্রথম সংখ্যাটি কমিট সিঙ্ক্রোনাইজেশন। যদি আপনার একই সময়ে একাধিক লোক একই কোডে কাজ করে থাকে তবে সমস্যা রোধ করতে আপনার কেবলমাত্র একটি নিয়ম প্রয়োজন:
Rule 1: Always pull before you merge/rebase
যখন ডিভিসিএসের কথা আসে, তখন কোনও দূরবর্তী শাখায় (যেমন মূল সংগ্রহস্থল) পরিবর্তন করা খুব সহজ এবং স্থানীয়তে পরিবর্তন আনা খুব সহজ। প্রতিটি ব্যক্তি তাদের নিজস্ব কোড সংযোজনকে ইস্যু ছাড়াই বৃহত্তর পুরোটিতে ফিট করার জন্য দায়বদ্ধ। 2 জন ব্যক্তি একই সময়ে প্রতিশ্রুতি না দিলে আপনার অভিজ্ঞতা হওয়া উচিত নয়। উত্স / দূরবর্তী মাস্টারটিতে প্রতিশ্রুতিবদ্ধ অ্যাক্সেস কেবলমাত্র কয়েকটি বিকাশকারীদের মধ্যে সীমাবদ্ধ হওয়া উচিত এবং তাদের অন্যান্য বিকাশকারীদের কাছ থেকে দূরবর্তী ট্র্যাকিং শাখার মাধ্যমে পরিবর্তন আনতে হবে।
কোড সমস্যা
আপনি কীভাবে জানবেন যে আপনি যে পরিবর্তনগুলি করেছেন সেগুলি কোড ভঙ্গ করে না?
সহজ উত্তর ... পরীক্ষাগুলি প্রমানের জন্য তাদের লিখুন না। আপনি যদি টিডিডি (টেস্ট ড্রাইভড ডিজাইন) স্কুল অব চিন্তাকে উপেক্ষা করেন তবে পরীক্ষাগুলির পুরো বিন্দুটি যাচাইয়ের একটি স্তর যুক্ত করে যা আপনাকে কোডটি ভঙ্গ না করে পরিবর্তন করতে সক্ষম করে।
Rule 2: Don't make assumptions, write proofs (ie tests).
এগুলি ছাড়াও, আপনি উত্স / দূরবর্তী মাস্টারটির দিকে ধাক্কা দেওয়ার আগে পরীক্ষার সম্পূর্ণ প্রকার চালানো উচিত।
আপনার প্রতিশ্রুতিগুলি যতটা সম্ভব ছোট এবং সংক্ষিপ্ত রাখুন। এইভাবে, যদি আপনাকে এমন কোনও পরিবর্তনের পিছনে ফিরে আসতে হয় যা পরে কিছু ভেঙে যায় তবে আপনি কোডটি ভাঙেনি এমন অংশগুলি পুনরায় প্রয়োগ করতে বাঁচাতে পারবেন।
আপনার প্রথমে কিছু সাংগঠনিক পুনর্গঠনের প্রয়োজন হতে পারে
যদি উপরের সমাধানগুলি সহজে প্রয়োগ করা যায় না, সম্ভবত বিকাশের কাঠামোর সাথে কিছু সমস্যা রয়েছে যা প্রথমে সমাধান করা দরকার।
প্রকল্পের মালিকের দ্বাররক্ষক হওয়া উচিত। যদি প্রতিশ্রুতিবদ্ধ সিঙ্কিংয়ের সমস্যাগুলি থাকে তবে সম্ভবত কমিটের অ্যাক্সেস সহ অনেক বেশি লোক রয়েছে। এমনকি লিনাক্স কার্নেলের মতো বিশাল প্রকল্পগুলিতে, কেবলমাত্র কয়েকটি মুখ্য বিকাশকারীই অরিজিন / রিমোট মাস্টার সংগ্রহস্থলটিতে অ্যাক্সেস করতে বাধ্য হন। কমিট পরিচালনা করার জন্য একাধিক স্তরের সংগ্রহস্থল রয়েছে। একক স্তর প্রতিশ্রুতিবদ্ধ মডেলটির পরিবর্তে যেখানে প্রত্যেকে তাদের পরিবর্তনের উত্সের দিকে চাপ দিচ্ছে, শ্রেণিবদ্ধ মডেলটিতে গেটকিপার রয়েছে যা প্রকল্পগুলিতে অন্তর্ভুক্ত হওয়ার আগে তাদের মান পরিবর্তন করে এবং যাচাই করে। শ্রেণিবিন্যাসের প্রতিশ্রুতিবদ্ধ মডেল মানের ত্যাগ ছাড়াই একক স্তর মডেলের চেয়ে অনেক বড় এবং কার্যকর কার্যকর করতে পারে।
Devs যে এক্সেস কমিট পেতে না জন্য, তারা তাদের নিজস্ব দূরবর্তী ট্র্যাকিং শাখা তৈরি করতে শেখা উচিত (Git এবং gitorious এই জন্য ভাল) যাতে devs যারা না এক্সেস কমিট আছে সহজে টান করতে পারেন / উৎপত্তি মধ্যে শাখা একীভূত। পরিবর্তনগুলি যদি ছোট হয়, প্যাচগুলি ঠিক পাশাপাশি কাজ করবে।
মার্জ / রিবেস করার আগে পরিবর্তনগুলি টানানোর ক্ষমতা ধরে নেওয়া হয় যে আপনি আপনার স্থানীয় মাস্টার শাখায় বিকাশ করছেন না। এটি পরিচালনা করার সহজ উপায় হ'ল আপনি কোড করা শুরু করার আগে প্রাথমিক টান করা, তারপরে আপনার সমস্ত কাজ সেই শাখায় করুন। শক্ত উপায় হ'ল মার্জ করার ঠিক আগে এটি শাখা করা এবং মাস্টারকে ফিরে ফেরা করা।
সামগ্রিকভাবে প্রকল্পের জন্য কোডিং শৈলীর সংজ্ঞা দিন এবং ডেভগুলি এটি অনুসরণ করুন। অবদানের জন্য ডেভসগুলির এমন লিখন কোড হওয়া উচিত যা প্রকল্পের মান / নীতিমালা অনুসারে সাফ করে নিন clean কোডিং শৈলী একটি উন্মুক্ত প্রকল্পে একটি বড় অহং বাধা হতে পারে। যদি কোনও মান সেট না করা থাকে তবে প্রত্যেকে নিজের পছন্দ মতো স্টাইলে কোড দেবে এবং কোডবেস খুব কুরুচিপূর্ণভাবে দ্রুত পাবে।
"পৌরাণিক মানুষ মাস" এর মিথ
বিশ্বাস করুন বা না করুন, বৃহত্তর / অধিকতর সফল ওপেন সোর্স প্রকল্পগুলি গণতন্ত্রের মতো চালিত হয় না। তারা একটি শ্রেণিবিন্যাস হিসাবে চালানো হয়। উল্লেখ করে যে কোনও প্রকল্প কার্যকরভাবে 8-10 বিকাশকারীদের অতিক্রম করতে পারে না নির্দোষ। যদি এটি সত্য হয় তবে লিনাক্স কার্নেলের মতো মেগা-প্রকল্পগুলির অস্তিত্ব থাকত না। আরও গভীর সমস্যাটি হ'ল প্রত্যেককে অ্যাক্সেস দেওয়ার প্রতিশ্রুতি দেওয়া কেবল কার্যকর প্রভাবগুলি পরিচালনা করা খুব শক্ত করে তোলে।
পৌরাণিক মানুষ মাসের সমস্যাটি আসলেই কাটিয়ে উঠতে পারে। আপনার শুধু আপনার প্রকল্পটি সামরিক বাহিনীর মতো চালানো দরকার। শ্রেণিবিন্যাসের মধ্যে অনেকগুলি স্তর রয়েছে কারণ এটি সাধারণ জ্ঞান যে পৃথক লোকেরা কেবল মুষ্টিমেয় লোকের সাথে যোগাযোগ পরিচালনার ক্ষেত্রে কার্যকর। যতক্ষণ না কোনও একক ব্যক্তি 5--7 জনেরও বেশি লোকের কাজ পরিচালনার জন্য দায়বদ্ধ না হয় ততক্ষণ সিস্টেমটি অনির্দিষ্টকালের জন্য স্কেল করতে পারে।
এটি সেরা / অভিজ্ঞ বিকাশকারীদের আরও সংহতকরণ এবং উচ্চ-স্তরের নকশা / পরিকল্পনা করতে সীমাবদ্ধ করতে পারে তবে এটি কোনও খারাপ জিনিস নয়। প্রকল্পের দীর্ঘমেয়াদী পরিকল্পনার দরকার রয়েছে তা সিদ্ধান্ত নিতে পদক্ষেপ নেওয়া হচ্ছে aling প্রকল্পগুলির ভবিষ্যতে সর্বাধিক বিনিয়োগের (সময়টি একটি সংস্থানও রয়েছে) সর্বোচ্চ স্তরের লোকদের বড় সিদ্ধান্ত নেওয়ার অভিযোগ আনা উচিত।
একটি ওপেন সোর্স প্রকল্প ক্রমবর্ধমান যন্ত্রণার মধ্য দিয়ে যাচ্ছি শুনে শুনে খুব ভাল লাগল। অভিনন্দন এবং শুভকামনা।