برنامه نویسی

ادغام GIT DataVerse (پیش نمایش) – ملاحظات ALM

در مقاله قبلی این سریال تجربه خود را با روند تعهد نشان داده ام.

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

⚠ فرآیند نسخه سازی را مدیریت کنید

مهم است که آگاه باشید که:

  1. هر راه حل در پیکربندی به یک شاخه/پوشه معین گره خورده است ، و از هم اکنون ، پس از تنظیم ، این اتصال قابل تغییر نیست.
  2. تمام تغییرات ایجاد شده در آن راه حل به طور خودکار برای تعهد ردیابی می شوند ، و شما نمی توانید 🍒 Cherry-Peek 🍒 مواردی که باید انجام شود. همه یا هیچکدام است.
  3. از امروز هیچ راهی برای بازگشت تغییرات ایجاد شده در محیط محلی شما وجود ندارد (منظورم چیزی شبیه به آن است undo pending changes در ویژوال استودیو)

این 3 نکته توجه ، با هم ، منجر به یک پیامدهای مستقیم می شود: شما نمی توانید بیش از یک ویژگی به طور موازی در همان محیط کار کنید، مگر اینکه راه حل های خود را تقسیم کنید در هر ویژگی (و در تجربه من کاملاً ایده خوبی نیست) ، زیرا تمام تغییرات موجود در یک راه حل معین به صورت اتمی انجام می شود.

وضعیتی را تصور کنید که شما 👩🏻‍🦰 آلیس و 👨🏻‍🦱 باب داشته باشید. آنها در همان محیط کار می کنند ، در همان راه حل (بیایید آن را صدا کنیم master). 👩🏻‍🦰 آلیس در حال ایجاد یک زمینه جدید فرمول در فرصت جدول ، در حالی که 👨🏻‍🦱 باب در تلاش است تا مورد فرم موجودیت با چند JS های سفارشی.

👩🏻‍🦰 وظیفه آلیس بسیار آسان است ، او زود تمام می شود ، در حالی که 👨🏻‍🦱 bob یک مدتی طول می کشد و به چند تکرار نیاز دارد تا برای آزمایش مناسب باشد.

اگر 👩🏻‍🦰 آلیس تصمیم به ایجاد تغییر در repo کند ، او در تغییر دادن زبانه همچنین تغییرات ایجاد شده توسط 👨🏻‍🦱 bob ، که هنوز سازگار نیستندبشر 🚩 او چیزهای متناقض را در repo بررسی می کند.

با رویکرد “کلاسیک” که در مقاله اول این سریال شرح داده شده است ، 👩🏻‍🦰 آلیس می تواند با خیال راحت فقط تغییرات خود را انجام دهد که در زیر انجام می شود:

  1. طبق معمول ، تغییرات در DataVerse را اجرا کنید
  2. به صورت محلی ، در کد VS/VS ، اجرا کنید pac solution sync برای همگام سازی محلی تمام تغییرات ایجاد شده در master راه حل. در اینجا او همچنین تمام چیزهای متناقض ساخته شده توسط 👨🏻‍🦱 Bob را بارگیری می کند.
  3. با استفاده از undo pending changes ویژگی Visual Studio در مؤلفه های راه حل که او لمس نکرده است ، او می تواند فقط تغییرات ایجاد شده توسط باب را که نمی خواهد مرتکب شود ، “برگرداند”.
  4. متعهد و فشار راه حل مداوم با فقط چیزهای خودشبشر

در حقیقت ، رویکرد ارائه شده توسط مایکروسافت در اسناد کاملاً متفاوت است:

طرح اصلی مایکروسافت

  • سازندگان (توسعه دهندگان) کار می کنند انزوا در آنها محیط های توسعه شخصیبشر
  • سازندگان از طریق ادغام GIT بومی همکاری می کنند و هر زمان که وظیفه آنها آماده باشد ، تغییرات را به یک repo متمرکز فشار می آورند و از طریق repo تغییر می کنند تا محیط محلی خود را با تغییرات متعهد همگام سازی کنند
  • ⚠ خطوط لوله در پلت فرم برق اتوماسیون استقرار از کنترل منبع را تسهیل می کنند. راه حل ها از طریق خطوط لوله پلت فرم برق به محیط های هدف منتقل می شوند

این یک فرآیند ALM است که کاملاً متفاوت از One DEVS است که از Dynamics 365 CE / CRM استفاده می شود ، و یک نکته کلیدی وجود دارد که امروز به آن پرداخته نشده است: از امروز 🚩 شما نمی توانید راه حلی را مستقیماً از منابع ذخیره شده در repo از طریق ادغام GIT بومی بازسازی کنید (این کاری است که شما می توانید/باید انجام دهید ، اگر رویکرد قدیمی را از طریق PAC CLI اعمال کنید).

این بدان معناست که شما باید برای هر محیط “ادغام” dev + 1 محیط داشته باشید.

فرآیند

  1. 👩🏻‍🦰 👨🏻‍🦱 هر کاربر در صورت آماده سازی تغییرات خاص خود را انجام می دهد ،
  2. 🧑🏻‍💻 سپس “سرب تیم” به صورت دوره ای (و به صورت دستی ، زیرا API هنوز در دسترس نیست تا این کار را انجام دهد) تغییر در محیط ادغام.
  3. 🚄 پس از به روزرسانی راه حل در محیط “ادغام” ، می توان خط لوله بستر برق را برای بسته بندی راه حل به صورت مدیریت و استقرار آن در محیط آزمایش هدف (و بعداً در تولید) ایجاد کرد.

🤔 نتیجه گیری

توانایی قدرتمند است. این امکان را به سازندگان می دهد تا به طور کارآمد همکاری کنند و تلاش های خود را برای ساده کردن فرآیند شروع به کار بین محیط های توسعه دهنده مجرد متحد کنند ، اما:

  • فقدان قابلیت های حل تعارض واقعی (بخوانید: “ادغام” یا حداقل “مقایسه”)
  • عدم امکان ساخت از کد منبع (که اگر می خواهید اطمینان حاصل کنید که سفارشی سازی ها و کد سفارشی همیشه تراز شده اند ، اجباری است)

به نظر می رسد این یک ابزار/فرایندی است که برای شهروندان طراحی شده استبشر من هنوز در تلاش هستم تا بفهمم چگونه می توان آن را در سناریوهای پیچیده و واقعی زندگی کار کرد.

❓ و شما؟ نظر شما در مورد آن چیست؟ آیا ایده/پیشنهادی در مورد نحوه استفاده مؤثر در یک راه حل سازمانی وجود دارد؟ نظر خود را در اینجا یا در صفحه LinkedIn من رها کنید و به من اطلاع دهید!

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

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

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

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