پرش به محتوای اصلی
OpenAI

۱۹ دی ۱۴۰۴

Datadog از Codex برای بازبینی کد در سطح سیستم استفاده می‌کند.

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

در حال بارگذاری…

Datadog(در یک پنجره جدید باز می‌شود) یکی از پرکاربردترین پلتفرم‌های مشاهده‌پذیری جهان را اجرا می‌کند و به شرکت‌ها کمک می‌کند تا سیستم‌های پیچیده توزیع‌شده را پایش، عیب‌یابی و ایمن‌سازی نمایند. وقتی چیزی خراب می‌شود، مشتریان برای شناسایی سریع مشکلات به Datadog متکی هستند، به این معنی که قابلیت اطمینان باید مدت‌ها قبل از اینکه کد به تولید برسد، در آن تعبیه شده باشد.

برای تیم‌های مهندسی Datadog، این موضوع بازبینی کد را به لحظه‌ای حساس و پرمخاطره تبدیل می‌کند. این فقط دربارهٔ یافتن اشتباهات نیست، بلکه دربارهٔ درک این است که تغییرات چگونه در سیستم‌های به‌هم‌پیوسته تأثیر می‌گذارند—حوزه‌ای که ابزارهای سنتی تحلیل ایستا و مبتنی بر قواعد اغلب در آن ناکارآمد هستند.

برای مواجهه با این چالش، تیم تجربه توسعه AI (AI DevX) Datadog به Codex، عامل کدنویسی از OpenAI، روی آورد که استدلال در سطح سیستم را به بازبینی کد وارد می‌کند و ریسک‌هایی را آشکار می‌سازد که انسان‌ها در مقیاس بزرگ به‌راحتی نمی‌توانند ببینند.

Brad Carter که تیم AI DevX در Datadog را رهبری می‌کند می‌گوید: «صرفه‌جویی در زمان واقعی و مهم است». «اما جلوگیری از حوادث در مقیاس ما بسیار جذاب‌تر است.»

افزودن زمینه در سطح سیستم به بازبینی کد با Codex

بازبینی مؤثر کد در Datadog به‌طور سنتی به‌شدت به مهندسان ارشد متکی بود—افرادی که پایگاه کد، تاریخچهٔ آن و مصالحه‌های معماری را به‌خوبی می‌فهمند تا بتوانند ریسک‌های سیستماتیک را شناسایی کنند. 

اما چنین زمینه عمیقی به سختی مقیاس‌پذیر است و ابزارهای اولیه بازبینی کد مبتنی بر AI این مشکل را حل نکردند؛ بسیاری مانند لینترهای پیشرفته عمل می‌کردند و مشکلات سطحی را علامت‌گذاری می‌کردند، در حالی که از ظرافت‌های گسترده‌تر سیستم غافل می‌ماندند. مهندسان Datadog اغلب پیشنهادها را بیش از حد سطحی یا پر از نویز می‌دانستند و آن‌ها را نادیده می‌گرفتند.

Datadog شروع به اجرای آزمایشی Codex، عامل کدنویسی OpenAI، با ادغام آن در جریان‌های کاری توسعه زنده کرد. در یکی از بزرگ‌ترین و پرکاربردترین محل‌های نگهداری شرکت، هر درخواست نظرسنجی به‌صورت خودکار توسط Codex بازبینی می‌شد. مهندسان به نظرات Codex با علامت انگشت شست بالا یا پایین واکنش نشان دادند و بازخورد غیررسمی را بین تیم‌ها به اشتراک گذاشتند. بسیاری اشاره کردند که بازخورد Codex ارزش خواندن داشت، برخلاف ابزارهای قبلی که پیشنهادهای پرنویز یا سطحی ارائه می‌دادند.

اعتبارسنجی ارزیابی AI در مقابل حوادث واقعی

برای آزمایش اینکه آیا بازبینی با کمک AI می‌تواند کاری بیش از اشاره به مشکلات سبک انجام دهد، Datadog یک چارچوب بازپخش رخداد ساخت.

به جای استفاده از سناریوهای فرضی، تیم به حوادث تاریخی بازگشت. آن‌ها درخواست‌های نظرسنجی را که در رخدادها نقش داشتند بازسازی کردند، Codex را روی تک‌تک آن‌ها طوری اجرا کردند که انگار بخشی از بازبینی اولیه بوده است، سپس از مهندسانی که مالک آن رخدادها بودند پرسیدند آیا بازخورد Codex می‌توانست تفاوتی ایجاد کند یا نه.

نتیجه: Codex بیش از ۱۰ مورد، یا تقریباً ۲۲٪ از رخدادها که Datadog بررسی کرد، یافت؛ مواردی که در آن مهندسان تأیید کردند بازخوردی که Codex ارائه داد می‌توانست تفاوت ایجاد کند—بیش از هر ابزار دیگری که ارزیابی شد.

از آنجا که این درخواست نظرسنجی‌ها از قبل بازبینی کد را پشت سر گذاشته بودند، آزمون بازپخش نشان داد که Codex ریسک‌هایی را آشکار کرده است که بازبین‌ها در آن زمان متوجه نشده بودند و به‌جای جایگزین کردن قضاوت انسانی، آن را تکمیل می‌کرد.

ارائه بازخورد منسجم و با سیگنال قوی

تحلیل Datadog نشان داد که Codex به‌طور پیوسته مشکلاتی را شناسایی می‌کند که صرفاً از طریق تفاوت‌های مستقیم دو نسخه قابل مشاهده نیستند و با قواعد قطعی نیز قابل تشخیص نمی‌باشند.

مهندسان نظرات Codex را به عنوان چیزی فراتر از «نویز ربات» توصیف کردند:

  • Codex به تعاملات با ماژول‌هایی اشاره کرد که در تفاوت دو نسخه تغییری نکرده بودند
  • این مورد پوشش تست از دست‌رفته را در حوزه‌های اتصال بین‌سرویس شناسایی کرد.
  • این تغییرات قرارداد API را که ریسک‌های پایین‌دستی به همراه داشت، برجسته کرد
«برای من، یک نظر Codex مانند باهوش‌ترین مهندسی است که با او کار کرده‌ام و زمان بی‌نهایتی برای یافتن باگ‌ها دارد. ارتباط‌هایی را می‌بیند که مغزم نمی‌تواند همه را یک‌جا درک کند.»
—Brad Carter، مدیر مهندسی در Datadog

آن توانایی اتصال بازخورد بازبینی به نتایج واقعی قابلیت‌اعتماد بود که Codex را در ارزیابی Datadog متمایز کرد. برخلاف ابزارهای تحلیل استاتیک، Codex هدف درخواست نظرسنجی را با تغییرات کد ارسال‌شده مقایسه می‌کند و با استدلال بر روی کل کدبیس و وابستگی‌ها، کد و تست‌ها را اجرا می‌کند تا رفتار را اعتبارسنجی کند.

Carter می‌گوید:‌«این اولین موردی بود که واقعاً به نظر می‌رسید تفاوت دو نسخه را در زمینه گسترده‌تر برنامه در نظر می‌گیرد». «این موضوع جدید و چشم‌گشا بود.»

برای بسیاری از مهندسان، آن تغییر به‌طور کلی نحوه تعامل آن‌ها با بازبینی AI را تغییر داد. Ted Wexler، مهندس ارشد نرم‌افزار در Datadog می‌گوید: «من شروع کردم با نظرات Codex مانند بازخورد واقعی بررسی کد برخورد کنم.» «نه چیزی که از رویش سرسری رد شوم یا نادیده‌اش بگیرم، بلکه چیزی که ارزش توجه کردن دارد.»

مهندسان متمرکز بر طراحی به‌جای کشف

پس از ارزیابی، Datadog، Codex را به‌طور گسترده‌تری در میان نیروی مهندسی خود به کار گرفت. امروز بیش از ۱,۰۰۰ مهندس به طور منظم از آن استفاده می‌کنند. 

بازخورد عمدتاً به‌صورت طبیعی و خودجوش مطرح می‌شود، نه از طریق معیارهای رسمی درون‌ابزاری. مهندسان در Slack درباره بینش‌های مفید، نظرات سازنده، و لحظاتی پست می‌گذارند که Codex به آنها کمک کرد تا درباره یک مسئله به شکل متفاوتی فکر کنند.

در حالی که صرفه‌جویی در زمان قابل‌توجه است، تیم‌ها به‌طور مداوم به تغییری معنادارتر در نحوه انجام کارها اشاره می‌کنند. 

«Codex نظر من را درباره اینکه بازبینی کد باید چگونه باشد تغییر داد. موضوع تکرار بهترین بازبین‌های انسانی ما نیست. این درباره یافتن نقص‌های بحرانی و موارد مرزی است که انسان‌ها هنگام بازبینی تغییرات به‌صورت مجزا به‌سختی می‌توانند ببینند.»
—Brad Carter، مدیر مهندسی در Datadog

بازتعریف بازبینی کد بر محور ریسک، نه سرعت

تأثیر گسترده‌تر برای Datadog تغییری در نحوه تعریف بازبینی کد به وجود آورد. به‌جای اینکه بازبینی را به‌عنوان یک نقطه کنترل برای یافتن خطاها یا بهینه‌سازی زمان چرخه در نظر بگیرد، این تیم اکنون Codex را به‌عنوان یک سیستم قابلیت اطمینان اصلی می‌بیند که به‌عنوان یک شریک عمل می‌کند:

  • آشکارسازی ریسک فراتر از آنچه که بازبین‌های فردی می‌توانند در زمینه درک کنند
  • برجسته‌سازی تعاملات بین ماژول‌ها و بین سرویس‌ها
  • افزایش اعتماد به نفس در حمل و نقل در مقیاس بزرگ
  • اجازه دادن به بازبین‌های انسانی برای تمرکز بر معماری و طراحی

این تغییر با نحوه‌ای همسو است که رهبران Datadog اولویت‌های مهندسی را چارچوب‌بندی می‌کنند؛ جایی که قابلیت اطمینان و اعتماد به همان اندازه، اگر نه بیشتر از، سرعت اهمیت دارد.

Carter می‌گوید: «ما پلتفرمی هستیم که شرکت‌ها وقتی همه چیز دیگر از هم می‌پاشد، به آن تکیه می‌کنند.» «پیشگیری از حوادث اعتماد مشتریان به ما را تقویت می‌کند.»