زبانهای برنامه نویسی فرانتاند و بکاند اجزای سازنده همین اینترنتی هستند که اکنون با آن سر و کار دارید. برنامهنویسی فرانتاند شامل تمام چیزهایی است که شما در مرورگر خود شاهد آن هستید. و در مقابل توسعه و برنامهنویسی بکاند، پردازشهای سمت سرور و پشت صحنه سایت را شامل میشود.
یک مثال ساده: همین صفحهای که اکنون در حال مطالعه آن هستید را در نظر بگیرید. ظاهر این صفحه با استفاده از سه زبان برنامهنویسی HTML، CSS و JavaScript نوشته شده است. اگر بخواهیم دقیقتر بگوییم، همه این کلماتی که میخوانید ابتدا در قالب HTML نوشته شدهاند. سپس توسط زبان CSS استایلهای مورد نظرمان را روی آنها پیاده کردیم. استایلهایی مثل رنگ متن، فونت، سایز فونت و غیره. و در آخر با استفاده از زبان JavaScript گرافیک و پویایی تعاملی صفحه را تعریف کردهایم که صفحه در برابر هر کنش کاربر چه واکنشی از خود نشان دهد. در عین حال در پشت صحنه سایت با استفاده از زبان PHP تعیین کردهایم که همهی این اطلاعات شامل عکس، متن و غیره از کدام پایگاه داده و به چه طریقی از روی سرور به کامپیوتر کاربر بارگذاری شوند. همهی اینها ساختار چرخهای نامرئی را ساختهاند که باعث شده یک پاراگراف در کسری از ثانیه بر روی مرورگر شما نقش ببنند( و البته کسری در ثانیه در شرایط ایدهآل اینترنت! ).
تمام ساختار زبانهای برنامهنویسی فرانتاند و بکاند در تعاریف بالا خلاصه میشوند. اما بیایید برای چند لحظه دید فنی و تکنیکال خود را به موضوع تغییر دهیم و از جهتی دیگر به آن نگاه کنیم.
از بسیاری جهات یک سایت شبیه به یک خانه یا یک شهر است. در یک شهر اجزایی وجود دارند که سطح و نمای شهر را شکل میدهند و در پس این نما سیستمی وجود دارد که این سطح را دائما پشتیبانی کند. مثلا خیابانها، خانهها و پارکها میتوانند نمای شهر باشند و در کنار آنها سیستم آب و فاضلاب و برق شهری، سیستم پشتیبان آنها. نیازی نیست چیزی را برای خود پیچیده کنیم. همه حرف ما اینجا این است که در هر سیستم، بخشهایی از آن قابل دید و بخشهایی خارج از دیداند. در مثال خانه هم به همین صورت، HTML اسکلت خانه، CSS نمای آن و JavaScript هر چیزی است که خانه را تبدیل به خانه میکند. مانند نحوه باز شدن درب ورودی. کار PHP در اینجا مثال سرویسهای پشتیانی مانند سیستم آب، گاز و تلفن است که نیازهای اصلی خانه را از منابع خاص دریافت و تهیه میکنند.
در ظاهر که ساده به نظر میرسد اما همانطور که به احتمال زیاد خودتان هم حدس زدهاید برای پیادهسازی ممکن است کمی سردرگمی ایجاد شود. ابتدای مسیر برنامهنویسی همیشه با سوالات زیادی همراه بوده. چه زبانی را برای برنامهنویسی انتخاب کنم؟ یا که چه زبانی برای چه کارهایی بهینه است؟ برنامه نویسی را از کجا شروع کنیم؟ چه پیشنیازهایی برای هر کدام از زبانهای برنامهنویسی فرانتاند و بکاند لازم دارم و سوالهایی از این دست.
هدف ما از تهیه این پست، از بین بردن تمام سردرگمیها و سوالات این چنینی در حوضه برنامهنویسی تحت وب است. در این پست به معرفی زبانهای برنامهنویسی فرانتاند و بکاند خواهیم پرداخت و اجزا و ابعاد آنها را بررسی خواهیم کرد. پس تا انتها با ما همراه باشید.
برنامهنویسی فرانتاند(front-end) چیست؟
برنامهنویسی فرانت اند تمام آن چیزی را میسازد که کاربر آن را میبیند و با آن تعامل ایجاد میکند. دو زبان نشانه گذاری HTML و CSS در کنار زبان برنامهنویسی JavaScript، زبانهای فرانتاند هستند. هر کدام از زبانهای فرانتاند کاربرد خاص خود را دارند و هیچکدام نمیتواند جایدیگری را بگیرد.
به زبان ساده: یک برنامهنویس فرانتاند که کار طراحی سایت انجام میدهد در اصل کار ساخت ظاهر سایت را عهدهدار است.
چیزی که امروزه در اینترنت شاهد آن هستیم و روزانه از آن استفاده میکنیم همگی به خاطر توسعه فرانتاند در طول این سالهاست که موجب شده سایتهای مختلف بر سر ظاهر و ایجاد تعامل با کاربر با یکدیگر اینچنین به رقابت بپردازند و سایتهای تعاملی با ظاهر زیبا خلق بشوند. در دنیای اینترنت، تعامل و ارتباط حرف اول را میزنند. از دل همین موضوع لفظهایی مثل رابطکاربری (UI) و تجربه کاربری (UX) در بحثهای طراحی سایت و به کل طراحی شکل گرفتند و امروزه نقش مهمی را در صنعت جذب کاربر بازی میکنند.
یک برنامهنویس فرانتاند علاوه بر تسلط بر سه زبان اصلی ذکر شده باید دید گرافیکی خوبی داشته و به استایلهای طراحی و ترند روز آشنایی داشته باشد. تسلط بر برنامههایی مثل فوتوشاپ و ایلاستریتور کمک میکنند که طراح قبل از شروع به کد نویسی بتواند طرح خود را در قالب یک تصویر ایجاد کرده و سپس دقیقتر کد بزند. برنامهنویس فرانتاند علاوه بر کدنویسی میبایستی ذوق و ایدهپردازی گرافیکی خود را قوی کند. در طی سالهای اخیر برنامهنویسی فرانتاند توسعه زیادی داشته و این موضوع به صورت تدریجی در بسیاری از سایتها قابل مشاهده بوده است.
برنامهنویسی بکاند چیست؟
همانطور که گفتیم فرانتاند مشخص میکند که سایت چه شکلی باشد. در اینجا میگوییم که بکاند مشخص میکند سایت چه کاری انجام دهد. یک برنامهنویس بکاند از مجموعهای از زبانهای برنامهنویسی استفاده میکند تا تا کدهای فرانتاند را به اصطلاح زندهکند. برنامهنویس فرانتاند مشخص میکرد که کاربر چه چیز را در مرورگر خود تجربه کند اما در مقابل برنامهنویس بکاند منطقی را در سرور ایجاد میکند که آن تجربه حقیقی شود. به عبارت دیگر یک برنامهنویس بکاند منطق سمت سرور یک سایت را توسعه و حفظ میکند. بر خلاف فرانتاند که از مجموعه ثابتی از زبانها تشکیل شده بود برای برنامهنویسی بکاند ابزار متنوعتری برای طراح موجود است که با آن به توسعه بپردازد. از محبوبترین زبانهای برنامهنویسی بکاند میتوان به PHP، python و Ruby اشاره کرد. وظیفه اصلی این زبانها پاسخ و بازخورد دادن به درخواست کاربر است. این زبانها اطلاعات را از پایگاه داده یا همان دیتابیس پردازش و ارسال میکنند. در اصل فرانتاند بدون بکاند هیچ کاربردی ندارد. میتوان به راحتی نتیجهگیری کرد که کار برنامهنویسهای بکاند به مراتب تکنیکالتر از برنامهنویسی سمت کاربر یا فرانت است اما باید این را در نظر داشت که برای توسعه بکاند برنامهنویس موظف است که شناخت اولیه از توسعه فرانت را داشته باشد و موازی با آن پیش برود.
در حال حاضر یکی از محبوبترین زبانهای برنامهنویسی سمت سرور PHP است. PHP یک زبان منبع باز بوده و بر خلاف ASP.NET استفاده از آن کاملا رایگان است که همین موضوع در کنار ساختار قدرتمند، آن را به یکی از محبوبترین زبانهای بکاند تبدیل کرده است. سیستمهای مدیریت محتوای وردپرس و جوملا نیز بر پایه همین زبان نوشته شدهاند. در کنار PHP سیستم مدیریت داده MySQL به طور گستردهای در برنامهنویسی بکاند مورد استفاده قرار میگیرد.
فرانتاند یا بکاند؟
برنامهنویسی فرانتاند و بکاند در جبهههای متفاوتی میتوانند روبروی هم قرار بگیرند. از عنوانهای شغلی گرفته تا فلسفههای برنامهنویسان! آنها از زبانهای مختلفی استفاده میکنند و به کل وظایف مختلفی را انجام میدهند. اما نباید فراموش کرد که وظیفه نهایی هر دوی آنها یک چیز بوده و آن هم برطرف کردن نیاز کاربر سایت است و بس. هر دوی آنها دو روی یک سکه بوده و در راستای هدف یکسانی حرکت میکنند. اما برای اینکه بفهمیم گرایش هر شخص برای توسعه به چه سمتی است المانهای زیادی را میتوان در نظر گرفت.
همهی عناصر به خود شخص برمیگردد که چه هدفی دارد و علایق او بیشتر در چه زمینهایست. همانطور که گفتیم فرانتاند بیشتر طالب ذوق و ایدهپردازی بصری است و در مقابل بکاند منطقی، همراه با استدلالات ریاضیست. در بازار کار عنوانی تحت بهترین برنامهنویس وجود ندارد و در هر دو زمینه پتانسیل رشد و خلاقیت تا بینهایت پیش میرود. مشخص کنید که کدام یک برای شما جذابتر است و ببینید که مسیر یادگیری کدام یک را میپسندید. در ضمن اگر واقعا قصد ورود به دنیای برنامهنویسی وب و طراحی سایت را داشته باشید بهتر است ابتدا در هر دو زمینه مطالعات کافی را به عمل بیاورید. با این کار علاوه بر آشنایی با مسیر ابتدا تا انتهای طراحی سایت حرفهای میتوانید بهتر تصمیم بگیرید که به چه چیزی علاقه دارید تا آن را ادامه دهید.
موفق و پیروز باشید.
نوشتن دیدگاه