حرفه توسعه دهنده Back-End هر روز در حال عمومیتر شدن است و شرکتهای مختلف به دنبال جذب توسعهدهندگان حرفهای در این زمینه هستند، تا تیمی کاملتر داشته باشند. واقعیت این است که متخصصان Back-End دانش و توانایی جامع و کاملی را در زمینههایی دارند که باعث میشود بتوانند در پروژههای توسعه وب پتانسیل خوبی از خودشان نشان دهند.
قبل از اینکه به قدمهایی که یک توسعهدهنده Back-End باید بردارد نگاه کنیم، بیایید به صورت ساده با این دسته از توسعهدهندگان آشنا شویم. در یک کلام ساده، Back-End قسمت مخفی اپلیکیشن است و وظیفه فعال کردن تمام المانهای داخلی یک اپلیکیشن را دارد. اگر قرار باشد که توسعهدهندگان Front-End روی این مسئله کار کنند که یک اپلیکیشن «چه ظاهری دارد؟» یک توسعهدهنده Back-End روی این مسئله که یک اپلیکیشن «چگونه کار میکند؟» تمرکز میکند.
توسعهدهنده Back-End کسی است که با قسمت مدیریت وب اپلیکیشن ارتباط برقرار میکند: محتوای داخلی یک سیستم و تکنولوژیهای مربوط به سرور؛ مانند: بانک اطلاعاتی، معماری و منطق برنامه و... . اگر قصد دارید که به یک توسعهدهنده Back-End تبدیل شوید چند مرحله ساده وجود دارد که باعث میشود سفر بهتری را در ادامه داشته باشید.
در این مطلب ما پنج جنبه از توسعه Server-Side را در نظر گرفتهایم: سرورها، بانکهای اطلاعاتی، شبکهها، صفها و فریمورکها. اینها مواردی هستند که به عنوان یک توسعهدهنده Server-Side باید بدانید.
سرورها و بانکهای اطلاعاتی
قلب مقوله توسعه Server-Side خود سرورها است، سخت افزاری که شامل قطعات اصلی یک سرور –حافظه، پردازنده و...- میشود و از طریق ارتباط اینترنت با یک دستگاه یا کامپیوتر محلی ارتباط برقرار میکند. بنابراین هر چیزی که در محیط مرورگر درخواست میکنید –به عنوان مثال بارگذاری یک صفحه وب- شامل دادههایی میشود که در یک سرور ذخیره شده و آن به سمت مرورگر کاربر فرستاده میشود. هرچه اپلیکیشن شما بزرگتر باشد طبیعتا حجم دادهای بیشتری برای نقل و انتقال خواهید داشت. همچنین هر چه قدر حجم دادهها بیشتر باشد، احتمال وجود کندی و مشکلاتی از این دست بیشتر میشود.
بانکهای اطلاعاتی را در یک تعریف عامیانه میتوان اینگونه تعریف کرد که قالبهایی از فایل هستند که داده در آنها ذخیره میشود. دو نوع مختلف از بانکهای اطلاعاتی وجود دارد. یکی از آنها بانکهای اطلاعاتی رابطهای و دیگر مورد بانکهای اطلاعاتی غیر رابطهای است. هر کدام از این موارد مزایا و معایب خودشان را دارند که میتوانید در این مطلب آنها را مطالعه کنید. برخی از بانکهای اطلاعاتی که میتوانید آنها را یاد بگیرید شامل MySQL، MongoDB، SQL Server و... میشود.
سرورهای ایستا و پویا
سرورهای ایستا هارد درایورهای سختافزاری هستند که دادههای مربوط به اپلیکیشنها اعم از CSS، HTML، تصاویر و... در آنها ذخیره میشوند. سرورهای پویا در حقیقت لایه دیگری در بین سرور ایستا و مرورگر هستند. آنها معمولا به نام سرورهای اپلیکیشن شناخته میشوند. وظیفه اصلی این بخش این است که براساس صفحاتی که کاربر درخواست میدهد اطلاعات را پردازش و قالبدهی کند. در نهایت این قسمت اطلاعات را به صورت قالب درست به مرورگر ارسال میکند. این کار باعث میشود که ذخیره دادهها بسیار سادهتر شود و پردازش بارگذاری دادهها سریعتر شود.
برای مثال، ویکیپدیا سرورهایی با حجم بسیار از عظیمی از دادهها را در اختیار دارد. اما ویکیپدیا تمام این اطلاعات را به صورت HTML ذخیره نکرده است، بلکه ردیفهای دادهای را در اختیار دارد که هرگاه کاربر اطلاعاتی را درخواست کند آنها را در قالب HTML به مرورگر کاربر تحویل دهد. این موضوع باعث میشود پروسه تحویل اطلاعات به کاربران بسیار سریعتر اتفاق بیافتد و فضای بیشتری در سرور ایستا ذخیره شود.
آخرین مطالعات در این زمینه مربوط میشود به استفاده کردن از فضاهای ابری. این بدان معناست که وظایف مربوط به قسمت Server-Side توسط سرویسهای مبتنی بر Cloud مانند Amazon AWS و مایکروسافت آژور انجام میشود. از آنجایی که تنها کافیست سرور مورد نظرتان را برای اجرای اپلیکیشن انتخاب کنید، بنابراین کار توسعهدهندگان Back-End بسیار سادهتر شده است.
یکی دیگر از ویژگیهای بسیار مفیدی که این دسته از سرویسها به توسعهدهندگان میدهند، معماری مبتنی بر Serverless نام دارد. با استفاده از چنین ویژگی فراهم کننده سرویس ابری به صورت خودکار براساس منابعی که شما نیاز دارید فضای سروری را در اختیارتان قرار میدهد. بنابراین نیازی به تعیین کردن منابع و لزومات پروژه ندارید.
وظیفه اصلی یک توسعهدهنده Back-End در یک سیستم Serverless این خواهد بود که بهترین سرویسها و بهینهسازیهای ممکن برای استفاده از یک فضای ابری را شناسایی کند و سیستم را برای کارایی بررسی و مانیتورینگ نماید.
پروتکل ارتباطی
پروتکل به تکنولوژی گفته میشود که باعث انتقال داده بین Server و Client میشود. این پروتکل HTTP یا Hyper Text Transfer Protocol نام دارد. وقتی که در مرورگر چیزی را جستجو میکنید، در حقیقت یک درخواست همراه با URL را برای سرور ارسال کرده و سرور در مقابل آن به شما جواب لازم را میدهد.
وقتی که یک صفحه HTML در جواب شما برمیگردد، توسط مرورگر رندر میشود. درحالیکه مرورگر مشغول پردازش صفحات است، ممکن است لینکهای دیگری را نیز در صفحه مشاهده کند که برای دسترسی پیدا کردن به آنها مجبور است تا درخواستهای HTTP را ارسال کند. چه وبسایتهای پویا و چه وبسایتهای ایستا از چنین الگوی ارتباطی استفاده میکنند.
تا به اینجای کار ما به یک پروتکل تقریبا قدیمی و اولیه نگاه کردیم، این در حالیست که پروتکلهای جدیدتری نیز در دنیای ارتباطات وب به وجود آمدهاند که از آنها میتوان SSL، TLS، Ipv6 و... را نام برد.
هرکدام از این پروتکلها و لایهها را میتوان در شرایط خاص استفاده کرد و شما براساس شرایط خاص خودتان این موارد را انتخاب میکنید.
صفبندی پیام
این مورد یکی از مهمترین جنبههای ایجاد اپلیکیشنی پویا و سریع برای وب است. صفبندی پیام وضعیتی است که در آن دادههای مختلف براساس درخواستهایی که به آنها شده در زمان تحویل داده شدن به مرورگر در صف باقی میمانند. این پروسه به صورت ناهمزمان اتفاق میافتد، به این معنا که مرورگر و سرور به صورت همزمان با مسئله صفها ارتباط تعامل برقرار نمیکنند. ابزارهای مختلفی برای این زمینه وجود دارد که در بین آنها میشود به RabbitMQ، MQTT، ActiveMQ و... اشاره کرد.
زبانها و فریمورکهای Server-Side
حال به آخرین نقطه از این قسمت میرسیم. اگر شما توسعهدهندهای هستید که قصد انتخاب یک زبان منحصر به فرد را دارید، میتوانید از یک زبان که در آن فریمورکهای مختلفی وجود دارد استفاده کنید. به این صورت ساخت اپلیکیشنهای وب برای شما بسیار آسانتر اتفاق میافتد. این موضوع باعث بالا رفتن میزان بهرهوری شما نیز خواهد شد. برخی از فریمورکهای محبوب در زمینه Server-Side عبارت است از NodeJS, Django, Laravel, Spring و... .
حال که با موضوع توسعه Server-Side آشنا شدید و قسمتهای مختلف آن را درک کردید، به سمت یادگیری هر کدام از این موارد بروید. به این صورت میتوانید توسعهدهنده حرفهای و توانایی باشید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید