قراره تو این دوره چی یاد بگیرم؟

  • اصل تک مسئولیتی (Single Responsibility Principle)
  • اصل باز - بسته (Open/Closed Principle)
  • اصل جایگزینی لیسکوف (Liskov Substitution Principle)
  • اصل جداسازی اینترفیس‌ها (Interface Segregation Principle)
  • اصل وارونگی وابستگی (Dependency Inversion Principle)

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

۱ فصل
۶ جلسه
۴۱ دقیقه
۱

لیست ویدئوهای دوره

۶ قسمت
۰۰:۴۱:۱۲

قسمت اول - توضیحات دوره

۰۲:۲۴

قسمت دوم - اصل تک مسئولیتی

۰۶:۵۶

قسمت سوم - اصل باز و بسته بودن

۱۳:۰۶

قسمت چهارم - اصل جایگزینی لیسکوف

۰۶:۰۸

قسمت پنجم - اصل جداسازی اینترفیس ها

۰۶:۲۷

قسمت ششم - اصل وارونگی وابستگی

۰۶:۱۱

solid چیست ؟

solid یک کلمه مخفف برای ۵ اصل برنامه نویسی میباشد . این اصول باعث میشود تا کد برنامه ها خوانا تر ، قابل درک تر ، تمیز تر و بهینه تر باشد و در نتیجه توسعه راحت تری داشته باشد .

به عنوان یک برنامه نویس شما باید با این اصول برنامه نویسی بصورت کامل آشنا باشید و در کد های خود این اصول را رعایت کنید زیرا میتوانید به آسانی توسعه نرم افزار خود را انجام دهید و دیگر برنامه نویسان هم به راحتی میتوانند بر روی توسعه نرم افزار شما (یا نرم افزار شرکت شما) کار کنند .

این اصول در اوایل سال ۲۰۰۰ توسط مهندسی به نام robert martin ایجاد شده ،ابتدا این اصول عمو باب یا (uncle bob) شناخته میشد .

به جرعت میتوان گفت اهمیت این اصول(اصول solid) از کد نویسی تمیز هم به مراتب بالاتر است !

در دوره آموزش solid چه می آموزید ؟

شما در این دوره ۵ اصل سالید (solid) را فرا خواهید گرفت :

  • Single Responsibility Principle
  • Open-Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

اگر دقت کنید و کلمات اول هر جمله را کنار یکدیگر قرار دهید به کلمه solid میرسید و اما این اصول هر کدام برای یکی از مشکلات برنامه نویسی مورد استفاده قرار می گیرند !

این دوره چه بازارکاری دارد ؟

فرض کنید به مصاحبه شرکت برنامه نویسی دانشجویار رفته اید یا بصورت مجازی در حال گرفتن مصاحبه از شما هستند ، یکی از سوالاتی که بصورت قطعی از شما پرسیده خواهد شد اصول سالید (solid) میباشد ، چرا ؟

این اصول یکی از مهم ترین استاندارد های برنامه نویسی میباشد و نیاز بر این است که برای داشتن محصول خوب ، کد خوب و به طبع برنامه نویس خوب داشته باشید .

هرچند که این اصول را میتوان در زمان اندکی یاد گرفت اما درک این موراد ممکن است زمان بر باشد و تا زمانی که این اصول را به طور کامل مورد استفاده قرار دهید حداقل چندین هفته زمان میگذرد !

داشتن دانش این اصول (solid) سطح شما را افزایش و درنتیجه میزان حقوق استحقاقی شما را افزایش دهد!

پیش نیازهای این دوره چیست ؟

شما تنها باید با یکی از زبان های برنامه نویسی اشنا باشید ، این دوره نیازی خاصی به زبان برنامه نویسی خاصی ندارد و شما می توانید که از هر زبان برنامه نویسی استفاده کنید .

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

سرفصل های دوره آموزش solid :

در ابتدا به اولین حرف در solid میپردازیم

  • S : Single Responsibility Principle

در این اصل به این نتیجه میرسیم که:  یک کار انجام بده اما درست انجام بده!

سپس به دومین حرف یعنی O میپردازیم

  • O:Open-Closed Principle

یعنی هر کلاس باید قابل توسعه باشد ولی تغییر نکند.

به سومین حرف و سومین اصل میرسیم L

  • L:Liskov Substitution Principle

یعنی کلاس های فرزند نباید رفتار کلاس والد را تغییر دهد !

چهارمین اصل ، اصل جداسازی اینترفیس ها

  • I:Interface Segregation Principle

در این اصل به این مورد می پردازیم که داشتن interface های کوچیک بهتر از داشتن یک interface بزرگ است.

و آخرین اصل

  • D:Dependency Inversion Principle

به این معنی است که کلاس ها و ماژول ها به جز لایه انتزاعی (abstraction layer) نباید به لایه پایین تر از خود وابستگی داشته باشند.\\\\\\\\

بدون استفاده از اصول SOLID مشکلات زیر وجود خواهد داشت:

  • Rigidity

به خاطر وابستگی بیش از حد کلاس ها و توابع به یکدیگر انجام تغییرات به سختی امکان پذیر است.

  • Fragility

به خاطر وابستگی بیش از حد کلاس ها و توابع به یکدیگر هر بار باید متدها و یا توابع تغییر پیدا کنند.

  • Immobility

استفاده از کلاس ها و یا متدها به خاطر وابستگی بهم دیگر یا پیچیدگی امکان پذیر نیست.

  • Viscosity

تغییرات با اضافه کردن کد های اشتباه امکان پذیر بود ولی پروژه بزرگ و بزرگتر می‌شد و امکان توسعه وجود نداشت.

  • Duplication

متد ها در جاهای مختلف تکرار می‌شدن و در صورت رفع باگ یا مشکلی نیاز بود در تمامی جاهای که متد نوشته شده بود تغییرات اعمال شود.

در کنار این موارد باید در نظر گرفت که :

  1. مثل دنیای واقعی، رعایت کردن همه اصول غیر ممکن است
  2. برنامه‌های خیلی کمی وجود دارند که همه‌ی این 5 اصل رو همزمان پیاده‌سازی کرده باشند.
  3. اعمال کردن هر اصل باید با چشم باز انجام شود

این دوره برای چه کسانی مناسب است ؟

به عنوان برنامه نویس ، شما باید تمامی این اصول را بطور کامل مسلط باشید !

چه برنامه نویس مبتدی چه برنامه نویس حرفه ای یا حتی دانشجو ، همه باید برای ارتقا سطح دانش و سطح کاری این موارد ( اصول solid ) را مسلط باشید .

در انتها باید این را هم گفت که اصول سالید (SOLID) پایه ثابت تمامی سوالات مصاحبه می باشد

چه نرم افزارهایی در این دوره استفاده شده است ؟

شما میتوانید از هر IDE استفاده کنید یا هر نرم افزار ویرایش متن مانند VS CODE یا حتی از NANO و VIM.

شما از هر نرم افزاری که راحت تر هستید استفاده کنید !

مزیت این دوره نسبت به سایر دوره های مشابه چیست ؟

در این دوره به صورت خلاصه به شما تمامی اصول سالید (SOLID) آموزش داده می شود .

نیازی به آموزش های طولانی و توضیحات سنگین که گاها باعث گیج شدن شما شود نیست در کوتاه ترین زمان ممکن و با مثال های برنامه نویسی دنیای واقعی این اصول به شما آموخته می شود !

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

 

توضیحات بیشتر