آموزش الگوهای طراحی برنامه نویسی C جاسازی شده

Embedded C Programming Design Patterns

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

چرا به الگوهای طراحی نیاز دارید

  • تمیز و قابل نگهداری: الگوهای طراحی به ما کمک می کنند کدی تمیز، قوی و قابل نگهداری بنویسیم.

  • استفاده مجدد از کد بهبودیافته: الگوها به شما کمک می‌کنند وابستگی‌ها را جدا کرده و کد خود را مرتب نگه دارید.

  • فعال بودن در مورد پیشگیری از اشکال: الگوهای طراحی انتظارات واضحی را ارائه می‌دهند و ما را قادر می‌سازند تا راحت‌تر مقادیر زیادی کد را بررسی و استدلال کنیم.

  • ابهام را برطرف می کند: استفاده از الگوهای یکسان به طور مداوم ابهام را در مورد ساختار و رفتار کد برطرف می کند.

  • ضروری برای DevOps موثر: کدی که از الگوهای شناخته شده و قابل درک استفاده می کند، به راحتی قابل بررسی است.

  • جزئیات را در جای خود قرار دهید: الگوهای طراحی به سازماندهی کد کمک می کند و جزئیات کوچک پیاده سازی را آسان تر می کند.

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

همه اینها منجر به کد منبعی می شود که کار با آن به طور تصاعدی دشوارتر می شود.

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

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

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

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

الگوهای طراحی به ما کمک می کنند کدی تمیز، قوی و قابل نگهداری بنویسیم.

نمای کلی دوره

ما قصد داریم با یک مقدمه کوتاه شروع کنیم که در آن به شما توضیح می‌دهم که چگونه این دوره را دنبال کنید و منابع اضافی را کجا پیدا کنید و ساختار هر ماژول چگونه است.

سپس الگوهای خلاقیتی را پوشش خواهیم داد که با ساخت اشیاء داده ما سروکار دارند. الگوهای خلاقانه به ما کمک می کنند تا راه های استانداردی برای ایجاد اشیاء جدید و مدیریت مسئولیت مالکیت حافظه داشته باشیم.

بعد از آن به سراغ الگوهای ساختاری می رویم که با ساختار کد ما سروکار دارند. این الگوها به ما کمک می‌کنند کد خود را به گونه‌ای بسازیم که به راحتی بتوانیم آن را با عملکردهای جدید گسترش دهیم، بدون اینکه بعداً آن را مجدداً تغییر دهیم.

الگوهای رفتاری بخشی است که با کد "رفتار" مانند الگوی مقدار بازگشتی مرتبط است. این الگوها به ما کمک می‌کنند تا با اطمینان از اینکه در موقعیت‌های رایج مختلف چه انتظاری از کد از نظر رفتار داشته باشیم.

در نهایت، الگوهای Concurrency به شما درک شهودی از همزمانی در یک RTOS تعبیه شده می دهد تا بتوانید درک کنید که چه زمانی از کدام الگوی همزمانی استفاده کنید تا به پاسخگویی بالای برنامه خود برسید.

مقدمه

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

الگوهای خلاقانه

  • الگوی شی. این روشی برای گروه بندی داده ها به اشیایی است که می توانند نمونه سازی شوند و از بین بروند. همچنین مفهوم کلاس ها و توابع عضو را معرفی می کنیم.

  • الگوی مات. این الگو سه راه به ما می دهد تا اجرای شی را خصوصی کنیم و فقط یک دسته را در معرض شی قرار دهیم. همچنین می توان به این الگوی اشیاء مات اشاره کرد.

  • الگوی تک. الگوی singleton یک الگوی طراحی است که برای اطمینان از اینکه یک کلاس فقط یک نمونه دارد استفاده می‌شود، در حالی که یک نقطه دسترسی جهانی به این نمونه ارائه می‌کند.

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

الگوهای ساختاری

  • الگوی برگشت به تماس. با تماس های شی گرا که به نمونه هایی از اشیاء محدود می شوند، سروکار دارد. به تماس‌ها اجازه می‌دهد روی نمونه‌های خاصی از اشیاء عمل کنند.

  • الگوی ارثی. الگوی وراثت برای پیاده سازی روابط وراثت بین اشیا و مؤلفه ها در یک برنامه C استفاده می شود. این به عنوان راهی برای ایجاد سلسله مراتبی از اشیاء به جای مدیریت یک برنامه بزرگ که در آن تمام جزئیات در همان سطح انتزاع هستند مفید است.

  • الگوی API مجازی. الگوی API مجازی راهی برای پیاده‌سازی توابع مجازی در C و ساختن دستگیره‌ها برای اشیاء مات نیز «هوشمند» است. الگوی مجازی api به ما چندشکلی می دهد - که در آن می توانیم از یک رابط برای چندین پیاده سازی بدون اطلاع از این پیاده سازی ها استفاده کنیم.

  • الگوی پل. این الگو بر اساس الگوی api مجازی ساخته شده است و الگویی است که در مواقعی که نیاز به پل زدن دو سلسله مراتب مجزا از اشیاء دارید استفاده می شود. ما مثالی را در Rust و C پوشش می دهیم که در آن به نحوه استفاده از این الگو در عمل نگاه می کنیم.

الگوهای رفتاری

  • الگوی ارزش بازگشتی. این الگو روشی را که تابع مقادیر بازگشتی را مدیریت می کند، استاندارد می کند. این با ارزش است زیرا مقادیر بازگشتی در C راه اصلی برای سیگنال وضعیت یک عملیات است. بنابراین ما باید راه روشنی برای برقراری ارتباط با تماس گیرنده از طریق مقدار بازگشتی استاندارد داشته باشیم.

الگوهای همزمانی

  • معرفی همزمانی. در این بخش می‌خواهیم به خود همزمانی به عنوان الگویی برای توسعه نرم‌افزار و همچنین اینکه چه زمانی و چرا باید همزمانی را به عنوان یک ابزار ارزشمند در جعبه ابزار خود در نظر بگیریم، بررسی کنیم.

  • Spinlock/الگوی پوشش وقفه. پوشاندن وقفه‌ها ساده‌ترین الگوی یکپارچگی داده‌ها است که با محافظت از داده‌های مشترک که توسط وقفه‌ها به آن‌ها دسترسی پیدا می‌کنند، مربوط می‌شود. اجرای عمومی این اغلب به شکل spinlock انجام می شود. در اینجا به چگونگی محافظت از داده ها در برابر فساد می پردازیم، با اطمینان از اینکه وقفه هرگز زمانی که آن را تغییر می دهیم اجرا نمی شود.

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

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

  • الگوی متغیر مشروط. الگوی متغیر شرطی بر اساس الگوی mutex برای پیاده‌سازی راهی برای سیگنال‌دهی و بیدار کردن یک یا چند رشته از رشته‌ای دیگر یا از یک کنترل‌کننده وقفه ایجاد می‌شود. این الگو برای بررسی شرایط پیچیده دلخواه در پاسخ به یک رویداد ناهمزمان به روشی ایمن مفید است.

این برای چه کسی است

این آموزش برای:

است
  • معماران نرم‌افزار تعبیه‌شده: حتی اگر سال‌هاست که برنامه‌نویسی می‌کنید، ممکن است در این محتوا ایده‌هایی در مورد چگونگی انجام بهتر کارها پیدا کنید.

  • برنامه نویسان مبتدی جاسازی شده: الگوها به شما کمک می کنند کد خود را سازماندهی کنید و بهترین مکان برای شروع از همان ابتدا است.

  • Embedded Manager : بسیار مهم است که الگوها به خوبی توسط کل تیم درک و به کار گرفته شوند، زیرا این الگوها بر ساختار کد تأثیر زیادی دارند.

زمان ثبت نام است!


سرفصل ها و درس ها

نمایش نظرات

آموزش الگوهای طراحی برنامه نویسی C جاسازی شده
جزییات دوره
6 hours
15
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
833
4.5 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Martin Schröder Martin Schröder

مهندس سیستم عامل جاسازی شده