پیشانه و پسانه
در مهندسی نرمافزار، اصطلاحات پیشانه و پسانه (به انگلیسی: Front end and back end) به تفکیک توجهها بین لایه نمایش (قسمتی که نتیجه در آن نمایش داده میشود) و لایه دسترسی به داده (قسمت کار بر روی دادهها) در یک قطعه نرمافزار یا زیرساختهای فیزیکی یا سختافزار اشاره دارد. در مدل کارخواه-کارساز (مثل پایگاهها که با کارساز در ارتباط اند)، کارخواه (به انگلیسی: Client) یا سرویسگیرنده معمولاً به عنوان پیشانه در نظر گرفته شده و معمولاً کارساز به عنوان پسانه در نظر گرفته میشود، حتی زمانی که برخی از کارهای ارائه شده (در لایه نمایش یا همان پیشانه) در واقع روی کارساز انجام میشود.
معرفی
در معماری نرمافزار، ممکن است لایههای زیادی بین سختافزار و کاربر نهایی وجود داشته باشد که میتوان دربارهٔ داشتن یا نداشتن پیشانه و پسانه برای هر لایه بحث کرد. پیشانه انتزاعی است، که لایههای زیرین (که تقریباً توسط کاربر غیرقابل فهم است) را سادهسازی کرده تا لایهٔ نمایشیای (پیشانه) بسازد که کاربر بتواند به راحتی از آن استفاده کند؛ در حالی که پسانه معمولاً پردازش و ذخیرهسازی دادهها را انجام میدهد. در ارتباطهای مخابراتی، پیشانه میتواند یک افزاره یا خدمت باشد؛ در حالی که پسانهٔ این زیرساخت است که از ارائه خدمات پشتیبانی میکند.
یک قاعده کلی این است که سمت خدمت گیرنده (یا "پیشانه") جزیی است که کاربر دستکاریش میکند. کد سمت کارساز (یا "پسانه") معمولاً روی کارساز قرار میگیرد که اغلب، از طرف کاربر به صورت فیزیکی قابل دسترسی نیست.
تعاریف نرمافزاری
- در سامانههای مدیریت محتوا، اصطلاحهای پیشانه وپسانه ممکن است به ترتیب به آن چه که کاربر نهایی از سامانه میبیند و آنچه مدیر میبیند مربوط شود.
- در TTS، پیشانه اشاره به بخشی از سامانهٔ تجزیه است که متن ورودی را به نمایش نمادین آوایی تبدیل میکند، و پسانه نماد نمادین آوایی را به صداهای واقعی تبدیل میکند.
- برای زیرسامانههای اصلی رایانه، نرمافزار مدیریت پروندهٔ گرافیکی، پیشانهای برای سامانه پرونده رایانه است. کاربر با پیشانه رو به رو شده وپسانه در پاسخ، پروندهها را اجرا میکند.
- در کامپایلرها پیشانه، کد را به یک نمایش واسطه تبدیل کرده و پسانه با نمایش واسطهٔ ایجاد شده، کد را به زبان خروجی رایانه تبدیل میکند. پسانه معمولاً برای تولید کدی که سریعتر اجرا میشود، بهینهسازی میکند. برخی کامپایلرها، مانند GCC، اجازه گزینش میان چند پیشانه (تجزیه کد زبانهای مختلف) یا پسانه را میدهند (تولید کد برای پردازندههای مختلف).
- استفاده از رابط خط فرمان (CLI) نیاز به دستیابی به اصطلاحات خاص و حفظ دستورها دارد، بنابراین یک رابط کاربری گرافیکی (GUI) همانند میزکار به عنوان پیشانه عمل میکند.
به عنوان مثال توسعه وب
راه دیگری برای درک تفاوت بین این دو، دانستن آگاهی از دانش مورد نیاز یک برنامهنویس پیشانه و پسانه است. به عنوان مثال فهرست زیر در توسعه وب تمرکز دارد.
هر دو
- ابزار کنترل نگارش مانند گیت یا مرکوریال
- ابزار انتقال پرونده مانند افتیپی یا آرسینک
پیشانه
- زبانهای نشانه گذاری و زبانهای وب مانند اچتیامال، سیاساس، جاوا اسکریپت و کتابخانههای جانبی که معمولاً در آن زبانها استفاده میشود مانند Sass یا جیکوئری
- Asynchronous request handling و ایجکس
- برنامههای تک صفحه (با فِرموُرکهایی مانند انگولارجیاس، ری اکتجِیاس، یا ویو جیاس)
- عملکرد وب (اولین رنگ معنی دار، زمان تعاملی، انیمیشن 60 FPS و تعامل، استفاده از حافظه و غیره)
- طراحی صفحات وب سازگار با شرایط (مانند اندازه صفحه)
- مسائل سازگاری با مرورگرها و راه حلها
- تست پایان دادن به یک مرورگر بدون سر و صدا
- اتوماتیکسازی تبدیل و بستهبندی نرمافزاری فایلهای جاوا اسکریپت، کاهش اندازه تصاویر … با ابزار مانند Webpack یا Gulp.js
- بهینهسازی موتور جستجو
- توجه به دسترسیها
- استفاده عمومی از ابزارهای ویرایش عکس مانند گیمپ یا فتوشاپ
پسانه
- زبانهای اسکریپتی مانند نود.جیاس، پایتون، پیاچپی، پایتون، روبی، پرل یا زبانهای کامپایل شده مانند، جاوا، سی شارپ یا گو
- دسترسی به دادههای برنامه
- منطق کسب و کار برنامه
- مدیریت پایگاه داده
- مقیاس پذیری
- توجههای امنیتی، تأیید هویت و مجوز
- معماری نرمافزار
- تبدیل دادهها
- روشها و نرمافزارهای پشتیبانگیری
توجه داشته باشید که هر دو موقعیت (پیشانه و پسانه)، با وجود احتمالاً کار بر روی یک محصول، مجموعهای از مهارتهای بسیار متمایز را دارند.
تعاریف سختافزاری
در محاسبات شبکه، فرانت-اِند میتواند به هر سختافزاری که ترافیک شبکه را بهینهسازی یا محافظت میکند اشاره کند. این نرمافزار به عنوان سخت افزار فرانت-اِند نامیده میشود ، زیرا در قسمت جلو یا مرز خارجی به سمت شبکه قرار میگیرد. ترافیک شبکه از طریق سختافزار فرانت-اِند قبل از ورود به شبکه عبور میکند.
در طراحی پردازنده، طراحی فرانت-اِند، توصیف اولیه رفتار یک مدار در یک زبان توصیف سختافزاری مانند وریلاگ (به انگلیسی: Verilog) خواهد بود، در حالی که طراحی بَک-اِند، به روند پردازش این رفتار را به ترانزیستورهای فیزیکی روی یک دای گفته میشود.
جستارهای وابسته
منابع
- ↑ Thapliyal, Vimal. "Difference Between Frontend and Backend MVC – Joomlatuts". joomlatuts.net. Archived from the original on 30 December 2016. Retrieved 2016-12-30.
- ↑ Gutierrez--Osuna, Ricardo. "L18: Speech synthesis (back end)" (PDF). tamu.edu. Texas A&M University. Archived from the original (PDF) on 14 February 2019. Retrieved 2016-12-29.
- ↑ Bin Muhammad, Rashid. "Operating Systems Notes". www.personal.kent.edu. Kent State University. Retrieved 2016-12-30.
- ↑ O'Dell, Mike. "Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM". cacm.acm.org. Retrieved 2016-12-30.
- ↑ "Front-End Design | Online Documentation for Altium Products". techdocs.altium.com. Retrieved 2016-12-30.