Skip to content

Collaboration & Workflows

Git শুধুমাত্র ভার্সন কন্ট্রোল নয়, এটি টিমের মধ্যে কোলাবোরেশনের প্রধান মাধ্যম। এখানে জনপ্রিয় কিছু ওয়ার্কফ্লো এবং স্ট্র্যাটেজি আলোচনা করা হলো।

Pull Requests & Code Review

Forking Workflow

ওপেন সোর্স প্রজেক্টে কন্ট্রিবিউট করার জন্য Forking Workflow ব্যবহার হয়।

  1. Fork: মেইন রিপোজিটরির একটি কপি আপনার অ্যাকাউন্টে তৈরি করুন।
  2. Clone: আপনার ফর্ক করা রিপোজিটরি ক্লোন করুন।
  3. Branch & Change: নতুন ব্রাঞ্চে কাজ করুন।
  4. Push: আপনার রিপোজিটরিতে পুশ করুন।
  5. Pull Request (PR): মেইন রিপোজিটরির মেইনটেইনারের কাছে আপনার চেঞ্জ মার্চ করার জন্য রিকোয়েস্ট পাঠান।

Code Review Checklist

PR সাবমিট করার আগে বা রিভিউ করার সময় খেয়াল রাখুন:

  • Clean Code: কোড কি রিডেবল এবং মেইনটেইনেবল?
  • Functionality: রিকোয়ারমেন্ট অনুযায়ী কাজ করছে কি?
  • Tests: ইউনিট টেস্ট লেখা হয়েছে কি?
  • No Secrets: কোনো API Key বা পাসওয়ার্ড হার্ডকোড করা নেই তো?

Git Workflows

1. Feature Branch Workflow

সবচেয়ে কমন ওয়ার্কফ্লো।

  • main ব্রাঞ্চে স্টেবল কোড থাকে।
  • প্রতিটি ফিচারের জন্য main থেকে আলাদা feature ব্রাঞ্চ তৈরি করা হয়।
  • কাজ শেষে PR-এর মাধ্যমে main-এ মার্জ করা হয়।

2. Gitflow Workflow

বড় এন্টারপ্রাইজ প্রজেক্টের জন্য উপযুক্ত। এখানে নির্দিষ্ট রোলের জন্য আলাদা ব্রাঞ্চ থাকে:

  • Main: প্রোডাকশন রেডি কোড।
  • Develop: নেক্সট রিলিজের জন্য ইন্টিগ্রেশন ব্রাঞ্চ।
  • Feature: develop থেকে তৈরি হয়, নতুন ফিচারের জন্য।
  • Release: রিলিজ প্রস্তুতির জন্য।
  • Hotfix: প্রোডাকশন বাগ ফিক্সের জন্য সরাসরি main থেকে।

3. Trunk-Based Development

দ্রুত গতির (Agile/DevOps) টিমের জন্য।

  • ডেভেলপাররা ছোট ছোট চেঞ্জ সরাসরি main (Trunk) ব্রাঞ্চে ঘন ঘন মার্জ করে।
  • লং-লিভড (Long-lived) কোনো ফিচার ব্রাঞ্চ থাকে না।
  • Feature Flags ব্যবহার করে ইনকমপ্লিট ফিচার হাইড রাখা হয়।

Monorepo Strategies

Monorepo হলো এমন একটি স্ট্র্যাটেজি যেখানে একটি রিপোজিটরিতে একাধিক প্রজেক্টের (Frontend, Backend, Mobile) কোড থাকে (যেমন: Google, Facebook ব্যবহার করে)।

Pros

  • Atomic Commits: এক কমিটে ফ্রন্টএন্ড এবং ব্যাকএন্ড চেঞ্জ করা যায়।
  • Shared Code: লাইব্রেরি শেয়ার করা সহজ।
  • Unified CI/CD: সব প্রজেক্টের জন্য এক পাইপলাইন।

Cons

  • Scale: রিপোজিটরি বিশাল হয়ে যায়, git status বা git clone স্লো হতে পারে।
  • Access Control: নির্দিষ্ট ফোল্ডারে এক্সেস রেস্ট্রিক্ট করা কঠিন।

Tools

Monorepo ম্যানেজ করার জন্য কিছু টুলস:

  • Nx (JavaScript/TypeScript)
  • Bazel (Google-এর তৈরি বিল্ড টুল)
  • Lerna

Released under the MIT License.