Metabase

ضریب اتوبوس پروژه‌های برتر GitHub

تیم متابیستیم متابیس
Nov 14, 2022
ضریب اتوبوس پروژه‌های برتر GitHub Image

ضریب اتوبوس تعداد افرادی در یک پروژه است که باید توسط یک اتوبوس برخورد کنند (یا استعفا دهند) قبل از اینکه پروژه در مشکل جدی قرار گیرد. ما به ضریب اتوبوس برای ۱,۰۰۰ پروژه برتر در GitHub (بر اساس ستاره) علاقه‌مند بودیم.

مشاهدات

داشبورد ما را بررسی کنید، یا ادامه دهید تا ببینید چه چیزی یافته‌ایم.

مجموعه داده

  • ما از GitHub API و truckfactor برای دریافت و محاسبه ضریب اتوبوس هزار مخزن برتر GitHub بر اساس تعداد ستاره استفاده کردیم.
  • به دلیل محدودیت‌های حافظه، ما فقط توانستیم ضریب اتوبوس را برای حدود ۹۵٪ از مخزن‌ها در GitHub محاسبه کنیم.
  • برای حذف مخزن‌های بدون کد (مانند منابع یادگیری، یا یک لیست انتخاب شده از یک موضوع)، ما پروژه‌هایی را که زبان برنامه‌نویسی اصلی قابل تعیین نبود، یا اگر مخزن عمدتاً از یکی از انواع فایل زیر تشکیل شده بود حذف کردیم: Makefile، TeX، Dockerfile و Markdown.
  • اگر می‌خواهید خودتان با داده بازی کنید، بروید و مجموعه داده را دانلود و کاوش کنید.

چگونه ضریب اتوبوس را محاسبه کردیم

ما از یک کتابخانه به نام truckfactor برای محاسبه ضریب اتوبوس/کامیون استفاده کردیم. در اینجا نحوه محاسبه truck factor آمده است. برای هر مخزن، truckfactor (و اینجا مستقیماً از مخزن نقل قول می‌کنیم):

  • یک git log از مخزن می‌خواند
    • یک مشارکت‌کننده مالکیت دانش یک فایل را دارد وقتی که بیشترین خطوط را در آن ویرایش کرده است.
    • آن محاسبه از A. Tornhill کد شما به عنوان صحنه جرم الهام گرفته شده است.
    • توجه داشته باشید، فقط برای فایل‌های متنی مالکیت دانش محاسبه می‌شود. ابزار ممکن است برای مخزن‌های حاوی فقط فایل‌های باینری پاسخ خوبی برنگرداند.
  • برای هر فایل محاسبه می‌کند که چه کسی مالکیت دانش آن را دارد.
  • سپس مشابه G. Avelino et al. یک رویکرد جدید برای تخمین ضریب کامیون نویسندگان کم‌مشارکت از تحلیل حذف می‌شوند تا زمانی که هنوز بیش از نیمی از همه فایل‌ها یک مالک دانش دارند. تعداد مالکان دانش باقی‌مانده ضریب کامیون مخزن داده شده است.

برای برخی بافت، مطالعات انجام شده در ۲۰۱۵ و ۲۰۱۶ ضریب اتوبوس/کامیون ۱۳۳ پروژه محبوب GitHub را محاسبه کردند. نتایج نشان می‌دهد که اکثر پروژه‌ها ضریب اتوبوس کوچکی داشتند (۶۵٪ ضریب اتوبوس ≤ ۲ دارند) و کمتر از ۱۰٪ از آن پروژه‌ها ضریب اتوبوس بیشتر از ۱۰ داشتند.

توزیع ضریب اتوبوس

تقریباً نیمی از پروژه‌ها ضریب اتوبوس دو یا کمتر دارند.

فقط ۱۰٪ از پروژه‌ها ضریب اتوبوس ۶ یا بالاتر دارند.

هیچ همبستگی بین ستاره‌های مخزن و ضریب اتوبوس وجود ندارد

ما در ابتدا فکر می‌کردیم که پروژه‌های محبوب‌تر باید مشارکت‌کنندگان بیشتری داشته باشند، و بنابراین ضریب اتوبوس بالاتری، اما به نظر نمی‌رسد که اینطور باشد.

میانگین ضریب اتوبوس زبان‌های برتر استفاده شده

ما در مورد زبان‌ها به طور کلی اینجا صحبت می‌کنیم، بنابراین زبان‌هایی مانند HTML و CSS در بازی هستند.

  • بیش از نیمی از همه پروژه‌ها از زبان اسکریپت‌نویسی Shell (اسکریپت‌های Bash) استفاده می‌کنند.
  • رایج‌ترین زبان‌ها ابزارهای مبتنی بر وب بودند: JavaScript، HTML، CSS و TypeScript. زبان‌های همه‌منظوره برتر شامل Python، C و Java بودند.
  • پروژه‌هایی که به زبان‌های توسعه مبتنی بر وب نوشته شده‌اند (JavaScript، HTML، CSS، TypeScript و SCSS) تمایل دارند که ضریب اتوبوس پایین‌تری نسبت به پروژه‌های نوشته شده به زبان‌های برنامه‌نویسی همه‌منظوره (Python، C، Java و C++) داشته باشند

محبوب‌ترین برچسب‌ها

در میان مخزن‌های با بیشترین ستاره، JavaScript محبوب‌ترین برچسب است، به رهبری چارچوب‌ها و کتابخانه‌های وب محبوب مانند React، Vue، Bootstrap و Angular. اگر Go و Golang را ترکیب کنیم، پروژه‌های نوشته شده در Go دومین زبان با بیشترین برچسب خواهند بود (اگرچه ممکن است برخی مخزن‌ها شامل هر دو برچسب Go و Golang باشند، که تعداد برچسب را تورم می‌دهد).

Hacktoberfest دومین برچسب رایج است، که منطقی است. Hacktoberfest یک جشن یک ماهه از پروژه‌های منبع باز برای تشویق مشارکت‌ها در پروژه‌های منبع باز است، و بنابراین نگهدارندگان مخزن انگیزه دارند که برچسب را اضافه کنند تا مشارکت‌کنندگان را جذب کنند.

ضریب اتوبوس بر اساس انواع نرم‌افزار

ما همچنین ضریب اتوبوس را بر اساس نوع نرم‌افزار تقسیم کردیم، و یادگیری ماشین بیشترین پروژه‌ها را با ضریب اتوبوس در ارقام دو رقمی داشت.

پروژه‌های بک‌اند

پروژه‌های فرانت‌اند

پروژه‌های یادگیری ماشین

پروژه‌های هوش تجاری

نتیجه‌گیری‌ها

  • متابیس از حمل‌ونقل عمومی پشتیبانی می‌کند.
  • نرم‌افزار بر روی خانه کارت‌ها ساخته شده است.
  • کد خود را مستند کنید.
  • ضریب اتوبوس متابیس مناسب است (۴). علاوه بر این، ما یک تیم کاملاً توزیع شده هستیم، بنابراین تصادفات اتوبوس باید به طور جهانی هماهنگ شوند تا پروژه را در هر نوع خطر قرار دهند.
  • اما ضریب اتوبوس ما می‌تواند بهتر باشد، بنابراین، می‌دانید، ما در حال استخدام هستیم.