منظور از Back 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
- توانایی مدیریت بخش های محیط سرور
- توانایی حل مسئله
- جستجو و پرسش مداوم در منابع انگلیسی