مقدمه ای بر انباشته درخواست کششی – انجمن DEV

پشتهسازی درخواست کشش (PR) نام دیگری برای تفاوتهای پشتهای است، مفهومی که چندین سال وجود داشته است. ما به آنچه که هست، ابزارهایی که میتوانید استفاده کنید و اینکه چیدمان روابط عمومی ممکن است مفید باشد، خواهیم پرداخت.
PR Stacking چیست؟
در درخواستهای کششی سنتی (PR)، توسعهدهنده همه تغییرات را در یک یا چند commit انجام میدهد و سپس PR را باز میکند تا تغییر را دوباره در شاخه اصلی ادغام کند. در عوض، رویکرد در انباشتن روابط عمومی، جداسازی عملکردهایی است که باید به قطعات تحویل داده شوند. فرض کنید در حال کار روی یک API درخواست POST جدید هستیم. 1️⃣ اولین روابط عمومی می تواند مسیر خوشحال کننده ای باشد که در آن چیزی که ارسال می کنیم درست عمل می کند و در مقابل شعبه اصلی باز می شود. 2️⃣ قطعه کار بعدی می تواند سناریوی خطا باشد، زمانی که محموله بیش از حد بزرگ است، و آن روابط عمومی برای ادغام در شاخه از اولین PR ایجاد می شود. 3️⃣ زمانی که دادههای ارسالشده در قالبی نیستند که API قابل درک باشد، یک PR دیگر برای سناریو اضافه شود و در بالای PR دوم قرار گیرد.
یک پشته روابط عمومی شما را از ارائه تغییرات بزرگ در یک مرحله با یک بررسی طولانی دور میکند، بلکه آن را به قطعات تقسیم میکند تا به سرعت بررسی شوند.
مزایای PR Stacking چیست؟
- بررسی آسانتر – تغییرات کوچکتر باعث میشود که بازبین بفهمد چه اتفاقی میافتد و کد را بهتر میشناسد.
- رفع مشکلات – با PR های کوچکتر، وقتی اشکالی برای نویسنده و بازبین معرفی می شود، راحت تر قابل مشاهده است.
- انتظار کمتر – بررسی ها سریعتر هستند زیرا ساده هستند و توسعه دهندگان می توانند در حالی که منتظر بررسی هستند به توسعه تغییرات خود ادامه دهند.
- ارتباطات بهبود یافته – استفاده از PR های انباشته به این معنی است که ارتباطات بسیار بیشتری در مورد کد وجود دارد. این زمانی بسیار مفید است که چندین توسعه دهنده با هم بر روی یک ویژگی کار می کنند.
- تغییرات کد واضحتر – از آنجایی که PRها به یک تغییر منفرد میشوند، واضحتر است که هر تغییر چه کاری انجام میدهد و اگر با توضیحات روابط عمومی خوب همراه باشد، میتواند بازبینان را آموزش دهد.
از چه ابزاری برای PR Stacking استفاده کنم؟
می توانید با دستور git انباشتگی روابط عمومی را انجام دهید اما هیچ یک از ویژگی های یک ابزار اختصاصی مانند:
- اعمال تغییرات از PR فعلی به همه PRهایی که روی آن انباشته شده اند با انجام یک rebase خودکار.
- حاشیه نویسی روابط عمومی خود با جزئیات کل پشته روابط عمومی.
- هنگامی که یک PR پایین دستی را ادغام یا بسته اید، PR را مجدداً تنظیم کنید و مجدداً ذخیره کنید. در زیر می توانید برخی از ابزارهای موجود را از آوریل 2024 مشاهده کنید.
استفاده از انباشته روابط عمومی در یک پروژه اجتماعی
یک چالش در پروژه های جامعه (متن باز) این است که کتابخانه های وابسته می توانند آسیب پذیری های امنیتی جدیدی داشته باشند یا شیوه های کدگذاری تغییرات زیادی کرده است. رابرت سی مارتین نقل قولی دارد: «همیشه کدی را که در حال ویرایش آن هستید کمی بهتر از آنچه که آن را پیدا کردید، بگذارید». هنگامی که می خواهید یک ویژگی را در پروژه به روز کنید، می خواهید آن را بهتر از زمانی که به آن وارد شده اید رها کنید. به جای اشتباه گرفتن بازبینی کننده با مواردی که اضافه شده و دوباره ساخته شده است، می توانید در اولین PR بازنویسی خود را انجام دهید تا کد واضح تر شود. در روابط عمومی بعدی، می توانید تست ها و عملکرد را به روز کنید. برای رفع وابستگیهای کتابخانهای که قدیمی شدهاند، میتوان روابط عمومی دیگری را روی آن قرار داد.
مزیت برای بازبینان این است که می توانند تغییرات و چرایی را با هر روابط عمومی ببینند، یک جنبه مهم در پروژه های اجتماعی که به ارتباطات کمک می کند. این منجر به بررسی سریعتر و فرصتی برای ادامه ساختن عملکرد در حین جمعآوری بازخورد میشود.
مراحل بعدی چیست؟
اکنون که در مورد انباشتن روابط عمومی آموختید، ابزارهای مختلف انباشتگی روابط عمومی را آزمایش کنید. به دنبال فرصت هایی برای استفاده از ابزارها با ویژگی بعدی یا ارسال منبع باز خود باشید. مانند هر آزمایش دیگری، به تأثیری که انباشته کردن روابط عمومی و ابزار روی کار شما میگذارد توجه داشته باشید.