برای شرکت در این دوره به پشتیبانی سایت در تلگرام پیام بدید یا پس از عضویت در سایت از طریق پنل کاربری تیکت بزنید. یک …
یک اسم نام آشنا که احتمالن همه ی ما فکر میکنیم که کامل بهش مسلطیم و نیازی به آموزش و مطالعه و تحقیق در مورد اون نداریم: Object Oriented یا OO.
من اینجام که بهت بگم که شاید اشتباه کنی…شاید خیلی از تصور هایی که راجع به این کلمه داری درست نباشه و شاید نیاز به مطالعه بیشتر داری…
احتمالن از همون روز اول آموزش بهمون گفتن که OO در چهار تا پارامتر خلاصه میشه :
شاید حتا یه تعصب خاصی روی این ها پیدا کردیم و فکر میکنیم که OO کاملن و بدون چون و چرا به تقویت همه این ها کمک میکنه.
برای جواب دادن به این سوال ها و خیلی سوال های دیگه قصد داریم یکم بریم عقب و ابتدا فلسفه ی نرم افزار رو بررسی کنیم و ببینیم که اصلن نرم افزار چی هست و یه نرم افزار خوب چه ویژگی هایی داره و اصلن وظیفه ی ما به عنوان یه برنامه نویس در تولید یه نرم افزار چیه؟
بعد از این که به درک خوبی در این بازه رسیدیم, اماده ایم که ببینیم که پارادایم های مختلف چقدر تونستن ما رو به این هدف نزدیک کنن و چقد ناموفق بودن.
ما دو تا از اون ها رو بررسی میکینم.
در این مرحله فقط 4 اصل بالا رو بررسی نمیکینم که این ها بخش کوچکی از داستان ما هستن. خیلی از ناگفته ها هست که باید بگیم و داستان های زیادی داریم که برای OO بسراییم.
اصلن یهو میبینی داستان عوض شده و هر چی تا الان راجع به OO میدونستی رو باید بریزی دور و مفاهیم درست رو جایگزینش کنی.
اصن قضیه یه چیز دیگس…
توی یکی از داستان های جذابمون اما وارد چالش جالب و پر مخاطره ای میشیم . اصول طراحی SOLID. این اصول رو هم به شکل حیرت آوری مورد بررسی قرار میدیم. خیلی خیلی ریز میشیم و از جهات مختلف بهشون حمله میکنیم. تاریخچه ی اون ها رو میگیم و نقشی که از ابتدای پیدایش تا به امروز در نرم افزار بازی میکنن و جایگاهیی که در OO یا طراحی شی گرا دارن. کار ما به این جا ختم نمیشه و این اصول رو از نقطه نظر معماری نرم افزار هم بررسی میکنیم. همچنین علاوه بر خوبی هاشون هزینه هایی هم که روی دستمون میگذارن رو میگیم.
این دوره یه سوپرایز جذاب دیگه هم داره.
معماری کلین یه اسمی که این روزا ورد زبون خیلی از برنامه نویس ها هست که میخوان یادش بگیرن یا یادش گرفتن یا به دلیل سخت بودنش با کلی تفسیر و توجیه میگن که نیازی بهش نداریم و یا ….
اینجا قراره یه داستان متفاوتی رو با هم بنویسیم.
قرار نیست که 4 تا فولدر درست کنیم و بگیم که فلان کد ها رو بریز توی این یکی فولدر و اون یکی فلان کد ها رو بریز تو اون یکی فولدر و بعد این فولدر ها قاطی پاتی بشن که خودمون هم نفهمیم داریم چکار میکنیم…
نه داستان ما این نیست. اگه دنبال چنین داستان هایی هستی از همین جا راهمون جدا میشه. ما به دنبال بررسی تحلیلی و دقیق این معماری هستیم که در نهایت به این توانایی برسیم که با تحلیل عالی بفهمیم باید چکار کنیم.
برای هر سناریو و برای هر مساله ای باید یاد بگیری فکر کنی و تحلیل کنی و در نهایت تصیمیم بگیری.
پس اینطوری نیست که 4 تا ظرف بهت بدم و بهت بگم که نخود ها رو بریز توی این یکی و عدس ها رو بریز توی اون یکی و … . بلکه قراره مفاهیم رو یاد بگیریم. به خوبی هم یاد بگیریم. و یاد بگیریم فکر کنیم.
این نکته رو باید بگم که توی بخش معماری کلین, ما پروژه ای کار نمیکنیم و فقط هدفمون این هست که مفاهیم این معماری و اجزای مختلفتش رو به خوبی یاد بگیریم.
این آموزش اختصاص به زبان برنامه نویسی یا فریمورک خاصی ندارد و کاملن جامع و عمومی هست و مفاهیم رو مورد بررسی قرار میگیره و در نهایت یک قدرت تحلیلی مناسب رو به دانشجو میده.
مثال های این آموزش با استفاده از زبان JAVA و در موارد مورد نیاز علاوه بر اون بایک زبان dynamic type شرح داده میشن.
بعد از اتمام این آموزش دیگه از این شوخی ها نداریم که مثلن بری سرچ کنی که نحوه پیاد ه سازی معماری کلین در PHP یا JAVA یا Dart یا مثلن Flutter و از این چرت و پرت ها. وقتی مفاهیم رو یاد گرفتیم باید بتونی هر جایی اون ها رو پیاده کنی.
البته ناگفته نماند که در بخش های مختلف این دوره ما مقایسه های خیلی خوبی بین زبان های static type و dynamic type انجام میدیم و تفاوت ویژگی ها و پیاده سازی های مختلف بین اون ها رو شرح میدیم. پس JS کار ها و … هم نگران نباشن.
توی این دوره پروژه خاصی کار نمیشه و دوره ماهیت پروژه محور بودن نداره. هدف این دوره درک خوب و عمیق مفاهیم هست تا بتونیم به خوبی از اون ها در عمل استفاده کنیم. البته برای درک مفاهیم, جاهایی که لازم باشه مثال های متنوع و کاربردی که به درک موضوع کمک میکنه میزنیم, ولی پروژه ای که از صفر تعریف کنیم و بخوایم کار رو پروژه محور جلو ببریم, نداریم.
توی قسمت معماری کلین هم به همین شکل ما مفاهیم رو بررسی میکنیم.
ولی نکته ای که هست مفاهیم رو به خوبی درک میکنیم. خیلی خوب و عالی بهشون مسلط میشیم تا بتونیم در سناریو های مختلف ازشون استفاده کنیم.
ممنونم از اینکه این متن رو خوندی.
سوالاتت در مورد این دوره رو در بخش نظرات دوره مطرح کن یا به پشتیبانی سایت در تلگرام پیام بده.
قوانین ثبت دیدگاه