جدیدترین مطالب

مطالب ویژه مجله اینترنتی رایامگ

پیوندها

محبوب ترین مطالب رایامگ

یادگیری اصول برنامه نویسی - بخش دوم

یادگیری اصول برنامه نویسی - بخش دوم

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

تاریخچه اولین جایزه برنامه نویسی

یادگیری اصول برنامه نویسی - بخش دوم

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

همه چيز درباره برنامه نويسی شی گرایی

یادگیری اصول برنامه نویسی - بخش دوم

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

مثلاً اگر انسان را یک شی در برنامه نویسی در نظر بگیریم،  ویژگی‌های منحصر به فرد آن مثل نام، نام خانوادگی، شماره تلفن و کد ملی و خصوصیاتی که می‌توان از یک انسان نام برد را در ویژگی های منحصر به فرد (Attribute) می گذاریم و همینطور یک انسان می‌تواند یک سری کارها انجام بدهد که به آنها (Method) می گوییم. مثل راه رفتن دیدن حرف زدن و کلی از این رفتارها...

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

کپسوله سازی (Encapsulation):

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

انتزاعی بودن (Abstraction):

با خصوصیت Abstraction در برنامه نویسی شی گرا در بدنه اصلی هیچ کدی نوشته نمی شود و به همین دلیل نمی‌توانیم مستقیماً از روی کلاس های انتزاعی اشیا را بسازیم. مفهوم انتزاعی چون کد مشخصی ندارد به برنامه نویس ها کمک می‌کنند تا به راحتی بتوانند تغییر است و افزودنی‌های خودشان را در طول زمان انجام بدهند.

ارث بری و وراثت (Inheritance):

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

چند ریختی (Polymorphism):

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

اصول برنامه نویسی

یادگیری اصول برنامه نویسی - بخش دوم

بیشتر بخوانید: یادگیری اصول برنامه نویسی - بخش اول

در بخش دوم یادگیری اصول برنامه نویسی می خواهم چندین نمونه دیگر را برایتان تعریف کنم تا بیشتر درباره اصل هایی که قرار است یک برنامه‌نویس رعایت کند بدانید.

خودتو تکرار نکن – (Don’t Repeat Yourself) DRY

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

یکی از مهم ترین دلایلی که بایستی از اصل DRY پیروی کنیم این است که هرچه مقدار کد کمتری بنویسیم درک کردن آن راحت‌تر می شود و می توانیم در زمان خود صرفه جویی کنیم. همچنین هنگام تغییر کد، کمتر به مشکل بر می خوریم و در کل احتمال اینکه به ارور بخوریم کمتر می شود.

اصل مسئولیت واحد – (Single Responsibility Principle) SRP

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

همانطور که گفته شد با پیروی از آثار SRP می توانیم قابلیت استفاده مجدد از کدها را بالا ببریم، پیچیدگی برنامه را پایین بیاوریم و در کل تغییر کد در صورت نیاز و یا اضافه کردن ویژگی های جدید این برنامه را راحت تر کنیم.

ساده نویسی – KISS (Keep it Sample,Stupid)

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

شما می توانید با پیروی از اصل KISS هم خواندن و نگهداری کد های تان را راحت تر کنید و هم این که موقع دیباگ کردن وقت کمتری را صرف انجام این کار کنید.

اصل باز و بسته – OCP (Open Closed Principle)

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

به آن احتیاج نخواهی داشت  – YAGNI (You Ain’t Gonna Need It)

این اصل به این معنی است که شما نباید درون کد خطوطی را اضافه کنید که حدس می زنید شاید در آینده به آن احتیاج پیدا کنید. چون احتمالا هیچ وقت از آن استفاده نمی کنید و فقط ساختار کد را پیچیده تر می کنید. در حقیقت این اصل باعث می‌شود که بیش از حد از اصول قبلی مثل KISS یا DRY استفاده نکنیم. در بعضی مواقع افراد بیش از حد از اصول برنامه نویسی استفاده میکنند و باعث می‌شود وقتشان را برای کارهای بیهوده تلف کنند.

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

تصورات غلط درباره برنامه نویسان

یادگیری اصول برنامه نویسی - بخش دوم

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

- برنامه نویسی فقط به درد گیک ها می خورد:

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

- حتما باید ریاضیات پیشرفته بلد باشید:

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

- حتما باید جوان باشید:

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

- یادگیری برنامه نویسی واقعا سخته:

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

- حتما بایستی مدرک دانشگاهی داشته باشید:

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

سخن آخر

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

دیدگاه

دیدگاه خود را وارد نمایید

جدیدترین مطالب مجله اینترنتی رایامگ

خبر نامه مجله اینترنتی رایا مگ

با عضویت در خبرنامه رایا مگ از جدید ترین مقالات آگاه شوید