Чи є термін "Front-End" синонімом "Client-Side"? Якщо так, чи завжди це так?


19

Як відносно новий (самоук) веб-розробник, я досить часто чув терміни " фронт-енд" , " клієнт" , " бек-енд" та " сервер" . Для мене фронт-енд-енд-енд завжди був синонімом відповідно до клієнта та сервера.

Однак, коли я почав працювати з рамками MVC, такими як CodeIgniter, я натрапив на декілька примірників, що посилаються на все, що бачить кінцевий користувач (включаючи код на стороні сервера), в той час як бек-енд посилався на що-небудь кінцевий користувач не бачить (включаючи CMS). Як на мене, так і на стороні сервера, для мене набагато конкретніше в своїх сенсах; у них дуже чітка лінія, що їх розділяє. Фронтальний і задній, з іншого боку, не роблять.

У розмові я пам’ятаю, що спілкувався з іншим веб-розробником, він посилався на CodeIgniter (у повному обсязі) як на передній план, і це кинуло мене на цикл. Я не був впевнений, чи виправити його, і сказати, що CodeIgniter був моїм бек-ендом, або якщо мої визначення двох термінів були абсолютно неправильними.

Пошук дефініцій фронтального та заднього кінців у деяких аспектах мене збентежив дещо, хоча вони уточнили декілька речей. Мені просто хотілося б знати, де прорисовані лінії між цими чотирма термінами, і як вони з'єднуються в контексті веб-розробки (зокрема на стеку LAMP).


1
Я працював з одним хлопцем, який використовував "передню частину" та "задню частину", щоб означати "лицьова сторона" та "назад". Чи був він "правильним", чи інше питання
user16764

Натомість нам слід використовувати слово "posterior". Жартує. Мені б хотілося, щоб там була інша фраза. Синоніми "Back end" не обнадійливі.
Ерік Аронесті

Відповіді:


17

Я не вірю, що для цих термінів існує формальне визначення, і, як ви зазначали, в деяких випадках це перекриття.

front-endі client-sideперекриваються.
server-sideа back-endтакож перекриваються.

Якби я розділив волоски, я запропонував би ці грубі межі:

  • client-sideце програма, яка працює за комп'ютером користувачів. Це може бути окрема програма (частіше) або посилання на інтерфейс на базі веб-браузера (рідше).
  • front-endтакож стикається з кінцевим користувачем і, як правило, працює в інтерфейсі веб-браузера. Я не чув, щоб товсті клієнти називались "a" front-end.
  • back-endстосується процесів і служб, які працюють або на іншому сервері, або на тлі комп'ютера користувачів. Частіше за все це стосується процесів, які відсутні на комп'ютері кінцевих користувачів. Але ключовим, як ви вже згадували, є те, що кінцевий користувач не обов'язково знає про запущені процеси.
  • server-sideє розширенням, back-endале явно підкріплює той факт, що процеси працюють деінде, а не на комп’ютерах кінцевих користувачів.

В якості прикладу та щоб виділити плутанину між термінами, я буду використовувати Minecraft як приклад.

У Minecraft є

  • client-side програми, коли ви запускаєте файли jar локально за допомогою власного JVM.
  • front-end якщо ви вирішите запустити клієнтську програму у своєму веб-браузері
  • back-end процес, який може працювати локально на вашій машині, якщо ви перебуваєте в автономному режимі
  • server-side обробляти, якщо ви вирішите увійти на сервер, на якому розміщено серверне додаток Minecraft.

Якщо ви заглибитесь у деякі статистичні дані Minecraft, ви побачите, що вони просто позначають a clientіserver компонент для гри; їм не обов’язково важливо, де ці компоненти запускаються.


Щоб безпосередньо відповісти на ваші запитання:

Чи є термін "Front-End" синонімом "Client-Side"?

Сорт, але не дуже. Існує нюанс між умовами, якщо ви обговорюєте речі поза межами веб-сторінок. Якщо ви суворо перебуваєте в Інтернеті, то так, вони функціонально синонімічні.

Якщо так, чи завжди це так?

У веб-світі я б сказав так. В інших сферах я б сказав "ні", як це було пояснено в грубих визначеннях, які я пропонував.


Ось про що я думав. Дякую, що допомогли мені прояснити це в моїй голові.
DC_

2
Бекенд часто використовується для позначення частини адміністративної частини веб-сайту / програми на стороні клієнта.
Флоріан Маргаїн

20

На сервері працює сервер. Клієнт працює на клієнті. Бек-енд - це обробка даних. Лицьова частина відображає його.

Подивіться на цю веб-сторінку. Витягнення всіх коментарів із бази даних - це робота на серверній основі. Викладення даних у шаблон - це робота на передній стороні, на стороні сервера. Віджети для голосування AJAX та вишукане поле для введення тексту - це передня частина, на стороні клієнта.


4
+1 для вказівки ортогональності між концепцією "передній / задній" та концепцією на стороні клієнта / сервера
Francesco Feltrinelli

1

Я зазвичай вважаю, що використання опису розробників / розробників на стороні клієнта та сервера менш розпливчасте. Та частина клієнтської сторони, де ми проводимо жонглювання / форматування даних, може розглядатися як резервна складова. На зворотному боці є всі шаблони, які мають тенденцію відбуватися на зворотному кінці, а "для переднього кінця", як правило, призводять до того, що люди говорять про них як про розробку Java або C #. Це рідко, але я це бачив в посадових інструкціях.

Але так, загалом кажучи, передній кінець - це частина, де відбувається взаємодія. Задній кінець - це частина, де вся ця взаємодія перетворюється на щось корисне.


0

Це питання дещо старше, але дозвольте додати 2c:

У своїй власній веб-розробці я використовував термін "frontend", що означає код - або інші ресурси -, які деякий час обробляються в браузері. Зараз я використовую термін "клієнт", тому що це може заплутати esp. при виконанні веб-додатків. (Додатки для однієї сторінки)

Просто тому, що на стороні бекенда є також "інтерфейс", що означає загалом ту частину програми, яка відповідає за вихід (до браузера). Тож "фронтенд" насправді може означати дві різні речі. Термін "клієнт", однак, більш чітко описує те, що пов'язане з реальним клієнтом (в даному випадку браузером).

PS: Ну, можливо, я також повинен зараз змінити своє прізвисько на "client_dev";)


0

Сторона клієнта у веб-додатку знаходиться під контролем користувача / замовника, серверна частина - під контролем розробника. Це одна з причин, чому слід робити перевірку даних на сервері.

Терміни передній і зворотний кінці часто використовуються синонімами для сторони клієнта та сервера, і в багатьох випадках це нормально. Однак є й важливі зустрічні приклади. Для мене передній кінець - це все, що щось показує користувачеві.

На наступному зображенні ви можете побачити типові технології / концепції та те, як вони вписуються у (передній, задній кінець) / (сторона клієнта, серверна сторона).

введіть тут опис зображення

Розробники переднього та заднього кінців

Розробник Frontend і Backend - це дві дуже поширені ролі. Лінія стає трохи нечіткою, коли у вас є такі речі, як React, які можуть бути надані на стороні сервера та Flask, що включає двигун шаблону jinja .

І хоча я б поклав такі технології, як веб-база даних SQL та API індексованих баз даних, у квадрант "клієнтський бекенд", роль, яка, як правило, знає про це, - це роль розробника на передньому рівні.

  • Розробники Frontend повинні знати про HTML, CSS, DOM та загальні можливості браузера (наприклад, канюза ). Зазвичай вони знають деякі jQuery або React. Хоча, згідно з моїм визначенням, це резервний сервіс, я би розраховував, що розробники інтерфейсів будуть знати про зберігання на стороні клієнта
  • Розробники бекенда повинні знати про такі веб-сервери, як nginx, gunicorn, Apache або node.js. Вони повинні знати принаймні одну базу даних SQL (Postgres, MariaDB / MySQL, ...), сховища ключових значень (Redis), розробки API (REST і GraphQL). LAMP був типовим стеком деякий час тому. Я НЕ очікував, що розробник бекенда дізнається щось про браузери!

Дизайнер інтерфейсу та розробник Front End

Дві інші ролі - це дизайнер інтерфейсу та розробник інтерфейсу. Отже, одна відмінність полягає в тому, що один - дизайнер, а інший - розробник.

Мета:

  • Дизайнери інтерфейсу призначені для користувача
  • Front End Developer гарантує, що це виглядає як очікувалося (будуючи реальну річ із чернетки)

Інструменти:

  • Дизайнери інтерфейсу користуються в основному Adobe Photoshop / Illustrator / Sketch / Balsamiq / Invision.
  • Розробники Front End використовують React, Vue, Angular

API: REST та GraphQL

API надаються задніми командами і використовуються фронтальними програмами для заповнення програми даними. Резервний сервер - це постійне сховище на різних пристроях, інтерфейс - презентаційний шар. API - канал зв'язку для обох.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.