موضوع مقاله

برنامه نویسی Back-End یعنی چی؟

لـرنیا چـیه ؟

Thumbnail Image لرنیا مسیر یادگیری شما را مشخص می کنه و باعث سرعت موفقیتت میشه Thumbnail Image

برنامه نویسی Back-End یعنی چی؟

تا به حال به اجزای یک برنامه رایانه ای نگاه کردید که چگونه ساخته شده است؟ اینکه چه اجزایی می‌تواند داشته باشد؟ اساس و پایه برنامه به چه شکل است؟

پس با ما همراه باشید تا به بررسی مهم‌ترین بخش برنامه نویسی، یعنی Back-End را بررسی کنیم و از انواع زبان‌ها و مثالهای بسیار جالب شما را بهره مند کنیم.

Back-End چیست؟

Back-End به معنای پشته یا پس زمینه که به صورت Back-End نوشته می‌شود، بخش پس زمینه یک برنامه رایانه ای می‌باشد؛ در‌واقع بخشی که شما در برنامه رایانه ای می‌بینید به آن بخش Front-End می‌گویند که شامل دکمه ها، افکت ها، رنگ‌ها و … است و بخشی که شما نمی‌بینید و در پس زمینه برنامه قرار دارد را که شامل دستورات، محاسبات و داده‌ها را Back-End می گویند.

آیا برای Back-End زبان برنامه نویسی خاصی وجود دارد؟

پاسخ صریح این سؤال خیر است در حقیقت تمام زبان‌های برنامه نویسی دارای ناحیه Back-End می‌باشند و تقریباً بیشتر بخش یک زبان که شامل دستورات شرطی و غیرشرطی، متغیر ها و … است همه و همه در ناحیه Back-End قرار دارند.

زبان‌هایی همانند HTML، CSS، QML که بخش Front-End برنامه را می‌سازند در‌واقع زبان برنامه نویسی نیستند بلکه زبان Markup یا به اصطلاح زبان نشانه گذاری می باشند.

ویژگی های زبان برنامه نویسی

ما در دنیای رایانه ها با انواع زبان‌های مختلف آشنا می‌شویم بعضی از آن‌ها را برای ذخیره سازی اطلاعات، بعضی دیگر برای توسعه وب، برای هوش مصنوعی و … استفاده می کنیم؛ اما اینکه کدام یک از آن‌ها یک زبان برنامه نویسی است باید دقیق برسی کنیم؛ یکی از اصل های یک زبان که آن را زبان برنامه نویسی می‌کند وجود Back-End در آن می‌باشد که ویژگی‌های زیر را داراست:

  • دارای متغیرها و ثابت هاست
  • قابلیت ذخیره اطلاعات را دارد
  • قابلیت محاسباتی دارد
  • دارای دستورات شرطی و انتخابی است
  • دارای توابع است
  • دارای قابلیت ورودی و خروجی است

تعریفی آسان از Back-End

به برنامه‌هایی که در تلفن همراه خود باز می‌کنید نگاه کنید، به طور مثال می‌خواهید وارد برنامه اینستاگرام شوید و در صفحه ورود آن قرار دارید، چه چیزهایی می بینید؟

  • دکمه ورود
  • کادری برای وارد کردن حساب کاربری یا تلفن همراه

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

اتفاقاتی که بعد از کلیک روی دکمه می‌افتد که کاربر آن‌ها را نمی‌بیند بلکه آن‌ها را درک می‌کند بخش Back-End برنامه می گویند.

یا به عبارتی ساده‌تر بخش Back-End بخشی است پنهان در برنامه که به برنامه پویایی می‌بخشد؛ در‌واقع اگر برنامه اینستاگرام فاقد بخش Back-End باشد ما فقط صفحاتی فاقد عملکرد، کاملاً ایستا و بدون تغییر خواهیم دید.

اگر بخواهیم یک برنامه را مانند ساختمان فرض کنیم Back-End کجای آن خواهد بود؟

پاسخ سؤال کاملاً واضح و روشن است، نماهای یک خانه و ساختمان که عملکرد ثابتی را دنبال می‌کنند Front-End ساختمان یا خانه می‌باشند و معنی Front-End  به معنای رو به رو است و بخش‌های داخلی ساختمان که عمکرد غیر ثابت را دنبال می‌کنند مانند تأسیسات، برق ساختمان و … Back-End ساختمان یا خانه می باشند.

آیا Back-End و Front-End فقط در حوزه وب کاربرد دارد؟

پاسخ این سؤال قطعاً خیر خواهد بود، ما در حوزه های دیگر نظیر سیستم عامل، برنامه سازی، برنامه نویسی برای اینترنت اشیاء (اینترنت چیزها ترجمه صحیح) و برنامه نویسی رایانه های شخصی و تلفن همراه با دو بخش مهم Back-End و Front-End روبه رو خواهیم بود.

برسی اولین زبانی که اساس آن بر پایه ‌Back-End ساخته شده بود

شاید اصلاً نام آن را تابه حال نشنیده باشید و اصلاً دوست نداشته باشید با آن حتی یک خط کد برنامه نویسی نویسی کنید، زبانی که پایه و اساس تمام زبان‌های برنامه نویسی امروز می باشد، نام آن زبان اسمبلی است؛ تمام برنامه‌هایی که شما می نویسید با هر زبانی در آخر به اسمبلی ختم خواهد شد چه تفسیری باشد (مانند پایتون)، چه تحت وب (مانند PHP)، چه کامپایلی (مانند زبان‌های خانواده سی)

عکس بارگذاری نشده است
ساختار اسمبلی بر پایه Back-End بوده و بیشتر دستورات و عملیات آن ارتباط با سخت‌افزار مخصوصاً پردازش مرکزی (به انگلیسی CPU) می باشد.

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

سیستم عامل ها بر چه اساسی ساخته شدند و اجزای آنها چگونه است؟

تمامی سیستم عامل ها بدون استثناء از زبان برنامه نویسی اسمبلی استفاده می‌کنند که فقط یک بخش آن‌ها (بخش میزکار و دسکتاپ) Front-End است و بقیه آن Back-End می باشد؛ ما به بررسی بخش‌های مختلف آن می پردازیم:

  • هسته سیستم عامل: هسته سیستم عامل مهم‌ترین بخش یک سیستم عامل است و پردازش ها را در محیط پس زمینه حافظه انجام می دهد؛ در‌واقع معنای واقعی Back-End در این بخش حس خواهد شد. هسته یک سیستم عامل را می توان با زبان‌های اسمبلی، سی، سی شارپ و جاوا نوشت اما اکثر هسته های سیستم عاملی با زبان‌های اسمبلی و سی نوشته می‌شوند.
  • محیط سیستم عامل: محیط یک سیستم عامل که به آن نظم می‌دهد، شامل حساب‌های کاربری و پایگاه های داده برای آن و مجوز دسترسی به فایل ها، نوع برنامه‌های اجرایی و … می‌باشد این بخش در پس زمینه یک سیستم عامل اجرا می‌شود و در حالت معمولی کاربر آن را نمی‌بیند پس بخش مهمی از Back-End در سیستم عامل است.
  • مدیریت بسته ها: مدیریت بسته ها، یک سری برنامه‌های مهم برای نصب، مدیریت و حذف برنامه‌ها می‌باشند در‌واقع ما وقتی برای نصب یک برنامه اقدام می‌کنیم به طور مثال روی آن دابل کلیک کرده سپس با دکمه Install اقدام به نصب آن برنامه می کنیم؛ یا به طور مثال در تلفن همراه خود روی برنامه‌ای کلیک کرده و راحت اقدام به حذف برنامه می کنیم؛ در آن موقع که ما این دو کار را انجام می‌دهیم مدیریت بسته ها، به صورت پنهان در بخش Back-End سیستم عامل به کمک ما آمده و اقدام به حذف یا نصب برنامه مورد نظر ما می کنند. مدیریت بسته ها می‌توانند با هر زبان برنامه نویسی نوشته شوند.
  • میزکار: میزکار یک سیستم عامل یا بخش گرافیکی آن تنها بخشی است که از دو اجزای مهم یک برنامه (Front-End و Back-End) تشکیل شده است؛ بخش Back-End در میزکار ها بسیار کمتر و کم‌رنگ تر از دیگر اجزای سیستم عامل است و بیشتر جنبه ارتباطی به دیگر اجزا سیستم عامل (که اساساً بر پایه Back-End اند) به وسیله ارسال دستورات دارد.

بخش Back-End در زبان های خانواده سی

تقریباً هیچ برنامه نویس حرفه‌ای نمی‌تواند بگوید که هیچ وقت با این زبان‌ها در طول مدت عمر خود کار نکرده است؛ سی به عنوان شاخه اصلی زبان‌های خانواده سی می باشد؛ این گروه از زبان‌ها نسبت به دیگر زبان‌های برنامه نویسی از موقع پدید آمدن آن‌ها تا به امروز تأثیر بسیار زیادی در کل حوزه های رایانه ای گذاشتند؛ شاید در نگاه اول فهم Back-End در زبان اسمبلی بسیار دشوار و سخت باشد اما فهم Back-End در زبان‌های خانواده سی کاملاً واضح و روشن است.

زبان برنامه نویسی سی

عکس بارگذاری نشده است
سی زبان Back-End است یا Front-End؟

زبان برنامه نویسی سی اساساً همانند اسمبلی بر پایه الگوریتم ساخته شده است و بیشتر اجزای آن در Back-End می باشد.

یادگیری

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

اجزای این زبان

این زبان برنامه نویسی، در بسیاری از حوزه های رایانه استفاده می شود؛ یک برنامه نوشته شده با این زبان شامل چنین اجزایی می‌باشد که همه آن‌ها در موقع اجرای برنامه از دید کاربر پنهان اند (پس بخش Back-End محسوب می شوند):

  • متغیرها و نوع داده‌های آن‌ها
  • توابع و فراخوانی ها
  • محاسبات ریاضی
  • ورودی / خروجی ها
  • دستورات شرطی
  • حلقه های تکرار

برنامه های نوشته شده با زبان سی بدون بخش Front-End چه شکلی خواهند بود؟

برنامه‌های نوشته شده با سی بدون واسط کاربری گرافیکی (بدون Front-End) به صورت خطی و کنسولی می‌باشند؛ اولین برنامه‌ها و سیستم عامل ها هم به همین صورت با این زبان برنامه نویسی نوشته شدند.

تحلیل یک مثال ساده از سی

عکس بارگذاری نشده است

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

این ماشین حساب ابتدا پارامترها را توسط تابع calc گرفته سپس پاسخ آن را به صورت یک عدد صحیح بر‌می‌گرداند؛ عملیات محاسباتی در داخل این برنامه عبارتند از:

  • وارد کردن پارامترهای ماشین حساب در تابع calc
  • تعیین کردن نوع محاسبه توسط تابع
  • با توجه به نوع تعیین شده پارامترهای عددی را محاسبه کردن
  • برگرداندن پاسخ به صورت عدد صحیح
  • نمایش پاسخ

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

زبان برنامه نویسی جاوا

عکس بارگذاری نشده است
یکی از مهم‌ترین زبان‌ها برای فهم درست Back-End در برنامه نویسی تلفن همراه زبان برنامه نویسی جاوا است؛ این زبان که بسیار شبیه به سی پلاس پلاس (C++) از خانواده سی می‌باشد پس همانند زبان‌های خانواده سی بخش بسیاری از آن در Back-End قرار دارد ولی کتابخانه‌هایی در آن برای توسعه برنامه در بخش Front-End وجود دارد.

یادگیری

برنامه نویسانی که ابتدا از سی و سی پلاس پلاس شروع به یادگیری برنامه نویسی کنند قطعاً نسبت به دیگر برنامه نویسان سریع‌تر و بهتر زبان برنامه نویسی جاوا را یاد می‌گیرند.

کاربردهای جاوا (بخش Back-End)

  • برنامه نویسی اندروید
  • برنامه‌های اداری
  • به کارگیری در توسعه مرورگرها

برنامه نویسی اندروید

جدا بودن Front-End از Back-End در برنامه نویسی بسیار در توسعه برنامه تأثیر گذار خواهد بود، یکی از مزایای برنامه نویسی اندروید جدا بودن Front-End از بخش Back-End است؛ بخش Back-End یک برنامه نوشته شده در اندروید با جاوا نوشته می‌شود که کار آن تحلیل، محاسبه، اعمال شروط و … است و در بخش Front-End از یک زبان‌ نشانه گذاری ای به نام XML استفاده می‌شود تا خوانایی برنامه راحت‌تر صورت پذیرد.

زبان برنامه نویسی پایتون

پایتون چندین سال است که به عنوان یکی از بهترین زبان‌های دنیا شناخته می‌شود

این زبان برنامه نویسی تقریباً در اکثر حوزه های رایانه ای حضور دارد؛ آسانی در کدنویسی و قابل فهم بودن کدهای نوشته شده در آن تأثیر شگفتی در محبوبیت پایتون گذاشته است.

پایتون همانند دیگر زبان‌های برنامه نویسی اغلب در بخش Back-End قرار می‌گیرد و به عنوان یک زبان برنامه نویسی Back-End به حساب می‌آید برای درک بهتر اینکه چرا پایتون به عنوان یک زبان Back-End است اجزای آن را بررسی می کنیم:

  • متغیرها و داده‌های پویا
  • لیست ها (آرایه ها) و دیکشنری ها
  • کلاس‌ها و شئ ها
  • دستورات شرطی
  • توابع
  • ورودی و خروجی ها

پایتون در وب

ما از پایتون برای توسعه برنامه‌های تحت وب هم می‌توانیم استفاده کنیم؛ در این زبان برنامه نویسی ما می‌توانیم از فریم ورک Django و Flask بهره ببریم.

عکس بارگذاری نشده است
فریم ورک Django کاملترین و بهترین فریم ورک برای توسعه وب در پایتون می‌باشد؛ برنامه‌های نوشته شده با این فریم ورک در بخش Back-End، عملیات محاسباتی، پایگاه های داده و وب اپلیکیشن ها را در برمی گیرند و بخش Front-End آن به صورت تگ های HTML موقع اجرای برنامه به مرورگر ارسال می شوند؛ به طور مثال: برنامه بالا در‌واقع یک صفحه وب است که در بخش بکند آن ابتدا تاریخ فعلی از سیستم گرفته شده سپس توسط یک مفسر بازگشتی به صورت تگ های HTML به کلاینت ارسال می شود.

کتابخانه پای کیوت

پای کیوت یکی از بهترین کتابخانه‌های طراحی UI برای رایانه های شخصی می‌باشد که بر پایه کیوت سی پلاس پلاس برای پایتون نوشته شده است؛ برنامه‌های نوشته شده با این کتابخانه دارای دو بخش Front-End و Back-End هستند.

این کتابخانه شامل ویجت های مناسبی برای توسعه برنامه‌های گرافیکی با واسط کاربر می‌باشد اما Back-End در آن چگونه است؟ به طور مثال یک برنامه دکمه دار در آن می‌سازیم اما چگونه وقتی دکمه را کلیک کردیم رنگ آن عوض شود یا ناپدید شود؟ پاسخ این سؤال در بخش Back-End برنامه قرار دارد؛ هر دکمه ای در پای کیوت دارای یک اکشن می‌باشد که به یک تابع متصل می‌شود تا دستورات داخل تابع را اجرا کند؛ برای مثال:

 

عکس بارگذاری نشده است
زبان برنامه نویسی PHP

زبان برنامه نویسی پی اچ پی Hypertext processer یک زبانی سمت سرور می باشد؛ برنامه‌های نوشته شده با کدهای PHP ابتدا در سرور پردازش شده سپس توسط سرویس دهنده وب به تگ های HTML تبدیل می شوند این زبان برنامه نویسی به عنوان یکی از زبان‌ های Back-End محسوب می‌شود.

پروسه از سرور تا کلاینت

زبان برنامه نویسی PHP بیشتر در محاسبات، پردازش ها، الگورتیم ها، حل مسائل ، پایگاه داده و بخش پویای وب کاربرد دارد.

متد Get و Post

برای ارتباط با بخش Back-End در PHP باید توسط URL به وسلیه متد Get داده‌ها را ارسال کنیم یا به صورت پنهانی آن‌ها را توسط متد Post ارسال کنیم؛ البته استفاده کردن از متد Post برای ارسال کردن اطلاعات در سرورهای بزرگ تأثیر منفی در بار سرور خواهد داشت پس بهتر است تا حد امکان از متد Get استفاده شود.

نوشتن برنامه خوش آمدگو با PHP

ابتدا بهتر است بخش Front-End را با HTML نوشته سپس آن را به وسیله یک فرم با متد Get به PHP ارسال کنیمعکس بارگذاری نشده است
:

مطالب مرتبط
ویژگی‌های جدید پایتون 3.9

ویژگی‌های جدید پایتون 3.9

یک نقطه عطف مهم برای پایتون در سال 2020 اتفاق افتاد. پایتون 2.7 برای اولین بار در سال 2010 منتشر شد و در 1 ژانویه 2020 پستیبانی رسمی از اون تموم شد. پایتون 2 نزدیک به 20 سال به خوب...

نویسنده: نام نویسنده
انواع توزیع های لینوکس

انواع توزیع های لینوکس

توزیع لینوکس یا در حقیقت توزیع گنو/لینوکس (در حالت عامیانه بین بیشتر مردم گنو/لینوکس به عنوان لینوکس شناخته میشه که البته اشتباه هستش چون لینوکس فقط بخشی از سیستم عام...

نویسنده: نام نویسنده
درک انواع داده ای ایستا  پویا / قوی ضعیف

درک انواع داده ای ایستا  پویا / قوی ضعیف

دقیقاً در نقطه مقابل نوع استاتیک قرار میگیره یعنی زبان‌هایی که از این نوع استفاده میکنن نوع داده متغییر ها رو در هنگام اجرا بررسی میکنن یا به قول خارجی ها “check on the fly...

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

میکروپایتون چیه؟

در‌واقع توسعه دهندهای گرامی اومدن دوباره یک کامپایلر مخصوص برای پایتون میکرو کنترلی ساختن و همچنین یک اجرا کنند و … که خیلی کار سختیه و کار هر کسی نیست! ولی همین کار...

نویسنده: نام نویسنده
5+1 کاربرد مختلف پایتون در حوزه تکنولوژی

5+1 کاربرد مختلف پایتون در حوزه تکنولوژی

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

نویسنده: نام نویسنده
چیزایی که درباره خط فرمان پایتون باید بدونیم

چیزایی که درباره خط فرمان پایتون باید بدونیم

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

نویسنده: نام نویسنده

دیدگاه و نظرات