۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

یک جایگزین هوش مصنوعی برای ابزارهای جستجوی کد

COBOL Colleague از یادگیری ماشین نمادین و تجزیه و تحلیل استاتیک برای کمک به توسعه دهندگان برای درک و حفظ کد منبع COBOL استفاده می کند. همین فناوری را می توان برای سایر زبان های برنامه نویسی نیز به کار برد.

COBOL Colleague از یادگیری ماشین نمادین و تجزیه و تحلیل استاتیک برای کمک به توسعه دهندگان برای درک و حفظ کد منبع COBOL استفاده می کند. همین فناوری را می توان برای سایر زبان های برنامه نویسی نیز به کار برد.

مثل هر رشته دیگری، توسعه نرم افزار دارای چالش های بهره وری است. آیا باور دارید که توسعه دهندگان نرم افزار به طور متوسط ​​تقریباً ۷۵٪ از زمان خود را صرف می کنند. a> فقط در حال جستجو و درک کد برای ایجاد تغییرات لازم هستید؟

با توجه به اینکه توسعه‌دهندگان زمان و تلاش زیادی را صرف دستیابی به اهداف خود می‌کنند، قبل از اینکه هر کار واقعی انجام شود، زمان و انرژی کمتری برای ایجاد راه‌حل‌های خلاقانه برای چالش‌های توسعه دشوار دارند. و بین کمبود جهانی روزافزون توسعه دهندگان ماهر و نیاز مبرم به به روز رسانی مکرر برنامه ها برای حمایت از تقاضاهای دائماً در حال تغییر کسب و کار، به توسعه دهندگانی نیاز داریم که تا حد امکان سازنده باشند.

به لطف هوش مصنوعی، ابزارهایی برای پر کردن شکاف دانش برنامه‌نویسان برای توسعه‌دهندگان در دسترس هستند، و این نوید را می‌دهند که به طور تصاعدی بهره‌وری توسعه‌دهندگان را در بین برنامه‌ها بهبود بخشند. همکار COBOL، از Phase Change Software، ابزاری مبتنی بر هوش مصنوعی است که به توسعه‌دهندگان کمک می‌کند تا به سرعت ذهنیت خود را به دست آورند. مدل یک پایگاه کد COBOL، و کد دقیقی را که باید تغییر دهند به صفر برسانید.

برای بسیاری از سازمان‌ها که به برنامه‌های اصلی قدیمی متکی هستند، COBOL Coleague می‌تواند به آنها اجازه دهد تا فوراً به تخصص برنامه‌های کاربردی از دست رفته دسترسی پیدا کنند و کنترل فکری برنامه‌های خود را دوباره به دست آورند. در آینده، همین فناوری را می توان برای هر زبان برنامه نویسی دیگری اعمال کرد.

این مقاله عمیق‌تر به چالش‌های پیش روی توسعه‌دهندگانی می‌پردازد که برنامه‌های اصلی را نگهداری می‌کنند، کاستی‌های ابزارهای موجود را ارزیابی می‌کند، و توضیح می‌دهد که چگونه COBOL Colleague صلاحیت روز اول را برای توسعه‌دهندگانی که با کد منبع COBOL کار می‌کنند، فعال می‌کند.

مدرن سازی برنامه های اصلی

سازمان‌های بی‌شماری همچنان به برنامه‌های قدیمی برای تقویت چندین عملکرد اصلی کسب‌وکار وابسته هستند. با بسیاری از بانک‌های برتر جهان، بزرگترین شرکت‌های بیمه، بزرگ‌ترین خرده‌فروشان و اکثریت قریب به اتفاق شرکت‌های Fortune 500 که از پردازنده‌های مرکزی برای انجام کسب‌وکار خود استفاده می‌کنند، رایانه‌های بزرگ هنوز هم حدود ۶۸٪ از حجم کاری که تولید جهان را برای بارهای کاری حیاتی انجام می دهد. همه این برنامه ها نمی توانند به سادگی با رشد و بلوغ این مشاغل ثابت بمانند.

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

GitHub Copilot X روی ChatGPT-4 ضربه خواهد زد

به‌علاوه، بسیاری از پروژه‌های مدرن‌سازی به اشتباه تصور می‌کنند که کد یک برنامه موجود صحیح است و عملکرد آن می‌تواند دقیقاً توسط تحلیلگران و برنامه‌نویسان ضبط شود. با این حال، اغلب اوقات، این مخازن کد منبع با میلیون‌ها خط کد حاوی مقادیر زیادی کد مرده و ناکارآمد و قوانین تجاری قدیمی هستند که دیگر اعمال نمی‌شوند. نتیجه؟ «راه‌حل‌های» کوته‌بینانه که بر روی کد موجود یا پیرامون آن ساخته شده‌اند، سیستم‌هایی را به‌طور فزاینده‌ای غیرقابل استفاده ایجاد می‌کنند که تغییر و نگهداری آن‌ها بدون خطر قابل‌توجه حتی چالش‌برانگیزتر است.

حتی زمانی که یک سازمان از قبل یک استراتژی تعمیر و نگهداری در اختیار داشته باشد، این برنامه عمل احتمالاً بر یافتن توسعه دهندگان با دانش زبانی خاص متمرکز است. معمولاً به مشکل بزرگ‌تر رسیدگی نمی‌کند: از دست دادن دانش کاربردی لازم برای حفظ برنامه‌های کاربردی حیاتی. چه از طریق همکاری با یک توسعه‌دهنده کهنه‌کار که دانش دقیقی از سیستم دارد، یا با استفاده از جستجوی کد سنتی و ابزارهای تجزیه و تحلیل استاتیک و پویا، توسعه‌دهندگانی که تازه وارد یک سیستم شده‌اند معمولاً به ۱۸ ماه زمان نیاز دارند تا به سرعت تغییرات آماده تولید را انجام دهند. . بسیاری از شرکت‌ها نمی‌توانند قبل از اینکه یک توسعه‌دهنده آماده تعمیر و به‌روزرسانی برنامه‌های قدیمی حیاتی خود شوند، در این مدت آموزش حین کار صبر کنند.

ابزارهای سنتی ناکافی

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

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

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

Deno تبدیل JSX، پشتیبانی WebAssembly را بهبود می بخشد

حتی با استعدادترین و با تجربه‌ترین توسعه‌دهندگان نرم‌افزار تلاش می‌کنند تا به طور همزمان جنبه‌های متفاوت و مرتبط مسیر اجرای برنامه را در میان همه کدهایی که نامربوط می‌دانند پیگیری کنند. در نتیجه، اشکال‌زدایی‌ها آنطور که انتظار می‌رود به طور گسترده مورد استفاده قرار نمی‌گیرند در محیط‌های برنامه‌نویسی کاربردی.. p>

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

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

همکاری با یک همکار هوش مصنوعی

همکار COBOL که یک شریک هوش مصنوعی برای توسعه دهندگان رایانه های بزرگ است، از تقویت هوش استفاده می کند تا فوراً این شکاف دانش برنامه را ببندد. با استفاده از یادگیری ماشین نمادین بر روی کد برنامه، COBOL Colleague با ابزارهای سنتی متفاوت است، زیرا توسعه دهندگان صرفاً باید این رفتار را “بخواهند” و کد صحیح و داده های لازم برای تکرار رفتار مورد نظر بلافاصله به آنها بازگردانده می شود. COBOL Colleague یک عامل هوش مصنوعی است که درک می کند که توسعه دهندگان قبلی برنامه هنگام ایجاد و اصلاح برنامه چه چیزهایی می دانستند، و در به اشتراک گذاری دانش خود در حین همکاری با توسعه دهندگان برتری دارد.

به عنوان مثال، یکی از رویکردهای رایج برای رفع اشکال، جستجوی کدی است که به درستی کار می کند تا توسعه دهندگان بتوانند از آن به عنوان مبنایی برای یافتن کدی که نادرست کار می کند استفاده کنند. از آنجا، توسعه دهندگان می توانند از نظر ذهنی این دو را با هم مقایسه کنند. بدون COBOL Colleague، توسعه‌دهندگان باید کد و داده‌های مرتبط را که هر دو رفتار را انجام می‌دهند ردیابی کنند و پردازشی را که انجام می‌شود به صورت ذهنی مقایسه کنند. مقایسه ای که توسعه دهنده انجام می دهد یک تفاوت کد ساده نیست.

در مقابل، ویژگی تفاوت معنایی COBOL Colleague از قابلیت ذاتی ایجاد ردیابی شبیه‌سازی از مسیر اجرای کد و داده‌های مرتبط برای زمانی که کد به درستی کار می‌کند و زمانی که کد نادرست کار می‌کند، استفاده می‌کند. فراتر از مقایسه متنی، این ردیابی های شبیه سازی توسعه دهندگان را قادر می سازد تا به اندازه کافی رفتارها را در ساختار ساختار حلقه ای مقایسه کنند. ممکن است مواردی وجود داشته باشد که عملکرد نادرست فقط در تکرار دوم یک حلقه ظاهر شود، بنابراین در حالی که مقایسه متن به شما کمک نمی‌کند تا آن را ببینید، COBOL Colleague این کار را می‌کند.

پشتیبانی مایکروسافت دات نت 7 در ماه می به پایان می رسد

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

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

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

استیو برادرز رئیس نرم افزار تغییر فاز است. استیو بیش از ۳۰ سال تجربه در سازمان های مرتبط با فناوری با نقش های رهبری، فنی و فروش در صنایعی مانند خدمات مالی، مراقبت های بهداشتی و ابزارهای توسعه نرم افزار دارد. پیش از این، استیو سمت‌هایی را به‌عنوان مدیرعامل در Ajubeo و معاون اجرایی و CIO برای راه‌حل‌های وام شهری داشت. استیو از دانشگاه کلرادو در بولدر فارغ التحصیل شد و دارای مدرک B.A. در فلسفه و مدرک B.S. در سیستم های اطلاعاتی.

New Tech Forum مکانی برای کاوش و بحث در مورد فناوری سازمانی نوظهور در عمق و وسعت بی سابقه ای فراهم می کند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه سوالات را به newtechforum@infoworld.com ارسال کنید.