۱ دی ۱۴۰۳

Techboy

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

AppMap: نقشه ای برای کاهش زحمت توسعه دهندگان

AppMap منبع باز تجزیه و تحلیل کد زمان اجرا را به ویرایشگر کد توسعه‌دهنده می‌آورد و بازخورد مورد نیاز برای رسیدگی به مشکلات عملکرد و امنیت در طول توسعه و کاهش دوباره کاری کد را ارائه می‌دهد.

AppMap منبع باز تجزیه و تحلیل کد زمان اجرا را به ویرایشگر کد توسعه‌دهنده می‌آورد و بازخورد مورد نیاز برای رسیدگی به مشکلات عملکرد و امنیت در طول توسعه و کاهش دوباره کاری کد را ارائه می‌دهد.

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

زمان و تلاش هدر رفته توسعه‌دهنده، که شامل فرآیندهای ناکارآمد و کار مجدد کد می‌شود، اغلب به عنوان «مشکل توسعه‌دهنده» شناخته می‌شود. به گفته Stripe، توسعه دهندگان بیش از نیمی از هفته کاری خود را به زحمت می گذرانند، با برخی برآوردها تا ۸۰ درصد. زحمت و زحمت بیش از ۸۵ میلیارد دلار در سال در تلاش های هدر رفته توسعه دهندگان به کسب و کارها خرج می کند.

شرکت‌ها در تلاش هستند تا در تیم‌های مهندسی خود به مشکل رسیدگی کنند، و بسیاری هنوز برای حل آن اقدام نکرده‌اند، اما تأثیر زحمات بیش از حد توسعه‌دهنده در نرخ‌های حفظ کارکنان مشهود است. Toil برای توسعه دهندگان بسیار ناامید کننده است. بیش از ۷۰٪ از توسعه دهندگان گزارش می دهند که چرخه های دوباره کاری آنها را ناراضی می کند و منجر به جستجوی فرصت های شغلی دیگر می شود. بر اساس ۲۰۲۱، ناامیدی حرفه ای به میانگین نرخ گردش مالی بی سابقه ۵۷.۳٪ در میان توسعه دهندگان کمک می کند. گزارش اداره آمار کار. و در حالی که اخیراً اخراج هایی در شرکت های فناوری وجود داشته است، تقاضا برای توسعه دهندگان همچنان بالاست.

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

علل زحمت توسعه دهنده

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

استفاده از مدل های یادگیری ماشینی Hugging Face در Azure

شرکت‌ها میلیاردها دلار صرف درک اکوسیستم ابزارها، فناوری‌ها، کتابخانه‌ها و کدهایی می‌کنند که برنامه‌های نرم‌افزاری مدرن تولید می‌کنند. مشاهده‌پذیری و نظارت بر عملکرد برنامه‌های کاربردی سیستم‌های نرم‌افزار تولیدی، شیوه‌های devops و فناوری اطلاعات به خوبی تثبیت شده‌اند. با این حال، مشاهدات عملکرد ضعیف اندازه‌گیری شده در یک سیستم تولید ممکن است نشانگر انتهایی کیفیت کد ضعیف باشد. برآوردها حاکی از آن است که بین ۴۰ تا ۹۰ درصد مشکلات عملکرد تولید امروزی در سطح کد است. مشکلات مربوط به عملکرد ممکن است روزها یا هفته ها طول بکشد اگر به سیستم های تولیدی فرار کنند را حل کنید.

متأسفانه، توسعه‌دهندگان اطلاعاتی که باید برنامه‌های خود را برای مشکلات عملکرد مرتبط با کد آزمایش کنند، در تجربه کدنویسی وجود ندارد. ابزارهای مشاهده‌پذیری اغلب بر «بار» تکیه می‌کنند و کاربرد این ابزارها را در محیط‌های آزمایش و مرحله‌بندی برای انجام این نوع تحلیل‌ها نامناسب می‌سازند.

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

تحلیل امنیتی زمان اجرا وجود ندارد

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

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

کاهش شکاف با قابلیت مشاهده توسعه‌دهنده محور

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

چگونه eBPF نوآوری بومی ابر را باز می کند

AppMap با این فرض ساده ساخته شده است که توسعه دهندگان باید بتوانند رفتار را ببینند. نرم افزار هنگام نوشتن کد اطلاعات زمان اجرا پویا در مورد نرم افزار در طول فرآیند کدنویسی یک شکاف اطلاعاتی مهم است که باید برطرف شود تا توسعه دهندگان بتوانند تصمیمات بهتری برای کدنویسی بگیرند. داده‌های زمان اجرا در طول فرآیند کدنویسی مزایای زیادی برای توسعه‌دهندگان و تیم‌های توسعه دارد.

AppMap اطلاعاتی را درباره نحوه عملکرد کد هنگام اجرا، برای هر نسخه از کد برای هر محیطی جمع‌آوری می‌کند: آخرین کدی که برای تولید، در یک درخواست کشش یا در جدیدترین تغییرات غیرمتعهد استفاده شده است. یک توسعه دهنده در حال کار است. AppMap به توسعه‌دهندگان کمک می‌کند تا با ضبط و تجسم رفتار داخلی نرم‌افزار هنگام نوشتن، کدی را که ایجاد می‌کنند، درک کنند. داده های AppMap شامل کتابخانه ها، API ها، سرویس های وب، اتصالات داده، ورودی/خروجی، ماژول های امنیتی، داده های زمان بندی و موارد دیگر است. این اطلاعات با استفاده از داده های عینی از خود کد، با دیدگاه زمان اجرا جدید، درک مشترکی از نرم افزار ایجاد می کند.

appmap 01

آوردن تجزیه و تحلیل زمان اجرا به ویرایشگر کد

AppMap به ویرایشگر کد توسعه دهنده (Visual Studio Code یا JetBrains IDE) متصل می شود و پیشنهاداتی برای بهینه سازی زمان اجرا ارائه می دهد. مناطق مشکل در ویرایشگر برجسته می شوند تا توجه به کد مربوطه که می تواند بهبود یابد جلب شود. AppMap با ارائه عملکرد و تجزیه و تحلیل امنیتی قابل پیش بینی و عملی به طور مستقیم در ویرایشگر کد، به توسعه دهندگان کمک می کند تا هنگام نوشتن کد، بهبودهایی را انجام دهند و از چرخه های دوباره کاری اجتناب کنند. قبل از اینکه کد از ویرایشگر کد خود خارج شود، توسعه‌دهندگان می‌توانند درخواست‌های کند API، پرس‌وجوهای مکرر SQL و سایر مشکلات رایج عملکرد مرتبط با کد را ببینند و ارزیابی کنند.

AppMap نه تنها بسیار سریعتر از ابزارهای سنتی DAST و IAST کار می کند، بلکه می تواند در یافته های خود در مورد اصلاحات کد قطعی باشد. ابزارهای قدیمی ممکن است بردار حمله را در برنامه شما پیدا کنند، اما به یافتن خطوط دقیق کد در جایی که آسیب پذیری وجود دارد کمک نمی کنند. AppMap بار تکرارپذیری را کاهش می‌دهد تا قسمت‌های خاص برنامه – درست تا خطوط کد – را که نیاز به آدرس‌دهی دارند و چرا مشخص کند. جامعه منبع باز AppMap در حال کار برای تعریف بهترین شیوه‌های بیشتر برای تجزیه و تحلیل نرم‌افزار زمان اجرا در ویرایشگر کد است. p>

نحوه اجرای قوانین معماری در سی شارپ

appmap 02

عملکرد و امنیت تنها دو نمونه از نقص‌های نرم‌افزار زمان اجرا هستند که AppMap به‌طور خودکار در طی فرآیند کدنویسی پیدا می‌کند. علاوه بر این، تولید خودکار اسناد OpenAPI (SwaggerDoc سابق) یک ویژگی اصلی است، با توجه به اینکه بسیاری از برنامه‌های کاربردی امروزی برای اولین سرویس‌های API ساخته شده‌اند. به روز نگه داشتن اسناد API برای توسعه دهندگان زمان بر است. و مانند بسیاری دیگر از اشکال اسناد، اسناد API به سرعت با تکامل کد منسوخ می شوند.

appmap 03

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

appmap 04

از قدرت خلاق توسعه دهندگان نرم افزار استفاده کنید

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

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

۲۰۲۳ سال تجربه توسعه دهندگان است. از این فرصت استفاده کنید تا از تمام قدرت و خلاقیت تیم های توسعه نرم افزار خود با رویکردها و فناوری های جدید استفاده کنید تا زحمت توسعه دهندگان را به حداقل برسانید و برنامه های کاربردی موفق را ارائه دهید.

الیزابت لاولر موسس و مدیر عامل AppMap است.

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