تا به حال، شاید به این سوال برخورده باشید که توسعه وب به چه معناست و چه تفاوتهایی بین توسعهدهنده Front End و Back End وجود دارد، همچنین هر کدام از آنها با چه وظایفی سر و کار دارند؟ تصور کنید که شما در حال باز کردن یک صفحه جدید در مرورگر کامپیوتر خود هستید، URL یک وبسایت را وارد میکنید و Enter را فشار میدهید، سپس به سرعت وبسایت مورد نظر بارگذاری میشود. در حالی که با یک طرحبندی بسیار تمیز روبرو میشوید که صفحات آن دارای ساختاری منظم هستند. افرادی که با ایجاد این تجربه برای شما مشغول به کارند، به عنوان توسعهدهنده وب یا Web Developer شناخته میشوند.
تا ژانویه 2020، تعداد وبسایتها بیش از یک و نیم میلیارد بود و این آمار همچنان در حال افزایش است. افرادی که مسئولیت نوشتن کد، ساختاردهی، تجزیه و تحلیل و حفاظت از این وبسایتها را برعهده دارند، به عنوان توسعهدهنده وب یا Web Developer شناخته میشوند.
اگر به عنوان یک علاقهمند به حوزه توسعه وب، میخواهید بفهمید کدام نوع کار برای شما مناسب است یا کدام آموزشها را دنبال کنید، باید چه راهنماییهایی را دنبال کنید؟ اگر قبلاً در لیست مشاغل سایتهای کاریابی یا دورههای آنلاین جستجو کردهاید، احتمالاً میدانید که توسعه وب به سه زیرمجموعه اصلی تقسیم میشود: Front End، Back End و Full Stack. اگر تا کنون با HTML، JavaScript یا حتی Python آشنا شده اما دربارهی اینکه کدام یک را باید یاد بگیرید، این متن ممکن است به شما در تصمیمگیری کمک کند.
توسعه وب: شناخت توسعهدهنده Front End
بخشی از یک وبسایت که باعث تعامل کاربر میشود، به عنوان Front End شناخته میشود. هر چیزی که در حین مرور اینترنت مشاهده میکنید، از فونتها و رنگها گرفته تا منوهای قابل بازشدن و اسلایدرها، از ترکیب کدهای HTML، CSS و JavaScript ساخته شده است که کنترل آنها به عهده مرورگر وب کامپیوتر شما است.
مهارتها و ابزارها
مسئولیت این بخش از کدهای یک وبسایت که تعامل کاربری را فراهم میکند، بر عهده توسعهدهنده Front End است. این فرد مسئول است که معماری تجربه کاربری را ایجاد و بهبود بخشد. برای انجام این وظیفه، توسعهدهنده Front End نیاز به مسلط بودن به سه زبان برنامهنویسی دارد: HTML، CSS و JavaScript.
علاوه بر این، برای بهبود راحتی کار با این زبانها، توسعهدهنده Front End باید با چارچوبهایی مانند Bootstrap، Foundation، Backbone، AngularJS و EmberJS آشنا باشد. این چارچوبها باعث میشوند تا محتوای وبسایت به شیوه جذاب و مناسبی در هر دستگاهی نمایش داده شود.
توسعهدهنده Front End بهتر است که با کتابخانههایی همچون jQuery و LESS نیز آشنا باشد. این کتابخانهها کدها را به دستههای مفید گروهبندی میکنند و در نتیجه، در زمان توسعهدهنده صرفهجویی میکنند.
بسیاری از نیازهای شغلی توسعهدهنده Front End شامل تجربه در کار با Ajax نیز میشود. این تکنیک پرکاربرد در استفاده از JavaScript است که به صفحات این امکان را میدهد تا با بارگیری دادههای سرور در پسزمینه، به شیوه پویا بارگیری شوند.
توسعه وب: توسعه دهنده Back End چه کارهایی انجام میدهد؟
برای حضور یک بخش Front End فعّال در یک وبسایت، نیاز به چه عناصری داریم؟ کجا اطلاعات ذخیره میشوند؟ واژههای Back (پشت) و end (پایانه) به همین مفهوم اشاره دارند. Back End یک وبسایت شامل یک سرور، یک اپلیکیشن، و یک پایگاه داده است. توسعه دهنده Back End مسئولیت ساخت و نگهداری فناوریهایی را دارد که این اجزا را قادر به همکاری و تعامل با یکدیگر میسازد تا حیات یک وبسایت را امکانپذیر کند.
مهارتها و ابزارها
برای برقراری ارتباط بین سرور، اپلیکیشن، و پایگاه داده، توسعهدهندگان Back End از زبانهای برنامهنویسی سرورساید مانند PHP، Ruby، Python، Java و Net استفاده میکنند. از ابزارهایی مانند MySQL، Oracle و SQL Server برای جستجو، ذخیره و تغییر دادهها استفاده میکنند و این دادهها را از طریق کدهای Front End به کاربران ارائه میدهند. تجربه در زیرساختهای PHP مانند Zend، Symfony و CakePHP یا تجربه کار با نرمافزارهای کنترل نسخه مانند SVN، CVS یا Git و تجربه کار با سیستم عامل Linux نیز در دستهی مهارتهای توسعهدهندگان Back End جای دارد. این توسعهدهندگان با استفاده از این ابزارها، کدهای پاک و بهینهشده را برای ساخت و استقرار اپلیکیشنهای وب ایجاد میکنند.
تعامل با مالکین کسب و کار
قبل از نوشتن کدها، توسعهدهندگان وب باید با مالکان کسب و کار تعامل کرده و نیازهای آنها را درک کنند تا بتوانند این نیازها را به ملزومات فنی ترجمه کرده و بهترین راه حلهای معماری را برای اطلاعات آنها پیشنهاد دهند. جِی پی توتو، یک توسعهدهنده Back End مجرب میافزاید: “من همیشه توسعه Back End را ترجیح میدادم، چون عاشق دستکاری دادهها هستم. APIهای عمومی و خصوصی جدید، امروزه به بخش ضروری مبادله داده بین ابزارهای قابل جابهجایی (مثل موبایل)، وبسایتها و دیگر سیستمهای متصل بدل شدهاند. من زمانی از کارم احساس رضایت میکنم که ببینم عموم مردم، API من را مفید تشخیص دادهاند.”
توسعه وب: کارآگاهی از توسعهدهنده Full Stack
بسیاری اوقات، خط مشخصی بین توسعه Front End و Back End وجود ندارد. مارتانگا میافزاید: “توسعهدهندگان Front End، اغلب به یادگیری مهارتهای Back End نیاز دارند و برعکس، به خصوص در حوزه اقتصاد فعلی که نیاز به بازاریابی و منابع داده داریم، توسعهدهندگان باید به نظم کاری قدرتمندی داشته باشند و اغلب باید همهکاره باشند.”
توسعهدهندگان Full Stack، آچارفرانسههای دنیای توسعه وب و طراحی سایت هستند.
اصطلاح Full Stack ابتدا در تیم مهندسی فیسبوک مورد استفاده قرار گرفت. این مفهوم به این معناست که یک توسعهدهنده Full Stack توانایی فعالیت در تمام زمینههای تکنولوژی را داراست و قادر است یک بسته کامل از خدمات تکنولوژی را برای شما ارائه دهد. فدریکو اولفو، یک توسعهدهنده Full Stack، اظهار داشته است: “زندگی حرفهای در دو حوزه سرورساید و کلاینت ساید، فرصتهای فراوانی را در اختیار شما میگذارد و البته، توسعه Full Stack، با چالشهای خود همراه است. به عنوان مثال، شما ممکن است در آشپزی یا شیرینیپزی ماهر باشید، اما مسلط شدن به هر دو زمینه نیازمند زمان و تجربه است. البته، وقتی از آشپزی یا شیرینیپزی صحبت میکنم، منظورم از دنبال کردن دستورالعملهای آماده نیست، بلکه اشاره به استفاده از مواد غذایی برای آمادهسازی غذاهای لذیذ است.”
مهارتها و ابزارها
در زمینه برنامهنویسی وب سرورساید، توسعهدهندگان Full Stack، مشابه توسعهدهندگان Back End هستند با این تفاوت که میتوانند به شیوهای سلیس در زبان Front End نیز فعالیت کنند و ظاهر محتوایی که توسط کاربر تجربه میشود، را کنترل کنند. آنها همچون آچارفرانسه عمل میکنند. برای بیان پیچیدگی عملکرد یک توسعهدهنده Full Stack، میتوانید با استفاده از نمودارها، مهارتهای حال حاضر یک توسعهدهنده Full Stack را با وضعیت چند سال اخیر مقایسه نمایید.