این سوال در مصاحبههای آمازون/گوگل از من پرسیده شد:
1. چگونه یک زباله جمع کن برای برنامه های C طراحی می کنید؟
2. اگر طراحی آشغالگیر به این راحتی بود، چرا ما آن را از قبل با زبان برنامهنویسی C ادغام نکردهایم؟
برای دریافت پاسخ، این دوره را تکمیل کنید. :p
این دوره یک دوره پروژه محور است و شامل کدنویسی به زبان C در هر مرحله از دوره است.
با افتخار این پروژه را در رزومه خود ذکر کنید.
این یک پروژه C است (برای برنامه افزودنی برای C++ باز است) که در آن میتوانید کتابخانهای را یاد بگیرید و بنویسید که نشتهای حافظه را، در صورت وجود، توسط برنامه تشخیص دهد. در این پروژه، من گام به گام نحوه طراحی و پیاده سازی یک کتابخانه جمع آوری زباله به نام MLD (Memory Leak Detector) را توضیح داده ام که با ادغام با برنامه شما، امکان گرفتن اشیاء نشت کرده و گزارش آنها را فراهم می کند. کتابخانه MLD یک کتابخانه عمومی خواهد بود و توانایی تجزیه ساختارهای داده هر برنامه و دستکاری آنها را دارد.
پروژه در 3 مرحله توضیح داده شده است.
توجه: این دوره ای است که به کمی قدرت تجزیه و تحلیل نیاز دارد، دانشجویان مبتدی نیز می توانند از این دوره چیزهای زیادی یاد بگیرند که چگونه می توانید برنامه ای ایجاد کنید که بتواند اشیاء و ساختارهای خود را تجزیه کند. این تکنیک برای ایجاد بسیاری از پروژه های دیگر استفاده می شود که یکی از آنها شناسایی نشت حافظه است.
توصیه: کلاسی از دانشآموزانی که به "غذا دادن با قاشق" نیاز دارند، لطفاً از ثبتنام در دورههای پروژهمحور خودداری کنند.
نکات برجسته کلیدی:
از زمان ظهور زبان برنامه نویسی C/C++، مدیریت حافظه یکی از مسئولیت هایی است که توسعه دهنده باید با آن مقابله کند
نرم افزارهای C/C++ اغلب از دو مشکل مرتبط با حافظه رنج می برند:
اختلال حافظه
نشت حافظه
برخلاف جاوا، C/C++ لوکس جمعآوری خودکار زباله را ندارد
جاوا به برنامه نویس اجازه دسترسی مستقیم به حافظه فیزیکی را نمی دهد، اما C/C++ این امکان را دارد، جاوا نشانگرها را مستقیماً در اختیار توسعه دهنده/کدگذار قرار نمی دهد. بنابراین برنامه های جاوا نیز از خرابی حافظه رنج نمی برند، اما C/C++
آسیب می بینددر این دوره، ابزار Memory Leak Detector (MLD) را برای برنامههای C طراحی و پیادهسازی میکنیم که به راحتی در C++ نیز قابل گسترش است
برخی از دانش آموزان درخواست کرده اند که شرحی رسمی از این پروژه ارائه دهند. برای دانشجویانی که می خواهند این پروژه را در رزومه خود ذکر کنند یا این پروژه را به عنوان پروژه سیستم عامل خود انجام دهند - می توانید عنوان و چکیده این پروژه را به شرح زیر ذکر کنید:
عنوان: "طراحی و پیاده سازی زباله جمع آوری کننده جاوا برای برنامه های C".
در این پروژه سعی می کنیم یک زباله جمع کننده برای برنامه های C پیاده سازی کنیم که بر اساس اصل دسترسی به اشیا برای تشخیص نشت حافظه کار می کنند. . از طریق این پروژه، ما محدودیتهای چنین جمعآوری زباله را برای زبانهای برنامهنویسی مانند C (که بر خلاف جاوا/پایتون به آدرسهای حافظه اصلی دسترسی دارند) درک میکنیم و محدودیتها و هزینههای آن را برای بودن یک ویژگی داخلی زبان C-مانند تجزیه و تحلیل میکنیم.
نمایش نظرات