1. منظور از Backend چیست؟
2. برنامه نویس Back End کیست؟
3. یک نفر که متخصص Back End است به چه چیزهایی بایستی مسلط باشد؟
در این مقاله میخواهیم درباره برنامه نویسی سمت وب، یا برنامه نویسی بک اند یا Back End Development صحبت کنیم و تمام آن چیزی که نیاز دارید را بررسی کنیم.
بک اند چیست؟
واژهی Back اینگونه معنا شده است:
عقب، پشت ، پس، عقبی، گذشته، پشتی، پشتی کنندگان، تکیه گاه، به عقب، درعقب، برگشت (و…)
همانطور که میبینید، یکی از اصلی ترین معانی واژهی Back، پشت میباشد. و دقیقا این معنی با کاری که برنامه نویسی بک اند میکند ارتباط دارد.
وقتی از برنامه نویسی بک اند صحبت میکنیم، منظورمان تمام آن کارهایی است که در پشت صحنه انجام میشود و کاربر آنها را نمیبیند.
یک طراح وب یا یک Front End Developer، کسی است که چیزی را طراحی میکند کاربر آنرا میبیند.
اما برنامه نویسی بک اند (Back End)، دقیقا آن سوی ماجرا قرار دارد.
برنامه نویسی بک اند (Back End) مربوط به کدنویسی و برنامه نویسی هر آن چیزی است که کاربر آن را مشاهده نمیکند و مربوط به کارهای پشت صحنه وب سایت است. برای مثال وقتی که یک وبسایت، مقالات را از دیتابیس دریافت میکند، یک امر مربوط به بک اند است. وظیفهی یک برنامه نویس بک اند، برنامه نویسی چیزهایی است که هسته اصلی یک وبسایت هستند و کاربر کدهای آنرا بصورت مستقیم مشاهده نمیکند.
یسی بک اند (Back End) وجود دارد. و آن هم نمایان بودن یا نبودن کدهای آن برای کاربران سایت شماست.
وقتی که شما در حال طراحی وب با تکنولوژی هایی مثل HTML, CSS, Javascript و… هستید، تمام کدهایی که نوشتید را کاربر میتواند به راحتی ببیند. زیرا آن کدها مربوط به کاربر هستند و به آنها دسترسی مستقیم دارد.
اما وقتی شما در حال کدنویسی بک اند هستید و مثلا با زبانی مثل PHP کد نویسی میکنید، کاربر هیچ وقت هیچ دسترسی ای نمیتواند به کدهای شما داشته باشد. به این دلیل که این کدها سمت سرور پردازش و اجرا میشوند و کاربر به هیچ وجه نمیتواند آنها را ببیند، بلکه فقط نتیجهای که ایجاد میکنند را مشاهده میکند.
برای اینکه بتوانیم به سوال Back End چیست بهتر پاسخ دهیم، خیلی خوب است که دو مفهوم زیر را کمی توضیح دهیم.
Client Side:
از آنجایی که Client به معنای مشتری است، Client Side هم به معنی زبانهایی است که سمت کاربر کار میکنند. برای مثال میتوان به HTML, CSS, Javascript و… زبانهای سمت کاربر و Client Side نیز بگوییم. و به مجموع کاری که این زبانها انجام میدهند، طراحی وب یا Front End Development میگوییم.
Server Side:
همانطور که از اسم این عبارت پیداست، زبانهایی که در این دسته بندی قرار میگیرند، روی سرور اجرا میشوند و برای اجرا شدن به یک سرور نیاز دارند. برای مثال زبانهایی مثل PHP یا ASP NET برای اجرا حتما به یک سرور نیاز دارند، که این سرور هم میتواند یک سرور واقعی در دنیای آنلاین باشد و هم یک شبیه ساز سرور یا لوکال هاست (Localhost). به زبانهای برنامه نویسیای که سمت سرور اجرا میشوند، زبانهای Server Side و به مجموع کاری که این زبانها انجام میدهند، برنامه نویسی بک اند یا Back End Development میگویند.
در این بخش یک مثال میزنیم تا پاسخ سوال Back End چیست برایمان واضح تر شود
تمام آن کسانی که در صحنه فعالیت میکنند و نقش آفرینی میکنند و تماشاچیان آنها را میبینند را میتوانیم بگوییم Front End یک اجرای تئاتر.
و تمام کسانی که در پشت صحنه فعالیت میکنند، مثل طراح لباس، کارگردان، نویسنده، تهیه کننده و… که تماشاچیان آنها را نمیبینند، ولی در پشت صحنه کار میکنند و کارشان روی اجرا تاثیر دارد را میتوانیم Back End یک اجرای تئاتر بنامیم.
در وب هم دقیقا به همین صورت است. تمام آن چیزی که کاربر در صفحه مانیتور خود میبیند مربوط به Front End میشود، و تمام آن چیزی که در پشت صحنه اجرا میشود، مربوط به بک اند میشود.
مهارتهای یک برنامه نویس Back End چیست:
برای تبدیل شدن به یک برنامه نویس بک اند، شما باید مهارتهای زیادی داشته باشید.
زبان برنامه نویسی سمت سرور:
برای برنامه نویسی سمت سرور یا برنامه نویسی بک اند، اولین چیزی که نیاز دارید، یک زبان برنامه نویسیای است که سمت سرور اجرا شود. برای مثال زبانی مثل PHP یک زبان برنامه نویسی Back End است که باید روی سرور اجرا شود. پس در اولین قدم شما به یک زبان برنامه نویسی نیاز دارید.
پایگاه داده:
دومین چیزی که حتما و قطعا به آن نیاز دارید، پیدا کردن تسلط به یک دیتابیس (Database) یا پایگاه داده است.
میتوان گفت که اصلی ترین کار زبان های برنامه نویسی سمت سرور، توانایی ارتباط برقرار کردن آنها با دیتابیس است.
وقتی شما به دیتابیس مسلط باشید و بتوانید با استفاده از زبان برنامه نویسیتان به دیتابیس وصل شوید، میتوانید به سرویسهای آنلاینتان قدرت فوق العادهای بدهید و از مزیتهای فوق العادهی دیتابیس استفاده کنید.
مباحث پیشرفته زبان برنامه نویسی:
یکی از مباحثی که براش شما بسیار مفید خواهد بود، استفاده قابلیتهای حرفهای زبان برنامه نویسیتان است. به این معنا که بتوانید با آن زبان برنامه نویسی که کار میکنید، کدهای حرفهای و پیشرفتهای بنویسید. هرچقدر کدی که مینویسید بهتر و حرفهای و تمیزتر باشد، بازدهی کد شما بالاتر میرود و در نهایت سرویس آنلاین قوی تر و سریعتری خواهید داشت.
برای مثال در برنامه نویسی PHP، شما اگر بتوانید کدتان را به شیوهی شی گرایی (Object Oriented) بنویسید، کد شما میتواند خیلی تمیزتر، سریعتر و حرفهای تر باشد.
توانایی حل مسئله:
وقتی در خصوص برنامه نویسی سمت سرور یا Back End صحبت میکنیم، یکی از چیزهایی که برای شما ضروری است،توانایی حل مسئله و داشتن یک ذهن تحلیلگر است.
داشتن ذهن تحلیلگر، یکی از مهمترین ویژگی هایی است که هر برنامه نویسی باید از آن بهره ببرد.
سوال پرسیدن:
یکی دیگر از مهارتهایی که شما به عنوان یک برنامه نویس به آن نیاز دارید، توانایی سوال پرسیدن و راهنمایی گرفتن از دیگران است.
قطعا شما در مسیر برنامه نویسی به سوالات و مشکلاتی برخواهید خورد و باید آنها را حل کنید و برای اینکار نیاز دارید که از دیگران راهنمایی بگیرید. در واقع شما باید بتوانید خوب سوال بپرسید و سوال خوب بپرسید.
برنامه نویسان این حوزه باید با زبانها و تکنولوژیهای مختلف سمت سرور مانند
Java، PHP، Python، SQL، C#، ... آشنا باشند.
در ادامه به معرفی برخی از زبان های پرکاربرد و محبوب در برنامه نویسی بک-اند میپردازیم.
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 است و در ساخت بازیهای کامپیوتری نیز استفاده زیادی دارد.