برنامه نویسی back end چیست و یک بک اندکار چه وظایفی دارد ؟
برنامه نویسی back end چیست
اگر بخواهیم به سوال برنامه نویسی Back End چیست پاسخ دهیم، در مرحلهی اول خیلی خوب است که به دنبال معنی واژهی Back در دیکشنری باشیم. در فست دیک، واژهی Back اینگونه معنا شده است:
Back: عقب، پشت (بدن)، پس، عقبی، گذشته، پشتی، پشتی کنندگان، تکیه گاه، به عقب، درعقب، برگشت (و…)
همانطور که میبینید، یکی از اصلی ترین معانی واژهی Back، پشت میباشد. و دقیقا این معنی با کاری که برنامه نویسی اند میکند ارتباط دارد.
وقتی از برنامه نویسی بک اند صحبت میکنیم، منظورمان تمام آن کارهایی است که در پشت صحنه انجام میشود و کاربر آنها را نمیبیند.
ما در تعریف طراحی/برنامه نویسی فراند اند گفتیم:
طراحی یا کدنویسی هر آن چیزی که مربوط به جلوی وبسایت میشود. در واقع یک طراح وب یا یک Front End Developer، کسی است که چیزی را طراحی میکند کاربر آنرا میبیند.
اما برنامه نویسی بک اند (Back End)، دقیقا آن سوی ماجرا قرار دارد. اگر بخواهیم به سوال Back End چیست خیلی ساده پاسخ دهیم، میتوانیم بگوییم:
برنامه نویسی بک اند (Back End) مربوط به کدنویسی و برنامه نویسی هر آن چیزی است که کاربر آن را مشاهده نمیکند و مربوط به کارهای پشت صحنه وب سایت است. برای مثال وقتی که یک وبسایت، مقالات را از دیتابیس دریافت میکند، یک امر مربوط به بک اند است. وظیفهی یک برنامه نویس بک اند، برنامه نویسی چیزهایی است که هسته اصلی یک وبسایت هستند و کاربر کدهای آنرا بصورت مستقیم مشاهده نمیکند.
دولوپر بکاند کیست؟
افرادی هستند که با ابزارها، تکنولوژیها و زبانهای برنامهنویسی که در سمت سرور اجرا میشوند کار میکنند. در یک کلام، میتوان گفت تمام کارهای دیگر در توسعۀ وب به جز بخش فرانتاند را دولوپرهای بکاند انجام میدهند که در ادامه با حوزههایی که این دست برنامهنویسان با آنها سروکار دارند بیشتر آشنا خواهید شد.
– دیتابیس: دیتابیس این امکان را به ما میدهد که دادهها را اضافه کرده، حذف نماییم و یا تغییر دهیم و همچنین به دادههایی که از قبل تولید شدهاند، به راحتی دسترسی پیدا کنیم. تقریباً همهٔ وب اپلیکیشنها از دیتابیس استفاده میکنند و در کل دو نوع دیتابیس داریم که تفاوت عمدهای باهم دارند که عبارتند از SQL و NoSQL .
– معماری سهلایه: معماری سهلایه یا اصطلاحاً MVC یکی از ویژگیهای وب اپلیکیشنهای مدرن است و فریمورکهایی همچون Ruby on Rails برای زبان روبی و یا Laravel برای زبان پیاچپی از این معماری بهره میبرند. اگر بخواهیم خیلی ساده توضیح دهیم، این فریمورکها اپلیکیشن را به بخشهای مختلفی تقسیم میکنند و هر بخش مسئولیتهایی دارد که مجزا از سایر بخشها است.
– معماری رِستفول: به طور خلاصه، REST مفهومی است که به ما نشان میدهد ریکوئستهای پروتکل HTTP چگونه به تعامل با سرور میپردازند.
– بیزینس لاجیک: در نرمافزارهای کامپیوتری، Business Logic مفهومی است که انتظارات سفارشدهندهٔ نرمافزار را ابتدا در قالب الگوریتمها و سپس تبدیل آنها به کدهای کاربردی برآورده میسازد. مثلاً اگر درصدد ساخت یک فروشگاه آنلاین هستید، بیزینس لاجیک شما میشود امکاناتی از قبیل امکان افزودن کالا به سبد خرید، اِعمال تخفیف، جمع کل حساب، وصل شدن به درگاه بانک و …
روی هم رفته، میتوان گفت که یک برنامه نویس بکاند کسی است که کدهای پشت پرده را مینویسد و برای اِلِمانهای قرار گرفته روی صفحه توسط برنامه نویس فرانتاند همچون دکمهٔ ورود، دکمهٔ ثبتنام، عضویت در خبرنامه، نظرسنجی و غیره، عملکردهای سمت سرور تعریف میکند.
مسئولیت های برنامه نویسی Back End
- درک اهداف اصلی راه اندازی یک وبسایت و مدیریت هر چه بهتر مشکلات آن
- ذخیره داده و اطمینان از تحویل آن به کاربر
- توسعه سیستم های پرداخت
- مدیریت منابع API های موجود در دستگاه ها
- تحلیل و بررسی منطق (Logic) سیستم که در دستگاه های مختلف وجود دارد.
- برنامه نویسان بک اند باید یک دید کلی نسبت به ساختمان فریم ورک های موجود داشته باشد.
- اجرای الگوریتم ها و مفاهیم ریاضیات گسسته برای حل مشکل وبسایت ها یکی دیگر از مسئولیت برنامه نویسان بک اند می باشد.
مهارتها و زبانهای لازم برای برنامه نویسی back end
برنامه نویسان این حوزه باید با زبانها و تکنولوژیهای مختلف سمت سرور مانند
- Java
- PHP
- Python
- SQL
- #C
و NET. آشنا باشند. در ادامه به معرفی سه زبان پرکاربرد و محبوب در برنامه نویسی بک-اند میپردازیم.
Java
جاوا زبانی نسبتا قدیمی و محبوب است که برنامه نویسان زیادی از آن استفاده میکنند. یکی از نقاط قوت جاوا داشتن یک ماشین مجازی (Java Virtual Machine) است که باعث آسان کردن کامپایل (Compile) و اجرای کدها (Run) در سیستمها و محیطهای مختلف میشود.
این زبان انجمنهای پرسش و پاسخ گسترده ای دارد که تقریبا هیچ سوالی را بدون پاسخ نمیگذارند. توسعه اپلیکیشنهای اندروید، توسعه وبسایت، پردازش تصویر (image processing)، نرمافزارهای مبتنی بر رابط کاربری گرافیکی(GUI)، شبکه و غیره از جمله موارد یهستند که میتوانید با برنامه نویسی جاوا از عهده آنها بربیایید.
PHP
PHP پرکاربردترین زبانی است که در سمت سرور استفاده میشود و در ایجاد حدود 80% از سایتها نقش داشته است. همچنین منابع یادگیری این زبان بسیار گسترده است. PHP در برنامه نویسی نرمافزارهای دسکتاپ، تنظیم کوکیها، جمعآوری داده و غیره استفاده میشود. کمپانیهای معتبری از جمله فیسبوک (Facebook)، بافر (Buffer) و هوت سویت ( Hootsuite) PHP را به عنوان زبان سمت سرور خود انتخاب کردهاند.
Python
پایتون به سرعت درحال رشد است و یکی از رقبای جدی Java و PHP محسوب میشود. منابع یادگیری این زبان بسیار فراوان است و سادگی آن باعث شده حتی مورد استقبال کسانی قرار بگیرد که تحصیلات آکادمیک در حوزه علوم کامپیوتر ندارند. پایتون برای توسعه نرمافزارهای تحت وب و دسکتاپ بسیار مناسب است. در کمپانیهایی مانند پینترست (Pinterest) و موزیلا (Mozilla) و همچنین بسیاری از پروژههای ناسا از پایتون استفاده میشود.
SQL
از برنامه نویسان بک-اند انتظار میرود که توانایی کار با پایگاه داده را داشته باشند و SQL یکی از مهمترین زبانها برای کار با دیتابیس است. این زبان برای ایجاد پایگاه داده و دسترسی به اطلاعات آنها ایجاد شده و کسانی که با زمینههایی مانند داده کاوی و یا به طورکلی با دادهها سروکار دارند باید بر این زبان تسلط خوبی داشته باشند.
هرجا که پایگاه داده ای وجود دارد سروکله SQL پیدا میشود. این زبان معمولا انتخاب اول برنامه نویسان برای کار با پایگاه داده است.
C#
سی شارپ با تکیه بر زبان ++C ایجاد شده و از این رو ممکن است کار با آن برای بسیاری از توسعه دهندگان راحت باشد. یادگیری سی شارپ راحتتر از ++C است و در ساخت بازیهای کامپیوتری نیز استفاده زیادی دارد.
کسانی که قصد دارند برنامه نویس و توسعه دهنده بک اند شوند باید ویژگیها و مهارتهای مختلف دیگری نیز داشته باشند، از جمله :
- آشنایی به حداقل یک زبان برنامه نویسی سمت سرور (php, python, nodejs, java و …)
- آشنایی با مفاهیم پایگاه داده
- آشنایی با الگوریتم و ریاضیات گسسته
- توانایی حل مسئله و چالش پذیری
- شناخت الگویهای طراحی
درآمد برنامه نویسان بک اند معمولا از برنامه نویسان فرانت اند بیشتر است که البته این قضیه با توجه به دشواری بیشتر آن منطقی هم هست. بنابراین اگر قصد دارید به یک برنامه نویس بک اند حرفه ای تبدیل شوید، باید یک زبان و فریم ورک مناسب که شرکت های امروزی به دنبال آن هستند (مثل Node.js) را بیاموزید و بعد از تسلط بر پیش نیازهایی که در بالا گفته شد با قدرت وارد این بازار کار شوید و به مرور رزومه خود را تقویت کنید.
دیدگاهتان را بنویسید