سلام دوستان، امیدوارم خوب باشید و پر انرژی و مثل همیشه آماده یادگیری. امروز قصد دارم درباره backend، برنامه نویس بک اند و وظایفی که داره باهاتون صحبت کنم. میشه گفت این مقاله به درد کسایی میخوره که توی دنیای برنامه نویسی و به خصوص طراحی سایت تازه واردن و خیلی با اصطلاحات این حوزه آشنا نیستن. خب دیگه بیشتر از این مقدمه چینی نمیکنم و مستقیم میرم سراغ آموزش.
backend چیه؟
قبل از اینکه بخوایم در مورد برنامه نویس بک اند و وظایفش صحبت کنیم، بهتره اول ببینیم که بک اند چیه؟. اگه بخوام خیلی ساده و به طور خلاصه بگم، میشه گفت برنامه نویس بک اند کسیه که کدهای پشت صحنه یه نرم افزار رو مینویسه. حالا اجازه بدید این قضیه backend و frontend رو دقیق تر و با ذکر یه مثال بهتون توضیح بدم که بهتر متوجه بشید.
فرض کنید شما و دوستاتون تصمیم گرفتید برای صرف نهار به رستوران برید. وقتی وارد رستوران میشید یه فضایی برای نشیمن وجود داره، گارسون سفارش شما رو دریافت میکنه و بعد از گذشت مدتی غذا بهتون تحویل میده. در این حالت شما فقط غذا رو سفارش دادید و بعد از طی شدن یه سری فرآیندهایی که شما ازش اطلاع ندارید غذا رو دریافت کردید. درواقع شما نمیدونید غذایی که دارید میل میکنید چطور پخته شده. شما فقط غذا رو سفارش دادید و بعد هم سفارشتون رو دریافت کردید اما نمیدونید توی آشپزخونه رستوران چه خبره. بک اند یه نرم افزار دقیقا شبیه آشپزخونه رستوران قصه ماست.
وقتی کاربری در حال استفاده از یک سایت یا نرم افزاره، با رابط کاربری نرم افزار یعنی فرم ها و دکمه ها و… سر و کار داره. درواقع کاربر اصلا نمیدونه اطلاعات چطور و کجا ذخیره میشه و یا روند ثبت نام، محاسبات، گزارشگیری و… چطور انجام میشه. به اون چیزی که کاربر به عنوان ظاهر نرم افزار میبینه و با اون تعامل داره (فرمها، دکمهها و…)، میگن رابط کاربری یا frontend. و به اون منطق عملکرد نرم افزار که در پشت صحنه انجام میشه میگن backend. پس منظور از برنامه نویس بک اند کسیه که کدهای مربوط به منطق برنامه رو مدیریت میکنه و با این قسمت از یه برنامه سر و کار داره.
شاید این سوال واستون پیش بیاد که برنامه نویس بک اند و فرانت اند، لزوما با هم فرق دارن؟!
در جواب باید بگم که نه. یه برنامه نویس میتونه برنامه نویسی ظاهر برنامه، منطق برنامه و حتی برنامه نویسی، طراحی و مدیریت پایگاه داده رو هم به عهده داشته باشه. اما به چنین فردی میگن فول استک. درواقع برنامه نویس فول استک کسیه که به تمام دانش مورد نیاز برای طراحی و پیاده سازی یک نرم افزار مسلط باشه. اما وقتی درباره برنامه نویس backend صحبت میکنیم منظورمون شخصیه که فقط به برنامه نویسی منطق برنامه مسلطه و دانش طراحی رابط کاربری یا مدیریت پایگاه داده رو نداره.
لایهها و سطوح یک نرم افزار
شاید بد نباشه الان که بحث بک اند و فرانت اند یه نرم افزار رو مطرح کردیم درباره سطوح هر نرم افزار با هم صحبت کنیم. به عنوان یه برنامه نویس متخصص لازمه که سطوح نرم افزار رو به خوبی بشناسید پس این بخش رو با دقت بخونید و سرسری ازش نگذرید!!. درواقع هر نرم افزار از 4 سطح تشکیل شده که در ادامه این 4 سطح رو بهتون معرفی میکنم.
- سطح اول: اطلاعات و فایل های نرم افزار + خواسته ها و نیازهای کاربر نرم افزار.
- سطح دوم: رابط کاربری نرم افزار. کاربر نرم افزار به طور مستقیم با این سطح در ارتباطه و از بقیه سطوح نرم افزار هیچ اطلاعی نداره.
- سطح سوم: منطق نرم افزار. درواقع این سطح همون سطح بک اند هست و برنامه نویس backend توی این سطح فعالیت میکنه.
- سطح چهارم: پایگاه داده. این سطح به طراحی و پیاده سازی ساختار ذخیره اطلاعات نرم افزار مربوطه.
نکات مهم:
نکته جالبی که لازمه بدونید اینه که کاربر فقط و فقط با سطح دوم در ارتباطه و از بقیه سطح ها هیچگونه اطلاعی نداره. احتمالا میگید سطح اول هم مربوط به اطلاعات و خواسته های کاربره و قطعا کاربر با سطح 1 هم در تعامله. اما باید بگم اینطور نیست و در اکثر مواقع کاربر به طور دقیق نمیدونه به چه اطلاعات و یا امکاناتی نیاز داره. این وظیفه شماست که به عنوان مهندس نرم افزار و یا طراح سایت نیاز کاربر رو شناسایی و نیازها و امکانات احتمالی که ممکنه کاربر بعدها به اون ها نیاز پیدا بکنه رو بشناسید و بعد برنامه نویسی کنید. بنابراین تمام اون چیزی که کاربر میبینه ظاهر برنامه است.
نکته مهم دیگه اینه که اگرچه سطح سوم و چهارم نرم افزار دو سطح کاملا مجزا از هم هستن اما برنامه نویس بک اند باید به هر دو سطح آشنا و مسلط باشه. درواقع در اغلب موارد شما به عنوان برنامه نویس بک اند علاوه بر پیاده سازی بخش منطق برنامه باید مدیریت پایگاه داده رو هم به عهده داشته باشید (فقط در بعضی موارد نادر و یا کار در شرکت های بزرگه که برنامه نویس بک اند و برنامه نویس دیتابیس با هم فرق دارن).
وظایف برنامه نویس backend:
- باید به یکی از زبان های برنامه نویسی مسلط باشید. همچنین اگه نرم افزار شما به صورت برنامههای کلاینت-سرور هست باید یه زبان سمت سرور رو به خوبی بلد باشید.
- مفاهیم پایگاه داده و ذخیره اطلاعات رو بلد باشید.
- به دستورهای sql مسلط باشید.
- بتونید با یکی از نرم افزارهای مدیریت پایگاه داده آشنا باشید.
- توانایی درک برنامه و تریس قدم به قدم کدهایی که نوشتید رو داشته باشید.
- بتونید خطاهای برنامه رو شناسایی و رفع کنید. درواقع باید قدرت تحلیل مشکل خوبی داشته باشید.
- خیلی خیلی خیلی مهمه که اصول کدنویسی تمیز رو بلد باشید.
- روحیه همکاری خوبی داشته باشید و بتونید با تیم تعامل داشته باشید و باهاشون کار کنید.
- به روشهای تست نرم افزار آشنا باشید.
- روشهای مستندسازی رو بشناسید و بهشون مسلط باشید.
جمه بندی مطلب:
دوستای گلم توی این مطلب سعی کردم شما رو با معنی backend آشنا کنم. همچنین درباره برنامه نویس بک اند و وظایفی که داره هم با هم صحبت کردیم. این مطلب میتونه خیلی گسترده تر باشه مثلا راجع به هر کدوم از وظایف برنامه نویس میشه ساعت ها صحبت کرد اما سعی کردم مطلب تا جایی که ممکنه ساده و خلاصه باشه. اگه سوالی براتون پیش اومد پایین همین مطلب واسم کامنت کنید. امیدوارم این مطلب براتون مفید بوده باشه. لطفا مطالب بعدی من رو هم دنبال کنید.