هر وب سایتی که بازدید کرده اید را می توان به دو بخش تقسیم کرد: مواردی که مشاهده می کنید – از جمله صفحات و محتوا – و هر چیز دیگری که نمی بینید.
افرادی که روی این مؤلفهها کار میکنند، «توسعهدهندههای فرانت» و «توسعهدهندههای بکاند» نامیده میشوند. ایجاد هر دو قسمت جلویی و پشتی یک وب سایت با چالش های خاص خود همراه است، اما یکی بدون دیگری نمی تواند وجود داشته باشد.
اگر بیشتر به بخش نادیده وبسایتها علاقه دارید – بخشی که همه چیز را در حال اجرا نگه میدارد – ممکن است به دنبال شغلی در توسعه Back-end باشید. و، هرگز زمان بهتری برای انجام این کار وجود نداشته است: طبق آمار اداره آمار کار ایالات متحده، انتظار میرود نقش «توسعهدهنده وب» از سال 2020 تا 2030 به میزان 13 درصد افزایش یابد، که بسیار بالاتر از میانگین 8 درصد برای همه مشاغل است. .
در این راهنما، نقش توسعهدهنده بکاند در توسعه وبسایت را باز میکنیم. ما توضیح خواهیم داد که این توسعه دهندگان چه مسئولیتی دارند، زندگی روزمره آنها چگونه به نظر می رسد، و برای داشتن یک حرفه پربار در این زمینه به چه مهارت هایی نیاز دارید.
در توسعه وب، یک توسعه دهنده بک اند مسئولیت ساخت و نگهداری بک اند یک وب سایت یا برنامه وب را بر عهده دارد. قسمت پشتی شامل تمام اجزایی است که یک کاربر معمولی با آنها تعامل ندارد – این شامل پایگاههای داده، سرورها، منطق برنامهها و APIها میشود. توسعه دهندگان Back-end این زیرساخت را ایجاد می کنند و برای اطمینان از عملکرد صحیح این اجزا کار می کنند.
مطالعه بیشتر: چگونه یک قالب وردپرس را می توان سفارشی سازی کرد [+9 قالب وردپرس جدید]
درآمد یک توسعه دهنده بک اند چقدر است؟
دستمزد یک توسعهدهنده بکاند به شدت به محل کار آنها بستگی دارد. اما به طور کلی، افراد در این حرفه می توانند انتظار داشته باشند که به خوبی جبران شود. توسعه دهندگان Back-end بسیار مورد توجه هستند و می توانند انتظار داشته باشند که به طور متوسط 95000 دلار در هر indeed.com درآمد داشته باشند.
توسعه back-end چیست؟
بنابراین، قسمت پشتی در واقع چگونه به نظر می رسد؟ هیچ چیز، واقعا، حداقل برای کاربر نیست. با این حال، قسمت پشتی همیشه پشت صحنه در حال حرکت است تا تجربه جلویی را برای بازدیدکنندگان تقویت کند.
برای مثال این پست وبلاگ را در نظر بگیرید. آنچه بر روی صفحه نمایش خود مشاهده می کنید، قسمت جلویی، رابط وب سایت است. هر چیزی که در اینجا می بینید، از جمله متن، تصاویر و دکمه ها، قسمت جلویی وبلاگ HubSpot را تشکیل می دهد.
اما، چگونه این قسمت جلویی در وهله اول به رایانه شما رسید؟ فایلهای متنی و تصویری این پست در یک پایگاه داده روی سرور وب HubSpot ذخیره میشوند، و همچنین فایلهایی که تعیین میکنند رنگها، فونتها و اندازهها چگونه به نظر میرسند. هنگامی که شما (یا به طور دقیق، مرورگر شما) درخواست مشاهده این صفحه وب را داشتید، سرور درخواست را دریافت کرد، تمام فایل های لازم را از پایگاه داده خود جمع آوری کرد، آنها را در فایل های صفحه وب کامپایل کرد، سپس آن فایل ها را به مرورگر شما ارسال کرد. این پایان کار است.
یا، اگر فرمی را در وب سایت ما ارسال کنید، چه؟ ما دادههای فرم شما را میگیریم و آنها را در یک پایگاه داده سازمانیافته ذخیره میکنیم، سپس هنگام استفاده از آن دادههای شما را از پایگاه داده بیرون میکشیم تا مثلاً برای شما ایمیل ارسال کنیم. این عملیات همچنین بخشی از بکاند است و در نتیجه مسئولیت توسعهدهندگان بکاند را بر عهده دارد.
این اصل توسعه بکاند است: فیلد کردن دادههای کاربر از قسمت جلویی یک برنامه، ذخیره آن در یک پایگاه داده، اصلاح محتویات پایگاه داده در صورت نیاز، انجام انواع عملیات بر روی این دادههای ذخیرهشده، و ارسال مجدد دادهها. به قسمت جلویی توسعه دهندگان Back-end راه حل هایی را ارائه می دهند و کدی را می نویسند تا همه این اتفاق بیفتد. وای
هنوز گیج هستید؟ در اینجا یک ویدیوی مفید برای نشان دادن نحوه عملکرد backend وجود دارد
توسعه بکاند توسعه سمت سرور نیز نامیده میشود زیرا کد آن بر روی سرورهای وب اجرا میشود، رایانههای قدرتمندی که برای ذخیره فایلهای وبسایت و اجرای کد آن ساخته شدهاند. این برخلاف کد «سمت مشتری» است که در مرورگرهای وب کاربران اجرا می شود و بیشتر توسط توسعه دهندگان فرانت اند نوشته می شود.
یک توسعه دهنده بک اند چه کاری انجام می دهد؟
توسعه دهندگان Back-end قسمت پشتی که یک برنامه را اجرا می کند، می سازند، نگهداری می کنند و اشکال زدایی می کنند. همانطور که ممکن است تصور کنید، این یک مسئولیت بسیار بزرگ است که می تواند به وظایف زیادی تقسیم شود. بسته به شرکت، یک توسعهدهنده بکاند مسئول برخی، بیشتر یا همه موارد زیر خواهد بود:
- توسعه سیستم ها و فرآیندها برای برآوردن نیازهای مشخص شده برنامه
نگهداری پایگاه های داده شامل ذخیره سازی و بازیابی داده ها، سازماندهی، پشتیبان گیری و امنیت
پیدا کردن و رفع اشکالات در کد پشتیبان
مدیریت هر APIهایی که شرکت برای ادغام برنامهها، چه به صورت خارجی و چه داخلی، استفاده میکند
انجام بهینه سازی عملکرد برای افزایش کارایی و بهبود تجربه کاربر
ایجاد و نگهداری کتابخانه های کدی که می تواند توسط توسعه دهندگان در سراسر سازمان استفاده مجدد شود
کمک به توسعه معماری کلی قسمت پشتی برنامه
ایمن سازی برنامه از حملات سایبری
توسعهدهندگان فرانتاند قسمت جلویی وبسایتها و برنامهها، رابطی را که کاربران مشاهده میکنند، کلیک میکنند و غیره میسازند و نگهداری میکنند. این شامل متن، تصاویر، ویدیوها، منوها، ناوبری و سایر اجزای رابط است. توسعه دهندگان Back-end در قسمت پشتی وب سایت ها و برنامه ها کار می کنند. آنها جنبه های نامرئی مانند سرورها، پایگاه های داده و منطقی که برنامه را کنترل می کنند، پیکربندی و نگهداری می کنند.
مانند چگونگی نیاز بخش پشتی و جلویی نرم افزار به یکدیگر برای تشکیل یک برنامه کامل، توسعه دهندگان بک اند و توسعه دهندگان فرانت اند برای تولید یک محصول با یکدیگر همکاری می کنند.
با این حال، این نقشها در زمینههای تخصصی خود متفاوت هستند: در حالی که توسعهدهندگان فرانتاند عمدتاً در HTML، CSS، جاوا اسکریپت و چارچوبهای مرتبط با آنها کد میکنند، توسعهدهندگان بکاند در زبانهای برنامهنویسی سمت سرور مانند پایتون، جاوا و PHP تخصص دارند.
در نهایت، هدف تیم فرانتاند این است که رابط را جذاب و قابل دسترس کند، در حالی که تیم بکاند زیرساختهای نامرئی برنامه را برای پشتیبانی از قسمت جلویی ایجاد میکند.
مهارت های توسعه دهنده Back-end
ما در مورد آنچه که توسعه دهندگان Back-end انجام می دهند صحبت کرده ایم، اما آنها برای انجام آن چه چیزی باید بدانند؟ در این بخش، مهارتهای کلیدی را که اگر میخواهید یک توسعهدهنده بکاند استخدام کنید یا خودتان به آن تبدیل شوید، باید بدانید را پوشش میدهیم.
زبانهای برنامه نویسی
توسعه دهندگان Back-end از زبان های برنامه نویسی مختلفی در کار خود برای مدیریت سرورها، پایگاه داده ها و منطق برنامه ها استفاده می کنند. در اینجا موارد کلیدی وجود دارد:
پایتون
پایتون یک زبان برنامه نویسی همه منظوره است که معمولاً برای ساختن پشتیبان برنامه های نرم افزاری و برنامه های کاربردی وب استفاده می شود. یک زبان منعطف، کاربر پسند و قدرتمند، زبانی است که همه برنامه نویسان بک اند حداقل باید با آن آشنا شوند.
یادگیری و پیاده سازی پایتون آسان است و سطح بالایی دارد، به این معنی که کد توسط انسان قابل خواندن است و معمولاً باید کد کمتری نسبت به زبان های سطح پایین بنویسید. سینتکس آن نسبتاً ساده و منطقی برای خواندن است، و کتابخانه های زیادی وجود دارد که می توانید از آنها برای تطبیق پایتون با تقریباً هر نیازی، از جمله توابع سمت سرور و تجسم داده ها، استفاده کنید.
تا حد زیادی به لطف منحنی یادگیری پایین آن، پایتون یکی از پرکاربردترین زبان های برنامه نویسی در بین توسعه دهندگان امروزی است – در حال حاضر با جاوا در رتبه دوم قرار دارد. بنابراین، جاوا چیست؟
جاوا
جاوا یکی دیگر از زبان های برنامه نویسی همه منظوره است که اغلب در قسمت پشتی توسعه برنامه استفاده می شود. این به گونه ای ساخته شده است که در طیف وسیعی از محیط ها قابل استقرار باشد و به اندازه کافی انعطاف پذیر است تا از پروژه های نرم افزاری پیچیده و با کارایی بالا پشتیبانی کند.
یادگیری جاوا سخت تر از پایتون است و اغلب در پیاده سازی کد سنگین تر است. حتی با این حال، زمانی که با آن راحت باشید قدرتمند و شهودی است و یکی دیگر از مواردی است که باید برای توسعه دهندگان بکاند بدانند.
اگر زبان های برنامه نویسی وب را مطالعه کرده باشید، ممکن است نام زبان دیگری به نام جاوا اسکریپت را شنیده باشید. با وجود نامهای مشابه، جاوا و جاوا اسکریپت زبانهای مختلفی هستند که کارهای متفاوتی انجام میدهند: جاوا یک زبان برنامهنویسی بکاند است، در حالی که جاوا اسکریپت یک زبان برنامهنویسی جلویی است که بیشتر توسط توسعهدهندگان فرانتاند نوشته میشود.
PHP
PHP (پیش پردازشگر فرامتن) یک زبان برنامه نویسی سمت سرور است که اغلب برای ایجاد وب سایت های پویا استفاده می شود – آنهایی که محتوا را بر اساس کاربر یا مرورگر درخواست کننده صفحه تغییر می دهند. PHP به صورت پویا صفحات وب را بر روی سرور از محتوای پایگاه داده می سازد. این فرآیند برخلاف صفحات وب استاتیک است که به طور کامل روی سرورها ذخیره می شوند و برای همه بازدیدکنندگان یکسان به نظر می رسند.
PHP میلیونها وبسایت را در سراسر جهان تقویت میکند و یکی دیگر از زبانهای سمت سرور نسبتاً آسان برای مبتدیان است. همچنین یکی از زبان های اصلی وردپرس، محبوب ترین سیستم مدیریت محتوای امروزی است.
زبان های دیگر
البته، بسیاری از زبان های برنامه نویسی دیگر نیز وجود دارند که توسعه دهندگان بک اند ممکن است ترجیح دهند. سایر گزینه های محبوب عبارتند از Ruby، یک زبان سطح بالا برای ساخت سریع برنامه های وب و تلفن همراه، C، یک زبان سطح پایین تر (و همچنین محبوب ترین زبان در حال حاضر)، و .NET، چارچوبی که توسط مایکروسافت برای ساخت وب سایت ها و وب سایت ها توسعه یافته است. برنامه های وب
علاوه بر این، یک توسعه دهنده Back-end ممکن است از زبان های برنامه نویسی به طور خاص برای مدیریت پایگاه داده استفاده کند، مانند SQL (که در ادامه به آن خواهیم پرداخت).
زبان های فرانت اند
یک لحظه صبر کنید، آیا ما در مورد توسعه back-end صحبت نمی کنیم؟ چرا وقت خود را با صحبت در مورد کدهای فرانت اند تلف می کنیم؟
در حالی که درست است که توسعهدهندگان بکاند بیشتر وقت خود را با زبانهای برنامهنویسی سمت سرور صرف میکنند، درک اصول زبانهای فرانتاند هنگام کار بر روی پروژههای مبتنی بر وب ارزشمند خواهد بود. این سه زبان فرانت اند HTML، CSS و جاوا اسکریپت هستند.
HTML (زبان نشانه گذاری HyperText) مهمترین زبان در توسعه front-end است و احتمالاً حداقل در مورد آن شنیده اید. HTML محتوا (متن، پیوندها و رسانه ها) و ساختار صفحات وب را تنظیم می کند. تقریباً تمام صفحات وب با HTML ساخته شده اند و فایل های آنها با پسوند html خاتمه می یابد.
CSS (Cascading Style Sheets) یک ظاهر طراحی مانند فونت ها و رنگ ها را به HTML اضافه می کند. به عبارت دیگر، یک صفحه وب را زیبا جلوه می دهد. بدون CSS، اینترنت یک مکان بسیار خسته کننده خواهد بود – هر صفحه به سادگی دیوارهایی از متن و تصاویر بدون استایل خواهد بود. CSS همچنین به پاسخگو بودن محتوای صفحه برای دستگاه ها و اندازه های مختلف صفحه کمک می کند.
جاوا اسکریپت (اغلب به JS کوتاه می شود) عملکرد صفحه وب را فراتر از سبک و محتوای اولیه مدیریت می کند. در حالی که CSS و HTML از نظر فنی زبان های برنامه نویسی نیستند، جاوا اسکریپت این گونه است و این فرصت های زیادی را به شما می دهد. توسعه دهندگان از آن برای کنترل انیمیشن ها، به روز رسانی پویا محتوای صفحه و به طور کلی اجرای اسکریپت ها در صفحات وب استفاده می کنند (بدون نیاز به مراجعه به انتهای صفحه).
درک این سه زبان همکاری با توسعهدهندگان و طراحان فرانتاند را بسیار آسانتر میکند و ممکن است به تشخیص مشکلاتی که هم منابع فرانتاند و هم منابع بکاند را شامل میشوند، کمک کند. آنها همچنین به طور کلی مهارت های شغلی مفیدی هستند، به خصوص اگر می خواهید طراحی یا توسعه کامل را دنبال کنید.
مدیریت پایگاه داده
همه وب سایت ها داده ها – از جمله محتوای سایت و هر گونه اطلاعات جمع آوری شده از بازدیدکنندگان – را در پایگاه داده ذخیره می کنند. بخش بزرگی از کار توسعهدهنده بکاند، هل دادن دادهها به داخل یا بیرون کشیدن دادهها از پایگاه داده برنامه است، بنابراین دانش فناوریهای پایگاه داده مدرن ضروری است.
پایگاه های داده را می توان به دو دسته تقسیم کرد: پایگاه های داده رابطه ای و پایگاه های داده غیر رابطه ای. پایگاههای داده رابطهای نقاط داده مرتبط را ذخیره میکنند – به عنوان مثال، نام مشتری و ایمیل، شماره تلفن، شناسه حساب و خریدهای مرتبط با آنها. پایگاه داده های رابطه ای به صورت جداول با نقاط داده مرتبط در یک ردیف ساخته شده اند.
SQL (زبان پرس و جوی ساختاریافته، که اغلب مانند “عاقبت” تلفظ می شود) زبانی برای پرس و جو، اصلاح و مدیریت پایگاه داده های رابطه ای است. MySQL، یک سیستم مدیریت پایگاه داده ساخته شده بر روی SQL، به طور گسترده در برنامه های کاربردی وب استفاده می شود و باید در کمربند ابزار شما باشد. پایگاه های داده ای که از SQL استفاده می کنند پایگاه داده SQL نامیده می شوند.
در مقابل، پایگاههای داده غیررابطهای (که پایگاههای داده NoSQL نیز نامیده میشوند) نقاط داده را بر اساس روابط خود ذخیره نمیکنند (اگرچه دادهها همچنان میتوانند مرتبط باشند). به جای جداول، پایگاه های داده غیر رابطه ای داده های خود را با زبان نشانه گذاری توسعه پذیر (XML) و/یا نشانه گذاری شی جاوا اسکریپت (JSON) ساختار می دهند. دانش برنامه های پایگاه داده NoSQL مانند Redis و MongoDB می تواند علاوه بر SQL در قسمت پشتی نیز مفید باشد.
نرم افزار سمت سرور
توسعه دهندگان Back-end برنامه هایی را برای اجرا روی سرورها می نویسند. شما باید با نرم افزارهای سرور رایج مانند Apache، Nginx، Microsoft IIS و سیستم عامل لینوکس آشنا باشید. همچنین باید بدانید که سرورهای وب چگونه درخواستها را برای صفحات وب دریافت و پردازش میکنند، چگونه دادهها را ذخیره میکنند، و حداقل اصول اولیه نحوه عملکرد بالا و ایمن نگه داشتن آنها را درک کنید.
API ها
رابط برنامه نویسی برنامه (API) مجموعه ای از تعاریف و پروتکل هایی است که به دو برنامه اجازه می دهد تا با یکدیگر تعامل داشته باشند و داده ها را به اشتراک بگذارند. یک API با فیلد کردن درخواستها از برنامههای خارجی کار میکند، سپس با انجام درخواست پاسخ میدهد. این درخواست ممکن است برای بازیابی یا تغییر مجموعه ای از داده ها در پایگاه داده API باشد.
امروزه APIها فناوری پشت ادغام های مبتنی بر وب هستند. مشابه نحوه تعامل شما با یک برنامه نرم افزاری از طریق رابط کاربری آن، یک نرم افزار می تواند با دیگری از طریق یک رابط برنامه نویسی کاربردی تعامل داشته باشد. هر زمان که میبینید از فناوری یک برنامه وب روی دیگری استفاده میشود، APIها این کار را انجام میدهند. برنامه هایی مانند فیس بوک، یوتیوب، گوگل یا اسپاتیفای بسیاری از داده های خود را از طریق APIهای عمومی خود در دسترس قرار می دهند.
امروزه انواع مختلفی از API ها استفاده می شود که محبوب ترین آنها REST API است. برای کار در توسعه وب، باید به درک درستی از API های REST (و احتمالاً API های SOAP نیز) مجهز باشید. این فناوری نه تنها برنامههای دارای مالکیت جداگانه، بلکه خدمات داخلی داخلی را نیز به هم متصل میکند.
ساختار داده ها و الگوریتم ها
برخلاف سایر مهارتها، ساختارهای داده و الگوریتمها مفهومیتر از فناوریهای بتن هستند، اما با این وجود بسیار مهم هستند. یک توسعه دهنده توانمند باطن نیازمند درک کاملی از این حوزه ها است تا در نقش خود موثر باشد، به همین دلیل است که آنها در برنامه های درسی دانشگاهی علوم کامپیوتر گنجانده شده اند.
ساختار داده راهی برای سازماندهی داده ها در رایانه است. ساختارهای داده رایج شامل آرایهها، فهرستهای پیوندی، درختها و آزمایشها، جداول هش، پشتهها، پشتهها و صفها هستند – توسعهدهندگان بکاند با اکثر یا همه اینها در شغل خود مواجه خواهند شد.
به طور کلی، یک الگوریتم یک فرآیند تعریف شده برای حل یک مسئله است. توسعه دهندگان Back-end الگوریتم های اساسی نرم افزارهای کامپیوتری را می شناسند: الگوریتم های مرتب سازی، الگوریتم های جستجو، تجزیه رشته ها، تطبیق، هش کردن و الگوریتم های بازگشتی همه در مقطعی مورد استفاده قرار خواهند گرفت.
سایر مهارت های مهم
فراتر از مهارت های اصلی ذکر شده در بالا، چیزهای بیشتری برای کاوش در حوزه توسعه back-end وجود دارد. در اینجا چند مهارت اضافی وجود دارد که به عنوان یک برنامه نویس بک اند به خوبی به شما کمک می کند:
- تجربه با یک سیستم کنترل نسخه – احتمالاً Git، و همچنین آشنایی با GitHub
- دانش یا تجربه مدیریت سرور
- مهارت های ارتباطی و توانایی توضیح موضوعات پیچیده فنی برای افراد غیر متخصص
- مهارتهای مدیریت زمان، زیرا احتمالاً چندین مسئولیت را به طور همزمان متعادل میکنید
- آشنایی با رایانش ابری و میزبانی
- درک بهترین شیوه های دسترسی به وب
- آشنایی با بهترین شیوه های امنیت سایبری
توسعه دهندگان Back-end: افراد پشت سایت
ما اغلب توسعه دهندگان و طراحان فرانت اند را به خاطر کارهای بصری عالی و تجربیات کاربر تحسین می کنیم. این ستایش البته به خوبی به دست آمده است. اما، بیاد داشته باشیم که بدون توسعهدهندگان بکاند که در پشت صحنه کار میکنند، این سایتها وجود نخواهند داشت.
اگر شما فردی هستید که میخواهید از زیرساختهای وب پشتیبانی کنید در حالی که با چالشهای انتزاعی و پیچیده مقابله میکنید و از انتخاب چندین زبان برنامهنویسی جدید در طول مسیر نمیترسید، ممکن است برای یک توسعهدهنده بکاند مناسب باشید. مطمئن باشید این شغل به این زودی ها از بین نمی رود.
[…] کسب اطلاعات بیشتر: توسعه دهنده Back-end کیست؟ […]