شما اینجا هستید :

Home » مقالات » توسعه وب » تفاوت میان برنامه‌نویسی شئ‌گرا و تابعی

تفاوت میان برنامه‌نویسی شئ‌گرا و تابعی

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

تو این مقاله قصد دارم در مورد این دو پارادایم و تفاوت هایی که با هم صحبت کنم.

برنامه‌نویسی شئ‌گرا چیه؟

برنامه‌نویسی شئ‌گرا جزء پارادایم‌های برنامه‌نویسیه که تو اون همه چیز به عنوان اشیاء در نظر گرفته میشه. این شئ‌ها میتونن ساختارهای داده‌ای متفاوتی باشن. این اشیاء هر کدوم داده‌هایی رو نگه‌داری می‌کنن که بستگی به خصوصیات اونا داره. این خصوصیات از طرف توابع و یا متدهایی که به شئ داده میشه پیاده‌سازی میشن.

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

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

زبان هایی که شء گرا هستن عبارتند از سی‌پلاس‌پلاس، جاوا، پایتون، سی‌شارپ، سویفت و…

برنامه‌نویسی تابعی چیه؟

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

برای مثال اگر شما تابعی مانند ()getSum رو برای جمع دو عدد فراخوانی کنین، همین خروجی رو بهتون میده، وقتی همین کارو با اعدادی مشابه x و y نیز انجام بدین به همون صورت قبلی انجام میشه.

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

زبان‌هایی که تابعی هستن عبارتند از از لیسپ، Clojure و F#.

مشکلات برنامه‌نویسی شئ‌گرا

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

مشکلات برنامه‌نویسی تابعی

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

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

مقایسه

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

مــطالب مشـــابه

جوملا چیه؟

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

ارسال شده در شهریور ۶, ۱۳۹۷

عناصر مهم در ایجاد یک وبسایت فوق العاده

چطوری میتونیم یه وبسایت عالی داشته باشیم؟ هیچ دستور جادویی و یا الگوی خاصی برای حل این سوال وجود نداره. داشتن یه وبسایت فوق العاده میتونه به عوامل و فاکتور های مختلفی بستگی داشته باشه، مثلا مهارت شما یا بودجه ای که در اختیار دارین…

ارسال شده در شهریور ۴, ۱۳۹۷

۶ دلیل برای استفاده از SVG

تصویر‌سازی وکتوری مقیاس پذیر یا SVG، نوعی از تصاویره که در حال حاضر، تو اکثر دستگاه‌ها و مرورگرها پشتیبانی میشه. استفاده از تصاویر SVG فایده های زیادی داره که تو این مقاله میخوام ۶ مورد از فوایدش رو بگم خدمتتون. ۱. مستقل از رزولوشن و…

ارسال شده در شهریور ۲, ۱۳۹۷

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *