بک اند چیست و برنامه نویس Back end کیست؟
در دنیای طراحی و توسعه وب واژه بک اند Back End یا برنامه نویس بک اند کار زیاد شنیده می شود و در مقابل برخی از افراد فعال در اینترنت دنبال برنامه نویسان فرانت اند (Frond End) هستند.
در حقیقت در طراحی و توسعه یک وبسایت این دو دسته از برنامه نویسان با همکاری یکدیگر آن را تا مرحله بهره برداری پیش می برند. وظیفه برنامه نویس فرانت اند طراحی رابط کاربری و ظاهر سایت می باشد و وظیفه برنامه نویس back end برنامه نویسی سمت سرور و ایجاد ارتباط بین کاربر و سرور می باشد. در این مقاله قصد داریم به طور جامع به معرفی back end بپردازیم و ویژگی های یک برنامه نویس بک اند را با هم بررسی کنیم.
تعریف بک اند
توسعه بک اند یا همان توسعه سمت سرور (Server side)، در حقیقت کدهایی است که به منظور کنترل منطق و مغز متفکر سایت، توسط برنامه نویسان بک اند در هسته آن نوشته می شود و کاربر هیچ دسترسی به آنها ندارد. در حقیقت بخش back end نیمه پنهان یک وبسایت می باشد که با کمک برقراری ارتباط میان سرور و سمت کاربر یا همان فرانت اند به تمامی اِلمان های رابط کاربری یک سایت جان می بخشد. برای فهم بهتر این موضوع به چگونگی عملکرد صفحات وب می پردازیم و دو مفهوم سمت کاربر و سمت سرور را بیشتر توضیح می دهیم.
منظور از سمت کاربر (Client Side) بخشی است که در برنامه نویسی فرانت اند می باشد و در آن برنامه نویس با استفاده از کدهای نوشته شده با HTML، CSS و یا Java Script و یا فریم ورک ها و زبان های دیگر، ساختمان یک صفحه وب را طراحی می کند. البته بدون وجود یک برنامه نویس بک اند تمامی کدهای نوشته شده در فرانت اند به هیچ دردی نمی خورند. در حقیقت شاکله و هسته ایجاد صفحات وب برنامه نویسان بک اند هستند که با استفاده از زبان های پیچیده تری مثل PHP و ASP.NET، node.js یا… کدهایی را بر روی سرور ها اعمال می کنند.
به عنوان مثال فرض کنید در حال خواندن متنی بر روی یک وبسایت می باشید، تمامی رنگ ها، فونت ها و طرح ها کار برنامه نویس فرانت اند (Front End) می باشد در حالی که کل این محتوا از یک سرور و پایگاه داده خاصی رِندر (Render) می شود که توسط برنامه نویس بک اند اداره می شود. به عنوان مثال دیگر یک دکمه خرید را فرض کنید که بسیار زیبا طراحی شده است. ظاهر و رنگ این دکمه توسط برنامه نویس فرانت اند و عملکرد دکمه که شما را به صفحه پرداخت منتقل می کند توسط برنامه نویس بک اند نوشته شده است.
نکته جالب توجه این است که اگر برنامه نویسی هم به برنامه نویسی در بک اند و هم در فرانت اند تسلط داشته باشد، برنامه نویس Fullstack گفته می شود که این افراد معمولا از تجربه بسیار بالاتری برخوردار هستند و آشنایی بسیار خوبی با توسعه سمت کاربر و سمت سرور دارند.
پیش نیازهای برنامه نویس بک اند
- زبان توسعه وب (Web Programming Language) :
یک برنامه نویس بک اند باید با حداقل یک زبان برنامه نویسی وب مانند جاوا اسکریپت، پایتون، Ruby، .NET، PHP یا… به طور کامل آشنا باشد.
- پایگاه داده (Data Base) و کَش (Cache) :
دانش سیستم مدیریتی پایگاه داده (DBMS) یکی از موارد ضروری برای یک توسعه دهنده بک اند می باشد. برخی از این سیستم های مدیریتی مانند mySQL، mongoDB، Oracle و Redis در دسترس برنامه نویس می باشند.
- سرور :
کار بر روی سرورهای مختلف مانند Apache، Nginx و Microsoft lls برای برنامه نویس بک اند امری مهم به شمار می رود که در این میان Linux می تواند شرایط بهتری نسبت به سایر رقبا مثل ویندوز یا مک برای برنامه نویسی بک اند محیا کند. (بنابراین شروع کار با لینوکس و تسلط به آن را هم باید در برنامه های خود قرار دهید.)
- API ها (REST&SAOP):
آشنایی کامل با رابط کاربردی برنامه نویسی یا همان API برای تبدیل شدن به یک برنامه نویس بک اند امری ضروری می باشد بدین گونه که آگاهی در زمینه استفاده از وب سرویس های Saop و Rest برای آنها کافیست.
پیش نیاز های دیگر برای برنامه نویس Back End
- تجربه کار با فریم ورک هایی از قبیل Django و Larval
- توانایی در نوشتن تست واحد (Unit test)
- آگاهی از نحوه عملکرد الگوریتم ها، ریاضیات گسسته و ساختار داده
- داشتن دغدغه و دانش امنیتی برای هر لایه از سرور
- آگاهی از تقاوت های پلتفرم های مختلف مانند موبایل و کامپیوتر
- آشنایی با حداقل زبان های برنامه نویسی فرانت اند مانند HTML یا CSS
- توانایی مدیریت بخش های محیط سرور
- توانایی حل مسئله
- جستجو و پرسش مداوم در منابع انگلیسی
زبان های محبوب برای برنامه نویسی سمت سرور
- Java :
جاوا زبان برنامه نویسی محبوب و قدیمی است که مورد علاقه بسیاری از برنامه نویسان می باشد و یکی از نقاط قوت این زبان استفاده از امکانات ماشین مجازی (Java Virtual Machine) است که در واقع باعث راحتی در کامپایل (Compile) و ران کردن کدها در سیستم عامل های مختلف می شود. این زبان دارای انجمن های پرسش و پاسخ بزرگ و وسیعی است که هیچ سوال یا مشکلی را بدون پاسخ و ارائه راه حل نمی گذارند.
طراحی و توسعه اپلیکیشن های اندروید، توسعه و راه اندازی وبسایت، پردازش تصویر (image processing) و طراحی نرم افزارهای مبتنی بر رابط کاربری گرافیکی (GUI) از جمله مواردی هستند که می وان با استفاده از زبان برنامه نویسی Java به راحتی آنها را انجام داد.
- PHP :
PHP یکی از پرکاربردترین زبان های سمت سرور است که در طراحی اکثر سایت ها نقش اساسی دارد. به علاوه منابع یادگیری و حل مشکلات آن بسیار زیاد هستند. PHP در طراحی نرم افزارهای کامپیوتر، تنظیم و تدوین کوکی ها و تحلیل و جمع آوری داده ها استفاده می شود. برای مثال کمپانی های معتبری از جمله فیسبوک PHP را به عنوان زبان سمت سرور خود انتخاب کردهاند.
- Python :
با پیشرفت روز افزون پایتون، این زبان برنامه نویسی به یکی از رقبای جدی Java و PHP تبدیل شده است. سادگی و در دسترس بودن منابع یادگیری آن باعث شده حتی مورد استقبال کسانی که تحصیلات آکادمیک در زمینه تکنولوژی و نرم افزار ندارند هم قرار بگیرد. در کمپانی هایی مانند پینترست (Pinterest) و موزیلا (Mozilla) و همچنین بسیاری از پروژه های ناسا از پایتون به عنوان زبان برنامه نویسی استفاده شده است. پایتون دارای دو فریم ورک بسیار محبوب به نام های Django و Flask نیز می باشد که می توانند برنامه نویسی به زبان پایتون را برای برنامه نویس بسیار ساده تر کنند.
- Javascript :
جاوا اسکریپت یک زبان شی گرا و بر بر اساس موجودیت هاست (Objective) که بسیار محبوب می باشد و دارای چندین فریم ورک محبوب مثل انگولار، Node.js، React.js، Vue.js می باشد که از میان آنها Node.js یک فریم ورک فوق العاده برای توسعه سمت سرور می باشد که هر سال کمپانی های بیشتری به استفاده از آن روی می آورند.
- #C :
این زبان بر پایه زبان ++C ساخته شده است بنابراین یادگیری آن بسیار راحت می باشد. البته کاربرد اصلی این زبان در ساخت بازی های رایانه ای است.
مسئولیت های یک برنامه نویس Back End
- درک اهداف اصلی راه اندازی یک وبسایت و مدیریت هر چه بهتر مشکلات آن
- ذخیره داده و اطمینان از تحویل آن به کاربر
- توسعه سیستم های پرداخت
- مدیریت منابع API های موجود در دستگاه ها
- تحلیل و بررسی منطق (Logic) سیستم که در دستگاه های مختلف وجود دارد.
- برنامه نویسان بک اند باید یک دید کلی نسبت به ساختمان فریم ورک های موجود داشته باشد.
- اجرای الگوریتم ها و مفاهیم ریاضیات گسسته برای حل مشکل وبسایت ها یکی دیگر از مسئولیت برنامه نویسان بک اند می باشد.
نتیجه گیری
درآمد برنامه نویسان بک اند معمولا از برنامه نویسان فرانت اند بیشتر است که البته این قضیه با توجه به دشواری بیشتر آن منطقی هم هست. بنابراین اگر قصد دارید به یک برنامه نویس بک اند حرفه ای تبدیل شوید، باید یک زبان و فریم ورک مناسب که شرکت های امروزی به دنبال آن هستند (مثل Node.js) را بیاموزید و بعد از تسلط بر پیش نیازهایی که در بالا گفته شد با قدرت وارد این بازار کار شوید و به مرور رزومه خود را تقویت کنید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.