برنامه نویسی فرانت اند: راهنمای جامع توسعه فرانت اند

- توسعه فرانت اند (Front-End Development) چیست؟
- تفاوت توسعه فرانت اند و توسعه بک اند
- تعریف نقش توسعه دهندگان فرانت اند
- توسعه دهندگان فرانت اند برای پلتفرم وب
- مهارتهای لازم برای برنامه نویسی فرانت اند
- زبانهای برنامه نویسی برای توسعه فرانت اند
- فریم ورک های توسعه فرانت اند
- مزایای کسب و کار توسعه فرانت اند
- عناوین شغلی
- توسعه دهنده/مهندس فرانت اند (قبلاً بهعنوان توسعه دهنده سمت کلاینت شناخته میشد)
- توسعه دهنده/مهندس اپلیکیشن/جاوا اسکریپت
- توسعه دهنده/مهندس عملکرد فرانت اند
- توسعه دهنده HTML/CSS
- طراح وب فرانت اند
- توسعه دهنده/مهندس رابط کاربری (UI)
- توسعه دهنده فرانت اند موبایل/تبلت
- کارشناس SEO فرانت اند
- کارشناس دسترسی پذیری فرانت اند
- مهندس تست/تضمین کیفیت فرانت اند (QA)
- حوزههای همپوشانی
- چالشهای شغلی
چکیده مقاله: اگر بخواهیم فرانت اند (Front-end) یا با اسم های دیگر سمت مشتری یا سمت کاربر را توضیح دهیم بهتر است بدانید که توسعه دهنده فرانت اند (Front-End Developer) به کمک زبان های برنامه نوییس فرانت اند به ایجاد و طراحی رابط کاربری (UI) و تجربه کاربری (UX) وب سایت ها و برنامه های وب تخصص دارد. مسئولیت اصلی یک توسعه دهنده فرانت اند این است که اطمینان حاصل کند جنبههای بصری و تعاملی یک وبسایت یا اپلیکیشن، کاربرپسند، زیبا و از نظر عملکردی کارآمد باشد.
توسعه دهندگان فرانت اند با فناوریها، ابزارها و زبانهای مختلفی کار میکنند، از جمله:
- HTML یا (HyperText Markup Language): زبان نشانهگذاری استاندارد که برای ایجاد ساختار و طراحی صفحات وب استفاده می شود.
- CSS یا (Cascading Style Sheets): زبانی برای تعیین نحوه ارائه، قالببندی و ظاهر صفحات وب، مانند رنگها، فونتها و طراحی.
- JavaScript: زبان برنامه نویسی که به توسعه دهندگان این امکان را میدهد تا تعامل، انیمیشنها و عناصر پویا دیگر را به وبسایتها و برنامههای وب اضافه کنند.
آن ها همچنین ممکن است از کتابخانهها و فریمورکهایی مانند React، Angular یا Vue.js استفاده کنند تا کار خود را تسهیل کرده و رابطهای کاربری پیچیدهتر و تعاملی تری ایجاد کنند. علاوه بر این، آنها معمولاً با توسعه دهندگان بک اند همکاری میکنند، که مسئول منطق سمت سرور و مدیریت دادهها هستند، تا اطمینان حاصل کنند که بین اجزای فرانت اند (سمت کاربر) و بک اند (سمت سرور) یک سایت یا وب اپ یکپارچگی بینقصی وجود دارد.
توسعه فرانت اند (Front-End Development) چیست؟
توسعه فرانت اند عمدتاً بر تجربه کاربری تمرکز دارد. به عنوان توسعه دهندگان فرانت اند، با استفاده از تکنیکهای مربوط به کدنویسی و طراحی، عناصری از یک برنامه را میسازید که بهطور مستقیم توسط کاربران نهایی قابل دسترسی است. هدف این است که کل رابط کاربری به گونهای طراحی شود که زیبا، آسان برای استفاده، سریع و ایمن باشد و تعامل و مشارکت کاربر را افزایش دهد.
برای ایجاد یک رابط کاربری جذاب، توسعه برنامه های فرانت اند معمولاً بر روی عناصر طراحی خاصی مانند رنگها و سبکهای متن، تصاویر، نمودارها و جداول، دکمهها و رنگهای کلی تمرکز میکند. این عناصر نقش مهمی در افزایش جذابیت بصری و کاربرپسندی برنامه دارند.
توسعه فرانت اند شامل عناصر تعاملی مختلفی مانند اسلایدرها، فرمهای پاپآپ و نقشههای تعاملی سفارشی است. منوهای ناوبری که کاربران را در سراسر برنامه راهنمایی میکنند، جزء اساسی یک برنامه فرانت اند هستند و تجربه کلی و تعامل کاربران با وبسایت یا برنامه را بهبود میبخشند. ایجاد منوهای ناوبری بصری و کاربرپسند، مهارت کلیدی برای توسعه دهندگان فرانت اند است.
توسعه دهندگان فرانت اند به مجموعهای از مهارتها نیاز دارند تا بهطور مؤثر رابطهای کاربری را ایجاد کنند. این شامل تسلط بر زبان های کدنویسی مانند HTML، CSS و JavaScript است، همچنین درک قوی از پیش پردازنده های CSS مانند Sass و Less نیز اهمیت دارد. در زمینه تحصیلات، توسعهدهندگان فرانت اند معمولاً مدرک در علوم کامپیوتر یا زمینههای مرتبط را دنبال میکنند، اگرچه این امر همیشه یک الزام نیست. درک بنیادین و تسلط بر زبانهای کدنویسی مانند HTML، CSS و JavaScript و بهطور فزایندهای jQuery نیز ضروری است.
علاوه بر این، درک تکنیک های پردازش CSS سمت سرور و کاربردهای آن در توسعه وب نیز مفید است. از نظر CSS، توسعه دهندگان فرانت اند باید در استایل دهی متن ماهر باشند، شامل انتخاب رنگها و سبکهای مناسب برای اطمینان از خوانایی و افزایش تعامل کاربر. همچنین، باید در TypeScript، یک ابرمجموعه از JavaScript که قابلیتهای نوع دهی استاتیک را به زبان اضافه میکند، مهارت داشته باشند.
با توجه به جدیدترین روندهای طراحی و فناوریهای مرتبط با فرانت، میتوانید طراحیها و الگوهای تعاملی پیچیدهتری ایجاد کنید. در عین حال، این پیچیدگی بیشتر، توسعه وب فرانت اند را به یک زمینه تخصصی تبدیل کرده است که نیاز به تخصص عمیق دارد.
برنامه های فرانت اند، که به عنوان “سمت مشتری” یک برنامه شناخته میشوند، آنچه کاربران میبینند و با آن تعامل میکنند، هستند. این برنامهها با بک اند متفاوت هستند که مانند ماشین آلات پنهانی در پسزمینه عمل میکند. در این زمینه، APIها به عنوان مترجمان عمل میکنند و ارتباط بینقص بین فرانت اند بصری و بک اند پیچیده را تضمین می کنند.
روند اصلی در توسعه فرانت اند در سالهای اخیر، رشد برنامهها برای دستگاههای موبایل و هوشمند است، زیرا کاربران از تعداد فزایندهای از دستگاهها با اندازههای مختلف صفحه و گزینه های تعامل استفاده می کنند. به همین دلیل، توسعه دهندگان فرانت اند باید اطمینان حاصل کنند که برنامه آنها تجربه کاربری متناسب و با کیفیت بالایی را برای تمام دستگاهها و سناریوهای استفاده ارائه میدهد. این یک چالش بزرگ است.
HTML, CSS و JavaScript
یک توسعهدهنده فرانت اند وبسایتها و برنامهها را با استفاده از فناوریهای وب (یعنی HTML، CSS، DOM و JavaScript) طراحی و توسعه میدهد. این فناوریها بر روی پلتفرم وب باز اجرا میشوند یا به عنوان ورودی برای محیطهای غیر وب (یعنی React Native) به کار میروند.
معمولاً، افراد با یادگیری توسعه HTML، CSS و JavaScript وارد این حوزه میشوند که بهطور معمول در یک مرورگر وب اجرا میشوند، اما میتوانند همچنین در یک مرورگر بدون رابط گرافیکی یا به عنوان ورودی برای یک محیط اجرایی بومی نیز اجرا شوند. چهار سناریوی اجرایی زیر توضیح داده شده است.
مرورگرهای وب (متداولترین)
مرورگر وب نرم افزاری است که برای بازیابی، نمایش و مرور اطلاعات در وب جهانی استفاده میشود. معمولاً مرورگرها بر روی رایانههای رومیزی یا لپتاپ، تبلتها یا تلفنها اجرا میشوند، اما بهتازگی میتوان مرورگرها را بر روی تقریباً هر چیزی پیدا کرد (مثلاً بر روی یخچال، در خودروها و غیره).
متداول ترین مرورگرهای وب به ترتیب بیشترین استفاده عبارتند از:
- Chrome
- Safari
- Microsoft Edge
- Firefox
مرورگرهای بدون رابط گرافیکی
مرورگرهای بدون رابط گرافیکی، مرورگرهای وب هستند که بدون رابط کاربری گرافیکی اجرا میشوند و میتوانند از طریق یک رابط خط فرمان بهطور برنامه نویسی کنترل شوند. این نوع مرورگرها بهمنظور اتوماسیون وبسایتها (برای مثال، تست عملکرد، جمعآوری داده، تست واحد و غیره) استفاده می شوند. به مرورگرهای بدون رابط گرافیکی به عنوان مرورگری فکر کنید که میتوانید از خط فرمان اجرا کنید و صفحات وب را بازیابی و مرور کنید.
متداول ترین مرورگرهای بدون رابط گرافیکی عبارتند از:
- Headless Chromium
- Zombie
- slimerjs
وب ویوها
وب ویوها توسط یک سیستم عامل بومی، در یک برنامه بومی، برای اجرای صفحات وب استفاده میشوند. به وب ویوها مانند یک iframe یا یک تب واحد از یک مرورگر وب فکر کنید که در یک برنامه بومی در حال اجرا بر روی یک دستگاه (مثلاً iOS، Android، Windows) جاسازی شده است.
متداول ترین راهحلها برای توسعه وب ویو عبارتند از:
- Electron (معمولاً برای برنامههای دسکتاپ)
- Tauri.js
- Cordova (معمولاً برای برنامههای بومی تلفن/تبلت)
- NW.js (معمولاً برای برنامههای دسکتاپ)
توسعه بومی از فناوریهای وب
در نهایت، آنچه که از توسعه مرورگر وب آموخته میشود میتواند توسط توسعه دهندگان فرانت اند برای نوشتن کد برای محیطهایی که از موتور مرورگر بهره نمیبرند، مورد استفاده قرار گیرد. بهتازگی، محیطهای توسعهای بهوجود آمدهاند که از فناوری های وب (مانند CSS و JavaScript) بدون موتورهای وب برای ایجاد برنامههای بومی استفاده میکنند.
تفاوت توسعه فرانت اند و توسعه بک اند
سختافزار، برنامههای کامپیوتری و وبسایتها شامل بسیاری از اجزا هستند: کد، پایگاههای داده و رابطهای کاربری (UI). اجزایی که با کاربران تعامل دارند در فرانت اند قرار دارند؛ در حالی که اجزایی که فناوری را اداره میکنند در بک اند، که به آن لایه دسترسی به داده نیز گفته میشود، واقع شدهاند. بک اند منابعی را برای پشتیبانی از فرانت اند فراهم میکند.
در حالی که توسعه فرانت اند بر آنچه در رابط کاربری اتفاق میافتد متمرکز است، توسعه بک اند به آنچه در پسزمینه میگذرد مربوط میشود. اغلب تصور میشود که توسعه فرانت اند از نظر فنی آسانتر از پیچیدگیهای توسعه بک اند است، که نیازمند تسلط بر زبانهای برنامهنویسی، ساختارهای داده و الگوریتمها (DSA) و مهارتهای مدیریت داده است.
در اینجا تفاوتهای کلیدی بین توسعه نرمافزار در فرانت اند و بک اند آورده شده است:
- توسعه بک اند: این فرایند شامل ساخت اجزایی برای اجرای برنامه در پسزمینه است. نمونههایی از این اجزا شامل ذخیرهسازی دادهها، زیرساخت، یکپارچهسازی با سیستمهای خارجی و کدی است که در یک یا چند زبان برنامه نویسی نوشته شده است. کاربران نمیتوانند به بک اند دسترسی داشته باشند.
- توسعه فرانت اند: این فرایند شامل ساخت اجزایی است که با کاربران تعامل دارند. نمونههایی از این اجزا شامل رابط کاربری، دکمهها، دادههای واردشده توسط کاربر، وب سایتها و ویژگیهای تجربه کاربری (UX) است. هدف فرانت اند برآورده کردن نیازهای کاربران و ارائه تجربه کاربری مثبت است.
یک مفهوم نوظهور در توسعه فرانت اند استفاده از میکروفرانت اند است. این رویکرد شامل تقسیم توسعه برنامههای فرانت اند به بخشهای کوچکتر و قابل مدیریتتر برای بهبود مقیاس پذیری و نگهداری است. علاوه بر این، توسعه دهندگان فرانت اند نیز باید با ابزارهای تست و تجزیه و تحلیل کد آشنا باشند تا از کیفیت و عملکرد برنامه اطمینان حاصل کنند.
به عنوان بخشی از توسعه شغلی، توسعه دهندگان فرانت اند آیندهدار باید بر روی ساخت یک پرتفولیوی آنلاین برای نمایش مهارتها و پروژههای خود تمرکز کنند. علاوه بر این، پرورش مهارتهای نرم مانند ارتباط و کار تیمی به اندازه تسلط فنی اهمیت دارد.
تعریف نقش توسعه دهندگان فرانت اند
توسعه دهندگان فرانت اند، که بهطور تاریخی بهعنوان توسعه دهندگان سمت کلاینت نیز شناخته میشوند، مسئول تولید کدی هستند که از سرور وب به کلاینت (دستگاه کاربر) ارسال می شود تا یک رابط کاربری ایجاد کند. وقتی یک وب سایت را در یک مرورگر وب بارگذاری میکنید، کدی از سرور وب به دستگاه درخواست دهنده ارسال میشود. این کد رابط کاربری را که در مرورگر وب قابل مشاهده است، ایجاد میکند و عمدتاً شامل HTML، CSS و JavaScript است.
بهطور معمول، یک فرد به حوزه توسعه فرانت اند وارد میشود و یاد میگیرد که چگونه سایتهای سادهای با استفاده از HTML و CSS بسازد. HTML مانند ساختار یک خانه است، در حالی که CSS به عنوان تزئینات نهایی که به ظاهر خانه زیبایی می بخشد، در نظر گرفته می شود.
زمانی که وبسایت (خانه) نیاز به تعامل دارد، توسعه دهندگان فرانت اند JavaScript را یاد میگیرند تا تعاملات کاربر را خودکار کنند و به رویدادها، مانند کلیکها یا بارگذاری صفحه، پاسخ دهند. JavaScript به همراه مدل شیء سند (DOM) به توسعه دهندگان این امکان را میدهد که ویژگی های پویا و تعاملی را به HTML و CSS اضافه کنند.
با پیشرفت توسعه دهندگان فرانت اند در حرفه خود، درک عمیق تری از صفحات وب و شیوه های توسعه نرم افزار با استفاده از JavaScript پیدا می کنند.
توسعه دهندگان فرانت اند برای پلتفرم وب
توسعه دهندگان فرانت اند عمدتاً برای کار میکنند و این پلتفرم بیشتر به محیطهای اجرایی مرورگر وب مربوط میشود. بهعنوان مثال، وقتی مرورگر وبی مانند Google Chrome را باز میکنید و به وبسایت google.com میروید، آنچه مشاهده میکنید کار یک توسعه دهنده فرانت اند است که وبسایت را با استفاده از HTML، CSS و JavaScript توسعه داده است.
محیط اجرایی پلتفرم وب فقط به مرورگرهای وب محدود نمی شود. همچنین میتوان از WebViews و تکنیکهای Progressive Web App (PWA) برای ایجاد برنامههای بومی شبیه به برنامه های نصب شده بر روی یک سیستم عامل استفاده کرد. به این معنا که یک توسعه دهنده فرانت اند میتواند از دانش خود درباره تکنولوژیهای وب و محیط اجرایی وب مرتبط با مرورگرها برای ایجاد برنامههای بومی برای سیستم عاملهای محبوبی مانند Windows، Mac OS X، iOS، Android و Linux استفاده کند.
بهطور کلی، میتوان WebView یا PWA را مانند یک برگه واحد از یک مرورگر وب تصور کرد که بدون نوار آدرس یا دکمههای رفت و برگشت، در یک برنامه بومی تعبیه شده است. این سناریو با مرورگر مشابه است و WebView/PWA از HTML، CSS و JavaScript استفاده میکند، اما به جای تسهیل دسترسی اینترنتی به صفحات وب، هدف این است که محیط اجرایی وب برای دسترسی به APIهای بومی سیستم عامل استفاده شود.
مهارتهای لازم برای برنامه نویسی فرانت اند
یک توسعه دهنده فرانت اند حرفهای حداقل باید دانش کافی از مرورگرها و اینترنت داشته باشد و در استفاده از تکنولوژیهای وب زیر مهارت داشته باشد:
- زبان نشانهگذاری HTML
- CSS
- URLها (Uniform Resource Locators)
- پروتکل انتقال ابرمتن (HTTP)
- زبان برنامهنویسی جاوا اسکریپت (ECMAScript 262)
- شیء نشانهگذاری جاوا اسکریپت (JSON)
- مدل شیء سند (DOM)
- APIهای وب (Web APIs)
- دستو العملهای دسترسی محتوا (WCAG) و برنامههای غنی دسترسی (ARIA)
علاوه بر مهارت در تکنولوژیهای فوق، یک توسعه دهنده فرانت اند ممکن است در یکی یا چند زمینه زیر نیز مهارت داشته باشد:
- سیستمهای مدیریت محتوا (CMS)
- Node.js
- آزمایش متقابل مرورگر
- آزمایش متقابل پلتفرم
- آزمایش واحد
- آزمایش دسترسی / WAI-ARIA
- بهینه سازی موتور جستجو (SEO)
- طراحی تعامل یا رابط کاربری
- تجربه کاربری
- سیستمهای تجارت الکترونیک
- سیستمهای پورتال
- طراحی اولیه (Wireframing)
- طرحبندی CSS / گریدها
- دستکاری DOM (مثلاً jQuery)
- عملکرد وب موبایل
- آزمایش بار
- آزمایش عملکرد
- بهبود تدریجی / تخریب ملایم
- کنترل نسخه (مثلاً GIT)
- MVC / MVVM / MV*
- برنامهنویسی تابعی
- فرمتهای داده (مثلاً JSON، XML)
- APIهای داده (مثلاً APIهای RESTful)
- تعبیه فونتهای وب
- گرافیکهای برداری مقیاسپذیر (SVG)
- عبارات منظم
- میکرو دادهها / میکرو فرمتها
- ابزارهای مدیریت وظایف، ابزارهای ساخت و ابزارهای خودکارسازی فرآیند
- طراحی وب واکنشگرا
- برنامه نویسی شیءگرا
- معماری برنامهها
- ماژولها
- مدیران وابستگی
- مدیران بسته
- انیمیشن JavaScript
- انیمیشن CSS
- نمودارها / گرافها
- کیتهای ابزار UI
- آزمایش کیفیت کد
- آزمایش پوشش کد
- تحلیل پیچیدگی کد
- آزمایش یکپارچهسازی
- خط فرمان / CLI
- استراتژیهای الگو
- موتورهای الگو
- برنامههای تک صفحهای (SPA)
- امنیت وب / مرورگر
- ابزارهای توسعهدهنده مرورگر
در سال های اخیر، تعریف مهارتهای یک توسعه دهنده فرانت اند پیچیدهتر شده است، زیرا یک شکاف قابل توجه در حرفه توسعه دهنده فرانت اند به وجود آمده است. این شکاف بین توسعه دهندگانی است که بر برنامه نویسی و تبدیل شدن به یک توسعه دهنده نرمافزار متعارف با تمرکز بر JavaScript متمرکز هستند و آنهایی که بیشتر بر روی UI، HTML، CSS و دانش محدودی از JavaScript تمرکز دارند. این شکاف، بهویژه به دلیل این واقعیت است که JavaScript به پشتسر رفته و بهتدریج توسعه دهندگان سمت سرور نیز به نوشتن JavaScript برای توسعه دهیهای سمت سرور با ابزارهایی مانند Node.js و MongoDB پرداختهاند. در نهایت، این مهندسان به حوزه فرانت اند نفوذ کردهاند.
خبر خوب این است که این سناریو باعث یک رنسانس در توسعه فرانت اند و JavaScript شده است. تقریباً همه چیز بهتر شده است: ابزارها، فریمورکها، مدیران بسته، کتابخانهها، CSS و JavaScript. اما بهویژه برای کسانی که قبلاً بر زبان برنامه نویسی JavaScript تسلط داشتند، این پیشرفتهای چشمگیری را به ارمغان آورده است.
خبر بد این است که این رنسانس همچنین مهارتهای مورد نیاز برای انجام توسعه فرانت اند را رقیق و پیچیده کرده و حرفه را به سمت یک میدان مهندسی متمرکز کرده است که غالباً نیاز به آموزش سنتی علوم کامپیوتر و مهارتهای توسعه نرمافزار بیشتر از تجربه کاربری دارد. متأسفانه، برای مدتی، بهدست آوردن شغل بهعنوان توسعه دهنده فرانت اند ممکن است به میزان آگاهی شما از نظریههای علوم کامپیوتر، توسعه نرمافزار یا جزئیات خاص از مشخصات ECMAScript بستگی داشته باشد.
بهعلاوه، در سالهای اخیر، روندی در حال وقوع است که وبسایتها و وببرنامهها با استفاده از معماری کلاینت چاق یا سنگین (مثلاً برنامههای تک صفحهای یا SPA) ساخته میشوند. به این معنا که، آنچه که قبلاً عمدتاً در سرور انجام میشد، اکنون در کلاینت در زمان اجرا انجام میشود. بهطور خلاصه، منطق برنامه که وبسایت یا وببرنامه را اجرا میکند، امروز معمولاً در کلاینت به جای سرور اجرا میشود. زمانی که این معماری در حال استفاده است، دادههایی که وبسایت یا وببرنامه را به حرکت درمیآورد، در زمان اجرا توسط کلاینت با استفاده از API دادهها درخواست میشود (یعنی یک رابط که تنها دادهها را بازمیگرداند، معمولاً در قالب JSON). این بدان معناست که برای حرفه توسعه دهنده فرانت اند، آنچه که قبلاً به عنوان قابلیتهای سمت سرور در نظر گرفته میشد، اکنون به قابلیتهای لازم برای انجام توسعه فرانت اند تبدیل شده است (مانند توسعه نرم افزار، توسعه وب برنامه، فرآیندهای ساخت نرمافزار، مدیریت وضعیت و عملکرد برنامه و غیره).
به دلیل شکاف ذکر شده و حرکت به سمت برنامههای سنگین در کلاینت، طیف گستردهای از مهارتها و دانشها باید برای آن دسته از افرادی که بهدنبال پیوستن به این حرفه هستند، آموخته شود. در حال حاضر، داشتن مهارت در HTML، CSS و JavaScript بهتنهایی برای یک توسعه دهنده فرانت اند کافی نیست. آنها همچنین باید در سایر زمینههای برنامه نویسی، طراحی و توسعه وب، تجزیه و تحلیل داده، تجربه کاربری، بهینهسازی، امنیت و … مهارت داشته باشند.
زبانهای برنامه نویسی برای توسعه فرانت اند
در زیر متداولترین زبانهای برنامه نویسی فرانت اند آورده شده است:
HTML
زبان برنامه نویسی HTML که ساختار و معنی محتوای وب را تعریف میکند، یک عنصر اساسی برای توسعه وب فرانت اند است. از طریق HTML، مرورگرها متن را نمایش میدهند یا عناصر را بارگذاری میکنند و صفحات وب را برای کاربران رندر میکنند که شامل پیوندها و لینکهایی به صفحات وب دیگر هستند.
نکته حرفهای: از Cloudinary برای میزبانی تصاویر خود استفاده کنید. هنگام ساخت وب سایت ها، تصاویر یکی از داراییهایی هستند که فضای زیادی را اشغال میکنند و منجر به افزایش هزینههای میزبانی میشوند. اگر می خواهید در هزینهها صرفه جویی کنید، از Cloudinary استفاده کنید که به شما امکان میدهد تصاویر خود را بارگذاری کرده و با تغییرات آنی، اندازه، فرمت و غیره را تنظیم کنید.
CSS
CSS زبان استانداردی است که مشخص میکند محتوای HTML چگونه نمایش داده شود: فونتها، رنگهای زمینه و پیشزمینه و غیره. با CSS، میتوانید طراحی و اجزای آن را برای دستگاههای مختلف مانند دسکتاپ، تبلت و گوشیهای هوشمند کنترل کنید. نمونههایی از این اجزا شامل سرصفحه، بدنه، پاورقی، محتوا، جزئیات و بخشها است.
JavaScript
جاوا اسکریپت (JS) قابلیت های وبسایت ها را فراتر از HTML و CSS گسترش میدهد. از طریق JS:
- صفحات وب میتوانند بهطور پویا خود را تازهسازی کرده و به اقدامات کاربر بدون بارگذاری مجدد صفحه یا تغییرات دیگر پاسخ دهند.
- میتوانید اجزای UI متحرک مانند پاپ آپ ها، اسلایدرهای تصویر و منوهای ناوبری گسترده را مدل سازی کنید.
فریم ورک های توسعه فرانت اند
فریم ورک های فرانت اند به شما کد و اجزای آماده سازی شده ارائه میدهند، مانند توابع استاندارد پیش نویس شده که بصورت کتابخانه بسته بندی شدهاند، بدون نیاز به ساختن قابلیتها و اجزای مشترک از صفر.
این ابزارها معمولاً شامل عناصر کشیدن و رها کردن هستند که به توسعهدهندگان اجازه میدهند بهطور مؤثر طرحبندیها و برنامههای جذابی را با ویژگیهای داخلی مختلف بسازند.
Angular
Angular، یک فریمورک جاوا اسکریپت محبوب و متنباز که ابتدا توسط گوگل ایجاد شده است، به شما این امکان را میدهد که نتایج بسیار پویا را از طریق سینتکس HTML ارائه دهید. Angular رویکرد مدولار کارآمدی را اتخاذ کرده و از معماری MVC پیروی میکند که ساختار وب سایت را به سه بخش تقسیم میکند: مدل، نما و کنترلگر (MVC). بهویژه، Angular کد تمیزتری را از طریق TypeScript تسهیل کرده و از الگوی طراحی تزریق وابستگی بهره میبرد.
React
React، که در سال 2011 توسط متا معرفی شد و اکنون توسط یک جامعه بزرگ پشتیبانی میشود، یک فریمورک جاوا اسکریپت متن باز و اعلامی است که رویکرد مبتنی بر مؤلفه آن امکان استفاده مجدد از کد را فراهم میکند. React با استفاده از مدل شیء سند مجازی (VDOM)، که یک نمای سبکوزن جاوا اسکریپت از DOM است، بروزرسانی های مؤثرتری از نماها را تسهیل میکند و عملکرد را بهبود میبخشد. شما میتوانید از React برای توسعه برنامههای یکصفحهای (SPAs) استفاده کنید.
jQuery
jQuery یک کتابخانه جاوا اسکریپت متنباز است که بهطور گستردهای استفاده شده و توسط بسیاری از افزونههای ایجاد شده توسط کاربران پشتیبانی میشود و توسعه برنامههای وب را سادهتر میکند. به عنوان مثال، jQuery خواص CSS را با گنجاندن قابلیتهای جاوا اسکریپت و اعمال اثراتی مانند محو شدن (fade-in و fade-out) به عناصر وبسایت ویرایش میکند. با jQuery، شما میتوانید فرآیندهای تغییر DOM HTML، مدیریت رویدادها و جاوا اسکریپت و XML ناهمزمان (Ajax) را نیز سادهتر کنید.
Vue.js
Vue.js یک کتابخانه اصلی است که تنها بر لایه نما تمرکز دارد و امکان توسعه رابطهای وب مجزا و برنامههای یکصفحهای را فراهم میکند. شما میتوانید این کتابخانه را با سایر ابزارها و کتابخانهها برای دستیابی به خروجی دلخواه یکپارچه کنید.
Bootstrap
Bootstrap یک فریم ورک محبوب و متنباز برای توسعه وبسایتهای رسپانسیو و موبایل محور است که الگوهای مبتنی بر CSS و جاوا اسکریپت را ارائه میدهد و شامل اجزایی مانند نوارهای ناوبری، نوارهای پیشرفت، بندانگشتی و منوهای کشویی است که همه آنها را میتوانید به صفحات وب اضافه کنید.
Bootstrap تصاویر رسپانسیو را از طریق کد داخلی که بهطور خودکار آنها را بر اساس اندازه صفحه نمایش فعلی تغییر اندازه میدهد، پیادهسازی میکند. همچنین، با افزونههای jQuery در Bootstrap، میتوانید راهحلهای تعاملی برای پاپ آپهای مدال، اسلایدشوهای تصاویر و انتقالها بسازید و ارائه دهید.
Semantic UI
Semantic UI یک فریمورک توسعه مستند برای ایجاد طرح بندی های پاسخگو با HTML است که به زبان معنایی تکیه دارد تا توسعه را تسهیل کند و اجزای مختلفی برای ویژگیهای گوناگون ارائه میدهد. شما میتوانید Semantic UI را با بسیاری از برنامهها و ابزارهای شخص ثالث یکپارچه کنید.
Svelte
Svelte یک کامپایلر است که مؤلفههای اعلامی را به جاوا اسکریپت ساده و بهینه تبدیل میکند که بهطور جراحی DOM را در طول مرحله ساخت فرآیند توسعه بهروزرسانی میکند. این رویکرد با فریم ورکهای مانند Vue و React که در مرورگرهای کاربران در حین اجرای برنامهها کار میکنند، متفاوت است.
Preact
Preact یک thin VDOM abstraction را ارائه میدهد، هندلرهای واقعی رویداد را ثبت میکند، بر ویژگیهای پایدار پلتفرم بنا میکند و با سایر کتابخانه ها یکپارچه میشود. شما میتوانید Preact را مستقیماً در مرورگرها بدون نیاز به تبدیل استفاده کنید.
Preact به قدری سبک است که کد توسعهدهنده بزرگترین بخش برنامه است. در نتیجه، جاوا اسکریپت کمتری برای بارگذاری، تجزیه و اجرا وجود دارد و شما را برای سایر کارها آزاد میکند.
Ember.js
Ember.js یک فریمورک جاوا اسکریپت متنباز برای توسعه برنامههای وب بزرگ در سمت کلاینت با کد ساختاریافته و سازمان یافته بر اساس مدل MVC است. این فریم ورک از روتر به عنوان مدل و الگوی دستگیرهای برای نماها استفاده کرده و همچنین از کنترلگرها برای ویرایش دادهها در مدل بهره میبرد.
مزایای کسب و کار توسعه فرانت اند
اهمیت توسعه فرانت اند فراتر از زیباییشناسی و تجربه کاربری است. این امر پتانسیل زیادی برای تأثیرگذاری بر سودآوری کسب و کارها به روشهای مختلف دارد. در ادامه به برخی از مزایای کلیدی سرمایهگذاری در توسعه باکیفیت فرانت اند اشاره میشود.
۱. بهبود تجربه کاربری
توسعه فرانت اند نقش اساسی در بهبود تجربه کاربری ایفا میکند. وبسایتهایی که بهخوبی طراحی شده، کاربردی و بصری جذاب هستند، تمایل دارند بازدیدکنندگان بیشتری را جذب و نگهدارند. ناوبری آسان و تعامل شهودی، کاربران را به جستجوی محتوای شما ترغیب میکند و در نهایت احتمال تبدیل آنها به مشتریان را افزایش میدهد.
بهعنوان مثال، وبسایتهایی با طراحی فرانت اند ضعیف ممکن است برای کاربران موبایل مشکلاتی ایجاد کنند که میتواند به نرخ بالای خروج منجر شود. اما توسعه باکیفیت فرانت اند تضمین میکند که وبسایت بهطور خودکار خود را با صفحه نمایش دستگاه تطبیق میدهد و تجربه کاربری راحت و شهودی را ارائه میدهد. این تجربه کاربری بهبود یافته میتواند منجر به افزایش تعامل و رضایت شود که بهطور مستقیم بر موفقیت کسب و کار شما تأثیر میگذارد.
۲. کاهش هزینههای نگهداری
بهطور تاریخی، شرکتها اغلب نیاز به نگهداری نسخههای مختلف سایتهای خود برای کاربران دسکتاپ و موبایل داشتند که این امر باعث دو برابر شدن تلاشهای توسعه و نگهداری میشد. اما با تکنیکهای مدرن توسعه فرانت اند، میتوانید سایتهایی ایجاد کنید که بهطور یکپارچه در تمام دستگاهها کار میکنند. این نه تنها هزینههای اولیه توسعه را کاهش میدهد بلکه نگهداری را نیز سادهتر میکند، زیرا بهروزرسانیها تنها یک بار باید اعمال شوند.
۳. نرخ تبدیل بالاتر
توسعه باکیفیت فرانت اند همچنین میتواند به نرخ تبدیل بالاتری منجر شود. با تجربه کاربری بهبود یافته، بازدیدکنندگان احتمالاً زمان بیشتری را در سایت شما میگذرانند، که این امر احتمال خرید یا ثبتنام برای خدمات را افزایش میدهد.
علاوه بر این، یک فرانت اند خوب میتواند رتبه بندی سایت شما در موتورهای جستجو را بهبود بخشد. بهعنوان مثال، گوگل نشان داده است که وبسایتهای دارای شیوههای قوی توسعه وب را ترجیح میدهد زیرا این امر تحلیل و نمایه سازی محتوا را تسهیل میکند. رتبهبندی بهتر در موتورهای جستجو، visibility وب سایت را افزایش میدهد که میتواند منجر به افزایش ترافیک و نرخ تبدیل بالاتر شود.
۴. صفحات وب سریع تر
در عصر دیجیتال پرسرعت امروز، سرعت بسیار مهم است. کاربران انتظار دارند صفحات وب بهسرعت بارگذاری شوند و زمانهای بارگذاری کند میتواند به نرخهای خروج بالاتر منجر شود. توسعه باکیفیت فرانت اند میتواند عملکرد وبسایت شما را بهینه کند و زمانهای بارگذاری سریع را در تمام دستگاهها تضمین کند. سرعت بارگذاری بالاتر نه تنها تجربه کاربری را بهبود میبخشد، بلکه میتواند بر رتبه بندی موتور جستجو تأثیر مثبت بگذارد، زیرا سرعت بارگذاری یک عامل حیاتی در الگوریتمهای موتورهای جستجو است.
۵. حمایت از استراتژی رشد مبتنی بر محصول
سرمایه گذاری در توسعه باکیفیت فرانت اند همچنین از یک استراتژی رشد مبتنی بر محصول پشتیبانی میکند. یک سایت باکیفیت میتواند تجربه کاربری یکنواخت و باکیفیت را در تمام دستگاهها ارائه دهد و محصولات یا خدمات شما را بهطور مؤثری به نمایش بگذارد، صرفنظر از اینکه مشتریان بالقوه شما از کدام دستگاه استفاده میکنند.
در یک استراتژی رشد مبتنی بر محصول، محصول بهعنوان محرک اصلی جذب مشتری، تبدیل و گسترش عمل میکند. بنابراین، یک وب سایت با فرانت اند باکیفیت که تجربه کاربری بدون درز را ارائه میدهد، بطور قابل توجهی به موفقیت این استراتژی کمک میکند.
عناوین شغلی
همانطور که پیشتر گفته شد، طی چند سال گذشته، شکاف بزرگی در فضای توسعه دهندگان فرانت اند ایجاد شده است. این شکاف بین دو دسته توسعه دهندگان فرانت اند شکل گرفته است. در یک سمت، برنامهنویسانی هستند که تمرکز آنها بیشتر بر جاوا اسکریپت است و پیشینهای در علوم کامپیوتر و توسعه نرمافزار دارند. این افراد معمولاً HTML و CSS را بهعنوان یک انتزاع (مانند JSX و CSS in JS) در نظر میگیرند. در سمت دیگر، توسعه دهندگانی هستند که معمولاً تحصیلاتی در زمینه علوم کامپیوتر ندارند و تمرکز آنها بر HTML، CSS و جاوا اسکریپت، بهعنوان عناصر مرتبط با رابط کاربری (UI) است. این شکاف را در فضای توسعه دهندگان فرانت اند حس خواهید کرد و اصطلاح توسعه دهنده فرانت اند بدون توضیحات بیشتر درباره نوع توسعه دهنده، ممکن است بیمعنی به نظر برسد.
در ادامه فهرستی از رایجترین عناوین شغلی در حوزه توسعه دهندگان فرانت اند آمده است. (توجه داشته باشید که عناوین شغلی میتوانند مبهم و پیچیده باشند). رایجترین و عمومیترین عنوان برای یک توسعه دهنده فرانت اند، “فرانت اند دولوپر” یا “مهندس فرانت اند” است. در نظر داشته باشید هر شغلی که شامل کلماتی مانند “فرانت اند”، “سمت کلاینت”، “رابط کاربری وب”، “HTML”، “CSS” یا “جاوا اسکریپت” باشد، معمولاً به این معناست که شخص دارای دانش حرفهای از HTML، CSS، DOM و جاوا اسکریپت است.
توسعه دهنده/مهندس فرانت اند (قبلاً بهعنوان توسعه دهنده سمت کلاینت شناخته میشد)
این عنوان شغلی عمومی، توسعه دهندهای را توصیف میکند که بهطور حرفهای در زمینه HTML، CSS، DOM و جاوا اسکریپت مهارت دارد و این فناوریها را در پلتفرم وب (آدرسهای اینترنتی، HTTP، مرورگرها، Web APIs و غیره) پیادهسازی میکند.
توسعه دهنده/مهندس اپلیکیشن/جاوا اسکریپت
این عنوان شغلی به توسعه دهندهای اطلاق میشود که پیشینهای در مهندسی علوم کامپیوتر دارد و از این مهارتها برای کار با فناوریهای فرانت اند استفاده میکند. این نقش معمولاً به دانش علوم کامپیوتر و تجربه چندین ساله در توسعه نرمافزار نیاز دارد. زمانی که عبارت “توسعه دهنده اپلیکیشن جاوا اسکریپت” در عنوان شغلی ذکر شود، نشاندهنده این است که توسعه دهنده باید در زمینه جاوا اسکریپت پیشرفته مهارت داشته باشد و دارای توانمندیهای برنامهنویسی پیشرفته، توسعه نرمافزار و توسعه اپلیکیشن باشد (به این معنا که سالها تجربه در ساخت نرمافزارهای فرانت اند دارد). در اکثر موارد، اگر واژههایی مانند مهندس، جاوا اسکریپت یا فول استک در عنوان شغلی آورده شود، این نشان میدهد که توسعه دهنده باید در جاوا اسکریپت سمت سرور (مثلاً Node.js، MongoDB و غیره) نیز تجربه داشته باشد.
توسعه دهنده/مهندس عملکرد فرانت اند
این عنوان شغلی به توسعه دهنده اپلیکیشن جاوا اسکریپت یا توسعه دهنده UI اشاره دارد که تمرکز اصلی او بر روی بهینهسازی عملکرد جاوا اسکریپت و محیطهای اجرایی جاوا اسکریپت است.
توسعه دهنده HTML/CSS
عنوان شغلی برای توسعه دهندهای که بهطور تخصصی در زمینه HTML و CSS مهارت دارد و از مهارتهای جاوا اسکریپت و توسعه اپلیکیشن برخوردار نیست.
طراح وب فرانت اند
زمانی که واژه “طراح” در عنوان شغلی ذکر شود، این نشاندهنده این است که طراح علاوه بر مهارتهای فرانت اند (مانند HTML و CSS)، دارای توانمندیهای حرفهای در زمینه طراحی (طراحی بصری و طراحی تعاملی) نیز میباشد.
توسعه دهنده/مهندس رابط کاربری (UI)
زمانی که واژه “رابط کاربری” یا “UI” در عنوان شغلی ذکر شود، این نشاندهنده این است که توسعه دهنده باید علاوه بر مهارتهای توسعه دهنده فرانت اند یا مهندسی فرانت اند، مهارتهای طراحی تعاملی (Interaction Design) نیز داشته باشد.
توسعه دهنده فرانت اند موبایل/تبلت
زمانی که واژه “موبایل” یا “تبلت” در عنوان شغلی ذکر شود، این نشاندهنده این است که توسعه دهنده تجربه توسعه رابط های کاربری برای موبایل یا تبلت را دارد (چه بهصورت بومی، مانند React Native، یا روی پلتفرم وب، یعنی در مرورگر).
کارشناس SEO فرانت اند
زمانی که واژه “SEO” در عنوان شغلی ذکر شود، این نشان دهنده این است که توسعه دهنده تجربه گستردهای در طراحی فناوریهای فرانت اند با تمرکز بر بهینه سازی موتور جستجو دارد.
کارشناس دسترسی پذیری فرانت اند
زمانی که واژه “دسترسی پذیری” در عنوان شغلی ذکر شود، این نشاندهنده این است که توسعه دهنده تجربه گستردهای در طراحی فناوریهای فرانت اند مطابق با استانداردها و الزامات دسترسی پذیری دارد.
مهندس عملیات توسعه فرانت اند (DevOps)
زمانی که واژه “DevOps” در عنوان شغلی ذکر شود، این نشاندهنده این است که توسعه دهنده تجربه گستردهای در زمینه شیوههای توسعه نرمافزار در حوزه همکاری تیم توسعه، ابزارها، یکپارچه سازی، استقرار، خودکارسازی و کیفیت دارد.
مهندس تست/تضمین کیفیت فرانت اند (QA)
زمانی که واژه “تست” یا “تضمین کیفیت (QA)” در عنوان شغلی ذکر شود، این نشان دهنده این است که توسعه دهنده تجربه گستردهای در تست و مدیریت نرم افزارهایی دارد که شامل تست دستی، تست واحد، تست کاربردی/یکپارچه، تست کاربری و تست A/B میشوند.
توجه داشته باشید که هرکدام از این عناوین شغلی میتوانند با پیشوندهایی مانند “جونیور”، “میانرده”، “سینیور”، “رهبر”، “مدیر” یا “اصلی” همراه باشند.
حوزههای همپوشانی
توسعه دهندگان فرانت اند معمولاً در تیمهای توسعه وب که شامل نقشهای زیر هستند، مشغول به کار میشوند:
- مدیر پروژه / مالک محصول (مانند ذینفع، مدیر پروژه و غیره)
- طراح بصری (فونتها، رنگها، فاصلهگذاری، ایجاد حس و حال بصری و مفاهیم و تمهای بصری)
- طراح رابط کاربری/تعامل (طراحی وایرفریمها، مشخص کردن تمامی تعاملات کاربر و قابلیتهای رابط کاربری، ساختاربندی اطلاعات)
- توسعه دهنده فرانت اند (کدنویسی برای اجرای سمت کلاینت یا فرانت اند)
- توسعه دهنده بک اند (کدنویسی برای اجرای سمت سرور)
این پنج نقش ممکن است با یکدیگر همپوشانی داشته باشند. بهعنوان مثال، توسعه دهندگان فرانت اند معمولاً در زمینه طراحی رابط کاربری/تعامل و همچنین توسعه بک اند مهارت دارند. همچنین، غیرمعمول نیست که یک طراح بصری، طراحی تعاملی را نیز انجام دهد و در کدنویسی فرانت اند مشارکت کند.
یک تیم بزرگتر توسعه وب ممکن است شامل نقشهای زیر نیز باشد:
- استراتژیستهای SEO
- مهندسین عملیات توسعه دهنده (مهندسین DevOps)
- مهندسین عملکرد
- توسعه دهندگان API
- مدیران پایگاه داده (DBA)
- مهندسین تضمین کیفیت (QA) / تسترها
چالشهای شغلی
تربیت و آموزش توسعه دهندگان فرانت اند همچنان پیچیده و دشوار است، و افرادی که وارد این حرفه میشوند، معمولاً با تلاش فراوان و استفاده از منابع آموزشی خودآموز این مسیر را طی کردهاند.
- توسعه دهندگان فرانت اند باید کدهایی بنویسند که یک رابط کاربری را روی انواع گستردهای از دستگاهها و اندازههای صفحه نمایش پشتیبانی کند.
- اگرچه این مشکل به پیچیدگی گذشته نیست، توسعه دهندگان فرانت اند همچنان باید کدهایی بنویسند که در مرورگرهای مختلف (یعنی محیطهای اجرایی وب مختلف) بهدرستی اجرا شوند.
- از توسعه دهندگان فرانت اند انتظار میرود که نهتنها در طراحی رابط کاربری و طراحی تعاملی مهارت بالایی داشته باشند، بلکه در برنامهنویسی کامپیوتری، علوم کامپیوتر و مهندسی نرمافزار نیز توانمند باشند.
- توسعه دهندگان فرانت اند باید با تغییرات مداوم در فناوریها، استانداردها، فریمورکها و ابزارها همگام باشند. این پایه در حال تغییر، نهتنها بر مهارتهای فردی تأثیر میگذارد، بلکه بر سهولت تغییر شغل نیز اثرگذار است.
- توسعه دهندگان فرانت اند باید نهتنها در HTML، CSS و جاوا اسکریپت، بلکه در لهجهها و نسخههای پیچیدهتر این زبانها (مانند JSX، Markdown، SASS، Flow، Immutable.js، TypeScript، Reason و غیره) متخصص باشند.
- توسعه دهندگان فرانت اند باید با حوزههای پیچیدهای مانند رندر فونت، بهینهسازی موتور جستجو (SEO)، استانداردهای دسترسیپذیری، امنیت وب (مانند SSL، OAuth2، XSS)، بهینهسازی تصاویر، عملکرد شبکه، ایمیل HTML، عملکرد مرورگر، عملکرد جاوا اسکریپت، رندر HTML، CSS و DOM، و محیطهای اجرایی مختلف جاوا اسکریپت سروکار داشته باشند.
- توسعه دهندگان فرانت اند امروز با چالشهایی در توسعه تمامی قابلیتها روی پلتفرمی روبهرو هستند که در ابتدا برای مشاهده اسناد ثابت طراحی شده بود. برنامههای زمان واقعی، انیمیشن، بازیهای ویدیویی… وب باید تمامی اینها را پوشش دهد. و این مسئله فشار زیادی به توسعه دهندگان فرانت اند وارد میکند، زیرا وب توسط دستگاه، نرمافزار و شبکهای که کاربر تعیین میکند، مشاهده میشود. انجام تمامی این امور سخت است، وقتی کد باید برای مجموعهای پیچیده از متغیرهای تعیینشده توسط کاربر اجرا شود.
- توسعه دهندگان فرانت اند امروز در وضعیتی هستند که انتظار میرود در سطح حرفهای در طراحی رابط کاربری، معماری نرمافزار، طراحی تعاملی و برنامهنویسی سمت سرور (بک اند) نیز عمل کنند. اساساً، انتظارات غیرواقعی از توسعه دهندگان فرانت اند وجود دارد که در هر سطحی از پشته توسعه، مهارت داشته باشند و در عین حال در توسعه رابط کاربری نیز حرفهای باشند.
مدیر2025-04-19T17:38:26+04:30آوریل 19, 2025|0 Comments
چکیده مقاله: تفاوت طراح سایت و برنامه نویس فرانت اند یکی از موضوعاتی است که بسیاری از افرادی که قصد ورود به دنیای طراحی و توسعه وب را دارند، با آن مواجه می شوند. [...]
مدیر2025-04-18T23:37:01+04:30آوریل 18, 2025|0 Comments
چکیده مقاله: تفاوت طراحی سایت و طراحی گرافیک در دنیای دیجیتال امروز از اهمیت بالایی برخوردار است، چرا که هر کدام نقش متفاوتی در تجربه کاربر و ظاهر محصولات دیجیتال ایفا می کنند. طراحی [...]
مدیر2025-04-17T01:57:00+04:30آوریل 17, 2025|0 Comments
چکیده مقاله: طراحی یک وب سایت حرفه ای برای خدمات پزشکی نیازمند برنامه ریزی دقیق و شناخت نیازهای کاربران است. در پاسخ به سوال "چگونه یک سایت پزشکی طراحی کنیم؟" باید ابتدا مشخص شود [...]
مدیر2025-04-15T00:51:03+04:30آوریل 15, 2025|0 Comments
چکیده مقاله: تفاوت طراح سایت و توسعه دهنده سایت در واقع به دو نقش متفاوت در فرایند ساخت و نگهداری یک وب سایت اشاره دارد. طراح سایت بیشتر بر جنبههای ظاهری و تجربه کاربری [...]
مدیر2025-04-12T18:22:03+04:30آوریل 12, 2025|0 Comments
چکیده مقاله: طراحی سایت یکی از مهم ترین مراحل در راه اندازی یک کسب و کار آنلاین است. برای داشتن یک وب سایت موفق، انتخاب ابزار مناسب برای طراحی آن از اهمیت زیادی برخوردار [...]
مدیر2025-04-10T00:50:03+04:30آوریل 10, 2025|0 Comments
چکیده مقاله: در دنیای امروز که تکنولوژی و اینترنت بخش جدایی ناپذیری از زندگی انسان ها شده اند، حضور در فضای آنلاین برای هر حرفه ای ضروری به نظر می رسد. پزشکان نیز از [...]