برنامه نویسی

اصلاح مجدد انبوه در .NET: یک جلسه طوفان مغزی

سناریوهای خاصی وجود دارد که تطبیق کد بسیاری از خدمات میکروسرویس ضروری می شود. یک مورد مشترک پشتیبانی از یک ویژگی جدید است. در موارد دیگر ، به دلیل تغییر URL که بر چندین سرویس تأثیر می گذارد ، ممکن است یک اصلاح مجدد مورد نیاز باشد. علاوه بر این ، مهاجرت هایی مانند به روزرسانی نسخه .NET یا جابجایی به ذخیره سازی دیگر می توانند خواستار اصلاح گسترده ای شوند.

هنگام ایجاد چنین تغییراتی در مخازن متعدد ، چندین چالش آشکار می شود. کار گاهی خسته کننده است. در بهترین سناریو ، یک دستورالعمل به خوبی تعریف شده برای دنبال کردن وجود دارد. اما حتی پس از آن ، خطاهای انسانی اجتناب ناپذیر است. ممکن است فراموش کنید که پیکربندی را تطبیق دهید ، وابستگی ها را نادیده بگیرید یا تغییرات نادرست را تغییر دهید و منجر به جلسات اشکال زدایی شود. بررسی چنین تغییراتی ممکن است خسته کننده باشد ، که می تواند منجر به استقرار اشتباهات بی توجه شود. تلاش کلی قابل توجه است ، و اغلب باعث می شود تیم ها با وجود ضرورت خود ، این اصلاحات را به تعویق بیندازند.

برای کاهش خطرات و سهولت در تجربه توسعه دهنده ، اتوماسیون یا حداقل اتوماسیون جزئی ضروری می شود. تیم ها می توانند با استفاده از ابزارهای اسکریپت و اصلاح مجدد ، وظایف تکراری را ساده تر کنند تا تغییرات را در چندین مخازن اعمال کنند. بنابراین ، من می خواهم از این ورودی وبلاگ برای جمع آوری برخی از ایده ها و سؤالاتی در مورد چگونگی ظاهری چنین سیستمی برای محیط .NET استفاده کنم (همانطور که خودم یک توسعه دهنده .NET هستم).

ابزارهای موجود

در اینجا دو ابزار موجود برای استفاده وجود دارد:

چند زبانه

Multi-Gitter ابزاری است که توسط Lindell ساخته شده است و به توسعه دهندگان اجازه می دهد اسکریپت ها را اعمال کنند و درخواست های ادغام/کشش را در بسیاری از مخازن ایجاد کنند. من قبلاً از آن استفاده کردم و تحت تأثیر قرار گرفتم که چقدر زمان ذخیره کردم هنگام نیاز به ترفند چیزهای کوچک (اضافه کردن یک فایل جدید ، تغییر پیکربندی ، …) در چندین بازپرداخت.

Openrewrite توسط Moderne

Openrewrite خود را به عنوان یک اکوسیستم اصلاح کننده توصیف می کند. این امکان را به توسعه دهندگان می دهد تا دستور العمل ها (تغییر کد شما) را در چندین مخزن اجرا کنند. با استفاده از یک درخت معنایی بدون ضرر و کد مبتنی بر جاوا ، می توانید کد برنامه های خود را اصلاح کنید. می توان این دستور العمل ها را از طریق TheConsole اجرا کرد. Moderne (شرکت پشت OpenRewRite) همچنین یک بستر ابری با یک پیشکسوت برای اجرای دستور العمل ها ارائه می دهد

س questions الات مربوط به refactors mass .net

چندین سؤال اساسی هنگام در نظر گرفتن اتوماسیون برای بازپرداختهای انبوه در .NET ایجاد می شود:

  • آیا می توان از API Roslyn برای اصلاح مجدد خودکار استفاده کرد؟

Roslyn قابلیت های تجزیه و تحلیل و اصلاح کد C# را فراهم می کند. آیا می توان از آن برای اعمال تغییرات C# Code استفاده کرد؟

  • چگونه می توانیم از طریق کد C# با استفاده مجدد از COD استفاده کنیم؟

در حالی که ما ممکن است از Roslyn برای کد C# استفاده کنیم ، سازگاری برای پرونده های پیکربندی ضروری خواهد بود (.yaml ، .csproj ، .json ، …). چگونه پشتیبانی از تغییرات در این پرونده ها به نظر می رسد؟ چگونه می توانیم Refactorings را برای C# و سایر پرونده ها ترکیب کنیم؟

  • یک تجربه توسعه دهنده ایده آل چگونه به نظر می رسد؟

آیا چنین ابزاری باید به عنوان یک برنامه مبتنی بر GUI ، یک ابزار CLI طراحی شود یا به IDE متصل شود (با نگاهی به تهیه اسکریپت های Roslyn)؟ کارآمدترین راه حل چیست؟

  • بهترین روش برای ساخت مجدد مجدد برای به اشتراک گذاری آسان در چندین تیم چیست؟

یک سوال بسیار مهم است زیرا به طور گسترده ای بر تجربه توسعه دهنده تأثیر می گذارد. سؤالات مرتبط با طراحی معماری ابزار عبارتند از: به چه شکلی باید کد اصلاح مجدد وجود داشته باشد؟ آیا باید به عنوان یک کتابخانه Nuget بسته بندی شود؟ آیا باید در مخزن ذخیره شود که توسعه دهندگان به کلون نیاز دارند؟

من مشتاقانه منتظر بررسی این موضوع در هفته های بعد هستم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا