تا به حال به اجزای یک برنامه رایانه ای نگاه کردید که چگونه ساخته شده است؟ اینکه چه اجزایی میتواند داشته باشد؟ اساس و پایه برنامه به چه شکل است؟
پس با ما همراه باشید تا به بررسی مهمترین بخش برنامه نویسی، یعنی Back-End را بررسی کنیم و از انواع زبانها و مثالهای بسیار جالب شما را بهره مند کنیم.
Back-End به معنای پشته یا پس زمینه که به صورت Back-End نوشته میشود، بخش پس زمینه یک برنامه رایانه ای میباشد؛ درواقع بخشی که شما در برنامه رایانه ای میبینید به آن بخش Front-End میگویند که شامل دکمه ها، افکت ها، رنگها و … است و بخشی که شما نمیبینید و در پس زمینه برنامه قرار دارد را که شامل دستورات، محاسبات و دادهها را Back-End می گویند.
پاسخ صریح این سؤال خیر است در حقیقت تمام زبانهای برنامه نویسی دارای ناحیه Back-End میباشند و تقریباً بیشتر بخش یک زبان که شامل دستورات شرطی و غیرشرطی، متغیر ها و … است همه و همه در ناحیه Back-End قرار دارند.
زبانهایی همانند HTML، CSS، QML که بخش Front-End برنامه را میسازند درواقع زبان برنامه نویسی نیستند بلکه زبان Markup یا به اصطلاح زبان نشانه گذاری می باشند.
ما در دنیای رایانه ها با انواع زبانهای مختلف آشنا میشویم بعضی از آنها را برای ذخیره سازی اطلاعات، بعضی دیگر برای توسعه وب، برای هوش مصنوعی و … استفاده می کنیم؛ اما اینکه کدام یک از آنها یک زبان برنامه نویسی است باید دقیق برسی کنیم؛ یکی از اصل های یک زبان که آن را زبان برنامه نویسی میکند وجود 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 در زبان اسمبلی بسیار دشوار و سخت باشد اما فهم Back-End در زبانهای خانواده سی کاملاً واضح و روشن است.
زبان برنامه نویسی سی
سی زبان Back-End است یا Front-End؟
زبان برنامه نویسی سی اساساً همانند اسمبلی بر پایه الگوریتم ساخته شده است و بیشتر اجزای آن در Back-End می باشد.
یادگیری
برای یادگیری زبان برنامه نویسی سی، بهتر است ابتدا با مفهوم الگورتیم و حل مسأله آشنایی کافی داشته باشیم و همچنین باید به الگوریتم نویسی تسلط داشته و بتوانیم مسائل ساده ریاضی را با آن پیاده سازی کنیم، در غیر این صورت دستورات زبان برنامه نویسی سی برای ما نامفهوم خواهد بود که این امر باعث پایین آمدن سرعت یادگیری سی در ما خواهد شد.
اجزای این زبان
این زبان برنامه نویسی، در بسیاری از حوزه های رایانه استفاده می شود؛ یک برنامه نوشته شده با این زبان شامل چنین اجزایی میباشد که همه آنها در موقع اجرای برنامه از دید کاربر پنهان اند (پس بخش Back-End محسوب می شوند):
برنامه های نوشته شده با زبان سی بدون بخش Front-End چه شکلی خواهند بود؟
برنامههای نوشته شده با سی بدون واسط کاربری گرافیکی (بدون Front-End) به صورت خطی و کنسولی میباشند؛ اولین برنامهها و سیستم عامل ها هم به همین صورت با این زبان برنامه نویسی نوشته شدند.
تحلیل یک مثال ساده از سی
این برنامه یک ماشین حساب ساده با چهار عمل اصلی است؛ این ماشین حساب سه پارامتر شامل عدد اول، نوع محاسبه (جمع، تفریق، ضرب و تقسیم) و عدد دوم دارد.
این ماشین حساب ابتدا پارامترها را توسط تابع 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 ارسال کنیم
:
یک نقطه عطف مهم برای پایتون در سال 2020 اتفاق افتاد. پایتون 2.7 برای اولین بار در سال 2010 منتشر شد و در 1 ژانویه 2020 پستیبانی رسمی از اون تموم شد. پایتون 2 نزدیک به 20 سال به خوب...
توزیع لینوکس یا در حقیقت توزیع گنو/لینوکس (در حالت عامیانه بین بیشتر مردم گنو/لینوکس به عنوان لینوکس شناخته میشه که البته اشتباه هستش چون لینوکس فقط بخشی از سیستم عام...
دقیقاً در نقطه مقابل نوع استاتیک قرار میگیره یعنی زبانهایی که از این نوع استفاده میکنن نوع داده متغییر ها رو در هنگام اجرا بررسی میکنن یا به قول خارجی ها “check on the fly...
درواقع توسعه دهندهای گرامی اومدن دوباره یک کامپایلر مخصوص برای پایتون میکرو کنترلی ساختن و همچنین یک اجرا کنند و … که خیلی کار سختیه و کار هر کسی نیست! ولی همین کار...
بررسی ویژگی ها و مزیت ها و جزییات این زبان از حوصله این مقاله خارج هست و در این مقاله من فقط به 5 کاربرد پایتون در تکنولوژی اشاره میکنم ولی اگه علاقمند هستید که بیشتر د...
خروجی ها تو پایتون با امکانت زیادی رو به رو هستن شامل فونت مناسب، پشتیبانی از زبانهای فراوان نظیر فارسی و انگلیسی و همچنین پشتیبانی از رنگهای مختلف....