فرانت اند (Front-End) چیست؟

اگر تازه به مسیر برنامه نویسی وارد شدید، ممکن است اصطلاح Front-End Development (توسعه فرانت اند) و Front-End Developer (توسعه دهنده فرانت اند) را شنیده باشید و بخواهید بدانید که این اصطلاح رایج و پر کاربرد به چه معناست. تا انتهای این مقاله همراه من باشید تا به شما کمک کنم به درک کاملی از مفهوم فرانت اند دست یابید.تصویر1. افراد اصلی تیم قدتمند فرانت انددر این مقاله توضیح خواهم داد که مفهوم توسعه فرانت اند چیست، به چه مهارت هایی برای تبدیل شدن به یک توسعه دهنده Front-End نیاز دارید، رزومه قوی مخصوص خود را بسازید و چگونه شغل مد نظر خود را پیدا کنید.توسعه فرانت اند (Front-End Development) به چه معنا است؟فرانت (Front) در عبارت فرانت اند (Front-End)به معنی پیش یا جلو است. در نتیجه، هنگامی که از تخصص فرانت اند Front-End صحبت میکنیم، اشاره به بخش‌های جلو و مقابل دارد. یعنی تمام آن بخش‌هایی که کاربر با آن‌ها تعامل دارد و ارتباط برقرار می‌کند مانند لوگو، نوار جستجو، دکمه‌ها، پیوندها، انیمیشن‌ها و موارد دیگر که در وبسایت ها و اپلیکیشن ها مشاهده می کنید. از این رو به آن، Client Side نیز گفته می شود. تمام آن چه که کدنویس فرانت اند طراحی می‌کند و کاربر و مخاطبان آن را می‌بینند، توسط یک توسعه‌دهنده وب ظاهری یا Front-End Developer ایجاد می شوند. این وظیفه توسعه دهندگان فرانت اند است که چشم انداز و مفهوم طراحی را از مشتری دریافت کرده و آن را از طریق کد پیاده سازی کنند. تمام چیزهای قابل مشاهده برای کاربر که در صفحه وجود دارند،طرح کلی و نحوه تعامل کاربر با صفحه توسط یک توسعه دهنده جلویی (فرانت) ایجاد شده است. توسعه دهندگان فرانت اند مسئول ظاهر و احساس وب سایت هستند.از مهم ترین وظایف توسعه دهندگان فرانت اند، همچنین باید به اطمینان از رسپانسیو بودن وب سایت در تمام دستگاه ها (تلفن، تبلت و صفحه نمایش رایانه) اشاره کرد. این بدان معنا است که صفحات باید در همه ابعاد و تمامی دستگاه ها خوب و درست به نظر برسند و تمام امکانات برای کاربر قابل دست یابی و دسترسی باشد.تصویر2. رسپانسیوسازی و رسپانسیو وب دیزاینحالا باید ببینیم برای تبدیل شدن به یک توسعه دهنده فرانت اند به چه مهارت هایی نیاز دارید؟برای تبدیل شدن به یک فرانت اند کار حرفه ای و بی نظیر لازم است که به HTML ، CSS و زبان برنامه نویسی جاوا اسکریپت تسلط داشته باشید. هم چنین، در کنار دانش عمیقی ازاین سه مفهوم بایستی بر روی چارچوب ها، کتابخانه ها و سایر ابزارهای مفید مرتبط با آنها نیز تمرکز کنید. این ابزارها و موارد مهم دیگر شامل مهارت های تست گرفتن و اشکال زدایی، کنترل نسخه و مهارت حل مسئله می باشد برای کسب اطلاعات بیشتر راجع به مهارت های مورد نیاز میتوانید از این مرجع بسیار کارامد و مفید راهنمایی بگیرید.زبان نشانه گذاری HTMLزبان نشانه گذاری HTML مخفف Hyper Text Markup Language است. HTML ستون فقرات هر فرآیند توسعه صفحه وب و اپلیکیشن ما است که بدون آن هیچ صفحه وب وجود نخواهد داشت. هم چنین، به کمک آن ساختار اصلی صفحاتمان را تعیین میکنیم. فرامتن (Hyper Text)به این معنی است که متن دارای پیوندهایی است که به آن هایپرلینک گفته می شود و در متن جاسازی شده است. هنگامی که کاربر روی کلمه یا عبارتی که دارای هایپرلینک است کلیک می کند، صفحه وب دیگری را ایجاد می کند. زبان نشانه گذاری نشان می دهد که می توان متن را به تصاویر، جداول، پیوندها و دیگر ایتم های نمایش ها تبدیل کرد. این کد HTML است که یک چارچوب کلی از ظاهر سایت را برای کاربران ارائه می دهد. HTML محتوا و ساختار اصلی صفحه مانند دکمه ها، پیوندها، سرفصل ها، پاراگراف ها، لیست ها و .. را نمایش می دهد. HTML توسط تیم برنرز لی توسعه داده شد و آخرین نسخه HTML به نام HTML5 در 28 اکتبر 2014 توسط توصیه W3C منتشر شد. این نسخه شامل روش های جدید و کارآمدی برای مدیریت عناصری مانند فایل های ویدئویی و صوتی است.به یاد داشته باشید که HTML یک زبان نشانه گذاری است، نه یک زبان برنامه نویسی! پس اگر از شما بخواهند زبان های برنامه نویسی را نام ببرید یادتان باشد که HTMLو CSS جزو این موارد نیستند. حال این سوال برای شما ایجاد شده است که چرا HTML زبان نشانه گذاری نام گذاری شده است؟ زیرا به واسطه کدهای خاص و نام گذاری هایی که ما در html داریم نوع، تعداد و محل تگ هایمان را تعیین میکنیم و عملا هر تگ، جا و عملکرد مخصوص و منحصر به فرد خود را دارا می باشدآیا برای یادگیریHTML به استاد، بوت کمپ و یا کلاس خاصی احتیاج دارم؟برای یادگیری این زبان نشانه گذاری، اینترنت و سایت های معتبر و قوی بهترین مربی شما هستند، چند سایت پیشنهادی قدرتمند و رایگان برای یادگیری HTML به شرح زیر هستند:w3schoolscodecademydash.generalassemblyndateamtreehouseweb.devlearn-htmlhtmlcourseraedxudemycodeavengerskhanacademyfreecodecamphtml5rocksdeveloper.mozillaبرگه های سبک آبشاری (CSS)کلمه CSS مخفف عبارت Cascading Style Sheets (برگه های سبک آبشاری) است. CSS مسئول نمایش دهی و ظاهر مناسب صفحه وب شما از جمله رنگ ها، طرح بندی ها و انیمیشن ها است تا کاربر پسند باشد. هم چنین اینکه CSS به سایت شما اجازه می دهد ظاهر منحصر به فرد خود را داشته باشد. CSS این کار را با حفظ شیوه نامه هایی که در بالای سایر قوانین سبک قرار می گیرند انجام می دهد و بر اساس ورودی های دیگر مانند اندازه صفحه نمایش و وضوح دستگاه فعال می شوند. CSS چگونگی قرارگیری المان های صفحات وب را تعیین می کند و به کمک آن سند به فرم و شکل قابل استفاده برای مخاطب تبدیل می شود.تصویر3. تفاوت HTML و CSSتصویر 3 به خوبی تفاوت میان HTML و CSS را نشان می دهد. HTML همانطور که گفته شد به معنی اسکلت اصلی سند و صفحات و بدنه ی ما می باشد و محل قرارگیری المان های ما را تعیین می کند. CSS از سوی دیگر به این اسکلت ساخته شده رنگ و ظاهری دلنشین و کاربر پسند می بخشد.طراحی واکنشگرا یا طراحی ریسپانسیو در ایجاد وب سایت هایی که در تمام دستگاه ها خوب و درست به نظر می رسند ضروری است و به کمک CSS صورت می پذیرد تا مطمئن شویم که قابلیت دسترسی عملی به وبسایت شما برای تمامی افراد فراهم می باشد. شما نمی خواهید وب سایت هایی را ایجاد کنید که کسانی که از فناوری های کمکی مانند صفحه خوان استفاده می کنند نتوانند از آن بهره ببرند. علاوه بر این موضوع، در صورت عدم تطابق سایت شما با کلیه دستگاه ها(رسپانسیو نبودن)، امکان اینکه توسط موتورهای جستجوگر مانند گوگل امتیاز منفی کسب کرده و امار بازدید سایت شما کاهش یابد افزایش می یابد، همواره به یاد داشته باشید که یک برنامه نویس فرانت اند خوب نه تنها باید در مباحث برنامه نویسی دقت لازم را به عمل اورد، بلکه بایستی این کدنویسی همسو با افزایش بازدهی و engagement سایت شما یعنی در نظر گرفتن سئو باشد. از این رو فهم دانش سئو در کنار کدنویسی به شما کمک میکند که کدهای منطقی تر، تمیزتر و درست تری داشته باشید و مخاطبان بیشتری را به سایت خود جذب نمایید. چارچوب‌های CSS (Framework)، کتابخانه‌ها (Libraries )و پیش‌پردازنده‌ها (Preprocessors)پس از یادگیری اصول اولیه CSS، می توانید کار با چارچوب ها و کتابخانه های مختلف را شروع کنید. این ابزارها به عنوان راهی برای کمک به سرعت بخشیدن به روند توسعه ایجاد شدند.چارچوب هایی مانند Bootstrap و Tailwind CSS به شما امکان می دهند کاتالوگ کلاس ها را به صفحه وب خود اضافه کنید. در نتیجه، طراحی‌های حرفه‌ای تر و سازگار با موبایل را خواهید داشت.باتوجه به نیازمندی ها و فناوری های مورد نیاز در کار خود می توانید از هرکدام از چارچوب ها استفاده کنید استفاده کنید. سپس می‌توانید بر رایج‌ ترین مهارت‌های مورد تقاضا تمرکز کنید. فریم ورک های کاربردی CSS: بوت استرپ (Bootstrap)تیلویند (Tailwind CSS)بولما (Bulma)متریالایز (Materialize)رابط کاربری معنایی (Semantic UI)پیش پردازنده های CSS: سَس Sassلِس Less این پیش پردازنده ها به شما امکان می دهند منطق و عملکرد را به CSS خود اضافه کنید.و کار با CSS شما را تمیز، سریا و آسان می کنند.حال این سوال ایجاد میشود که آیا می توانم خودم خودآموز CSS را هم یاد بگیرم؟جواب سوال شما "بله" است و بهترین سایت های یادگیری CSS در زیر برای شما آورده شده اند: w3schoolsweb.devcodecademycss-tricksfrontendmastersedxudemyilovecodingdeveloper.mozillaجاوا اسکریپتجاوا اسکریپت (Javascript) یا به اختصار js یک زبان سطح بالای تفسیری و قدرتمند برنامه نویسی است که به کاربران اجازه می دهد تا درون و بین صفحه وب تعامل و ارتباط برقرار کنند و به اصطلاح سایت را داینامیک میسازد. هم چنین، پیاده‌سازی ویژگی‌های سخت و پیچیده در صفحات به کمک js میسر می شود. از Js برای ایجاد حرکات پویا مانند نمایش به‌روز رسانی‌ های محتوا، گرافیک‌های متحرک دوبعدی و سه بعدی، نقشه‌های تعاملی و… در سایت استفاده می شود. به عنوان مثال، هنگامی که بر روی دکمه Menu کلیک شود، یک لیست کشویی از گزینه ها برای کاربر باز می شود. و با هربار کلیک بر روی این دکمه، این لیست باز و بسته می شود. همین موضوع باعث ایجاد سایت هایی تعامل پذیر با رابطه ای غنی و حرفه ای با کاربر می شود.تصویر4. ساخت منو با استفاده از htmlو css و پویا کردن آن به کمک js با در نظر گرفتن رسپانسیو سازی در کلیه دستگاه هاکتابخانه ها و چارچوب های جاوا اسکریپتچارچوب ها و کتابخانه ها به شما این امکان را می دهند که در زمان صرفه جویی کنید و کارهای بیشتری را با کدهای کمتر انجام دهید. جاوا اسکریپت دارای فریم ورک ها و کتابخانه های متنوع و پرکاربردی می باشد که شامل موارد زیر می باشند: Angular Vue.js React این فریم ورک ها و کتابخانه ها پیاده سازی و نوشتن جاوااسکریپت را ساده تر کرده و موجب سهولت در نوشتار کدهای سمت فرانت شده و پیاده سازی صفحات را برای ما راحت تر میکند و امکانات بی نظیری برای ما قرار می دهد.بهترین سایت های یادگیری js به صورت رایگان در زیر آورده شده اند: freeCodeCamp.orgJavaScript 30CodeMentorEducative.io – Learn HTML, CSS, and JavaScript from ScratchLearn JavaScript - Full Course for Beginners from freeCodeCampJavaScript.infoCodecademySololearnCourseraMediumJavaScript Weekly تصویر5. مقایسه عملکرد html، css و js در توسعه فرانت اند مهارت های تست گرفتن و اشکال زدایی (Testing and debugging skills)یکی از ویژگی های بسیار مهم یک برنامه نویس فرانت اند این است که همانطور که در حال توسعه برنامه خود هست، خطاهایی که در کد شما وجود دارند را پیدا کرده و اصلاح نماید. اشکال زدایی، به عمل شناسایی خطاها ("اشکالات") و رفع آنها اطلاق می شود. تست کردن یکی دیگر از مهارت های مهم برای یادگیری است. نوشتن تست برای کد شما راهی است برای اطمینان از اینکه کد شما همان کاری را که قرار است انجام دهد، به درستی انجام می دهد.برای کسب دانش بیشتر و عمیق تر در زمینه تست و دیباگ کردن می توانید از این مرجع کامل استفاده نمایید.کنترل نسخه (Git)کنترل نسخه از مهارت های مهم و راهی برای ردیابی و مدیریت تغییرات کد پروژه است. Git نرم افزار محبوبی است که برای ردیابی کد شما استفاده می شود.اگر چیزهای زیادی را در کد خود به هم ریخته اید، می توانید به جای بازنویسی دستی همه چیز، از Git برای بازگشت به نسخه قبلی کد خود استفاده کنید.کنترل نسخه همچنین به شما این امکان را می دهد که با سایر افراد در یک تیم همکاری کنید و از مکان های مختلف تغییراتی را در پایگاه کد یکسان ایجاد کنید.از این رو لازم است شروع به یادگیری Git کنید و از سرویسی مانند GitHub برای میزبانی پروژه های شخصی خود استفاده کنید.حل مسئلهشاید بتوان گفت که مهمترین مهارت برای هر توسعه دهنده این است که بداند چگونه مشکل و مسائل را حل کند. شرکت ها و مشتریان به دنبال ارائه راه حل های شما هستند. مهم است که یاد بگیرید چگونه یک مشکل را در ابتدا پیدا کرده و سپس آن را به قطعات کوچکتر قابل مدیریت تقسیم کنید و مشکل را در این برنامه های وب عیب یابی و حل کنید.چگونه می توانید به عنوان یک توسعه دهنده فرانت اند شغل پیدا کنید؟هنگامی که جنبه های فنی توسعه front end را یاد گرفتید، باید بر روی کنار هم قرار دادن موارد درخواست شغل خود تمرکز کنید. منابع باورنکردنی زیادی وجود دارد که می تواند به شما کمک کند تا یاد بگیرید که چگونه یک شغل توسعه دهنده پیدا کنید. به یاد داشته باشید که پس از یادگیری این مهارت ها، مهارت رزومه نویسی درست را یاد گرفته که بتوانید به درستی و خوبی مهارت های خود را به افرادی که علاقه مند به کار با شما هستند انتقال دهید. منابع زیر می توانند شما را در ساخت یک رزومه خوب یاری کنند :devedopingHow to Get Your First Dev Job – Insights from Reviewing Career Switchers&amp;#x27; RésumésHow to Write a Developer Resume that Recruiters Will ReadHow to write an awesome junior developer résumé in a few simple stepsامیدوارم این مقاله برای شما مفید بوده باشد و بتوانید از مراجع بسیار خوب که برای ورود به این دنیای عظیم مورد نیاز است، بهترین استفاده را برده و روزی مقاله شما را در این سایت و سایت های دیگر به عنوان یک فرانت انت کار قدرتمند بخوانیم.