بک اند Backend اصطلاحی است که برای فعالیت های پشت صحنه که هنگام انجام هر عملی در یک سایت اتفاق می افتد استفاده می شود. این فعالیت ها می تواند ورود به سیستم، ثبت حساب کاربری یا خرید از یک فروشگاه آنلاین باشد. برنامه نویس یا توسعه دهنده بک اند بر پایگاه های داده، اسکریپت نویسی و معماری سایت ها تمرکز دارد. کدی که توسط توسعه دهندگان بک اند نوشته شده است به برقراری میان ارتباط اطلاعات پایگاه داده و مرورگر کمک می کند.
بک اند Backend سایت ترکیبی از تکنولوژی و برنامه نویسی است که به عنوان نیروی محرک سایت و هسته ی مرکزی آن شناخته می شود. این قسمت از سه بخش اصلی تشکیل شده است و آن بخش ها عبارتند از: مرورگر سرور سایت بانک اطلاعاتی یا دیتا بیس به عنوان مثال زمانی است که در حال خواندن مقاله ای در یک سایت هستید فونت ها، رنگ ها، طرح ها و ... نمای اصلی این صفحه هستند و با استفاده از مرورگر آن را مشاهده می کنید در حالی که محتوای مقاله از طریق سرور ارائه شده و از یک بانک اطلاعاتی یا دیتابیس دریافت می شود.
مهارت های مورد نیاز یک توسعه دهنده بک اند Backend
توسعه دهندگان بک اند Backend به مهارت های زیر نیاز دارد: آشنایی با زبان برنامه نویسی یک توسعه دهنده بک اند Backend باید حداقل با یک زبان برنامه نویسی سمت سرور مانند Java، Python، Ruby و ... آشنا باشد. سایت های جدید معمولا از زبان های مختلف برنامه نویسی ساخته می شوند و توسعه دهندگان سایت و به طور اختصاصی بک اند باید همواره به زبان های جدید تسلط داشته باشند زیرا تکنولوژی به سرعت در حال پیشرفت است.
تسلط بر دیتابیس و حافظه پنهان
دانش کافی در مورد فناوری های مختلف سیستم مدیریت پایگاه داده (DBMS) یکی دیگر از نیازهای مهم یک توسعه دهنده بک اند است. باید گفت که اصلی ترین کار زبان های برنامه نویسی سمت سرور، توانایی ارتباط برقرار کردن آنها با دیتابیس است. اگر شما به دیتابیس مسلط باشید و بتوانید با استفاده از زبان برنامه نویسی مختلف به دیتابیس وصل شوید موفق خواهید شد به سرویس های آنلاین خود قدرت فوق العادهای بدهید و از مزیت های فوق العادهی دیتابیس به طور کامل استفاده کنید. سرویس های MySQL ، MongoDB ، Oracle ، SQLServer ، Redis به طور گسترده ای برای این منظور استفاده می شوند. آشنایی با دانش مکانیسم های ذخیره مانند Memcached و Redis نیز یک امتیاز مثبت است.
تسلط بر سرور مختلف
آشنایی با سرورهای Apache ، Nginx ، IIS، Microsoft IIS یکی دیگر از مهارت های مورد نیاز یک توسعه دهنده بک اند است. علاوه بر این داشتن پیش زمینه کار با لینوکس نیز یک نکته مثبت و مهم است زیرا توانایی کار با سرور را به طور کلی افزایش می دهد.
آشنایی با API Application Programming Interface یا به اختصار API به معنی رابط برنامه نویسی اپلیکیشن است. API موجب برقراری یک ارتباط مستقیم بین سرور سایت شما و سرورهای گوگل می شود و آشنایی با ساخت و تحلیل سرویسهای REST و SOAP در این حوزه برای یک توسعه دهنده بک اند Backend ضروری است. مهارت های دیگری که برای تبدیل شدن به یک توسعه دهنده بک اند Backend نیاز دارید را در ادامه به اختصار اشاره می کنیم تا با تمرکز بر کسب آنها به یک متخصص در حوزه ی کاری خود تبدیل شوید:
- تجربه کار با فریم ورک هایی مانند Django برای Python ، Larval برای PHP و غیره
- توانایی نوشتن یونیت تستهای (Unit Test) متفاوت و با کیفیت
- داشتن دانش در حوزه ی الگوریتم ها و ساختارهای داده
- آگاهی از امنیت داده و اطلاعات برای فراهم نمودن امنیت متناسب با هر لایه زیرا هر لایه نقاط آسیب پذیر مختص خود را دارد
- شناخت سیستم عامل های مختلف و تفاوت های آنها مانند تفاوت میان سیستم عامل موبایلی و سیستم عامل های رایانه و دسکتاپ
- آشنایی ابتدایی با فناوری های frontend مانند HTML و CSS
- بهره مندی از دانش مدیریت جلسه در محیط سرور
نقش ها و مسئولیت های یک توسعه دهنده بک اند Backend
- درک اهداف سایت و ارائه راه حل های موثر
- ذخیره اطلاعات و اطمینان از ارائه ی آن به مخاطب در مواقع لزوم
- توسعه سیستم پردازش پرداخت مانند پذیرش داده ها، ذخیره ی امن اطلاعات و پرداخت هزینه های مربوطه
- مدیریت منابع API به صورتی که در دستگاه های مختلف قابل ارائه باشد
- مدیریت معماری اطلاعات سایت و سیستم های تجزیه و تحلیل
- اجرای الگوریتم ها و حل مشکلات مربوط به سیستم های مختلف
ویژگی های فردی مورد نیاز برای فعالیت به عنوان یک توسعه دهنده بک اند Backend
اگر قصد دارید به عنوان یک متخصص وارد این حوزه شوید بد نیست قبل از هر کاری نگاهی به ویژگی های عمومی و فردی مورد نیاز برای کار به عنوان یک توسعه دهنده بک اند بندازید:
- توجه به جزئیات یا جزئی نگری در فرآیند کار
- توانایی تفکر تحلیلی برای بررسی مشکلات احتمالی و ارائه ی راه حل های دقیق
- استقامت و صبر در برابر خطاهای سیستمی و مشکلات سایت
- مسئولیت پذیری بالا
- خلاقیت در طراحی و ایده پردازی
- روحیه ی انجام کار تیمی
- تحمل استرس و فشاری کاری همراه با کنترل خشم