Jump to content

Front-end или back-end


psywalker
 Share

Recommended Posts

Сегодня в приватной переписке у нас с Рашидом (Great Rash) возник спор. В котором мы так и не пришли к общему знаменателю. Точнее Рашид-то пришёл, но я вот нет :)

Суть в том, что Рашид утверждает, что во Front-end разработку не входит, например, CSS, объясняя это тем, что CSS относится к дизайну и никак иначе. А я вот везде наблюдаю обратную картину. Например, в разных вакансиях или статьях Front-end расписывают до такой степени, что в него входит чуть ли не SEO и т.д. В общем, нужно разобраться в данном вопросе досконально, господа :rolleyes:

Очень хочется получить ответы на следующие вопросы:

1. Что есть Front-end? И какие технологиеи и т.д, туда входят?

2. Что есть Back-end? И какие технологиии т.д, туда входят?

Link to comment
Share on other sites

а ничего, что нынче уже на каждом втором проекте предусматривается бэкэнд на фронтэнде?

Согласен, есть такое дело) Но всё-таки хочется понять чёткую разницу между ними. Вопрос именно в этом. :)

Link to comment
Share on other sites

Одна из статей "кто он - Front-end разработчик", с которой я согласен:

_http://www.xiper.net/collect/weekdays-front-end-dev/the-work-in-general/why-your-company-needs-a-front-end-developer.html

Суть в том, что Рашид утверждает, что во Front-end разработку не входит, например, CSS, объясняя это тем, что CSS относится к дизайну и никак иначе

В этом есть смысл(50/50), но я все же не согласен с этим утверждением. В любом случае, я отношу дизайн к Front-end), ИМХО

Link to comment
Share on other sites

Одна из статей "кто он - Front-end разработчик", с которой я согласен:

_http://www.xiper.net/collect/weekdays-front-end-dev/the-work-in-general/why-your-company-needs-a-front-end-developer.html

Суть в том, что Рашид утверждает, что во Front-end разработку не входит, например, CSS, объясняя это тем, что CSS относится к дизайну и никак иначе

В этом есть смысл(50/50), но я все же не согласен с этим утверждением. В любом случае, я отношу дизайн к Front-end), ИМХО

Да, я видел эту статью. В том-то и дело, что там, например, написано, что front-end - это и SEO и Дизайн((.

Link to comment
Share on other sites

автор топика хочет разделить то, что на практике зачастую переплетается всё теснее.

Примеры:

js-анимация — традиционно относится к фронтэнд-разработке, а не к дизайну. Однако прототип этой анимации разрабатывается дизайнером. И это логично.

css — всё же чаще относят к разработке, чем к дизайну. Не знаю, как у других, но в своей студии я каждую неделю читаю дизайнерам лекции по css. На практике макеты сопровождаются разработанными дизайнерами кусками кода. Есть инструмент для внутреннего пользования, позволяющий в визуальном режиме создавать стили только те, которые возможно создать средствами css. Это делают дизайнеры. Дизайнеры создают код css.

дальше — больше. Модели. Это слово не каждому фронтэндеру даже знакомо ибо характерно для бэкэнда. Дизайнер не открывает фотошоп без разработанной модели. Иногда, в очень отдельных случаях, дизайнер даже занимается разработкой модели.

При таком тесном переплетении как разделить?

Link to comment
Share on other sites

автор топика хочет разделить то, что на практике зачастую переплетается всё теснее.

Примеры:

js-анимация — традиционно относится к фронтэнд-разработке, а не к дизайну. Однако прототип этой анимации разрабатывается дизайнером. И это логично.

css — всё же чаще относят к разработке, чем к дизайну. Не знаю, как у других, но в своей студии я каждую неделю читаю дизайнерам лекции по css. На практике макеты сопровождаются разработанными дизайнерами кусками кода. Есть инструмент для внутреннего пользования, позволяющий в визуальном режиме создавать стили только те, которые возможно создать средствами css. Это делают дизайнеры. Дизайнеры создают код css.

дальше — больше. Модели. Это слово не каждому фронтэндеру даже знакомо ибо характерно для бэкэнда. Дизайнер не открывает фотошоп без разработанной модели. Иногда, в очень отдельных случаях, дизайнер даже занимается разработкой модели.

При таком тесном переплетении как разделить?

А никак. Просто спасибо за мнение, а я уже для себя отфильтрую что нужно :)

Link to comment
Share on other sites

Front-end - это то, с чем непосредственно взаимодействует пользователь.

Back-end - это внутреннее устройство объекта, которое пользователь не видит.

То есть кнопочки, поля, текст, и другие видимые элементы интерфейса с которым можно взаимодействовать это - Front-end.

А уже html, css, js, php, mysql, python etc, технически это уже Back-end. Это пользователь не видит, во-всяком случае не должен его это не касается.

Но если применительно к сайтам, то лично я делю таким образом, все что крутится средствами клиента это Front-end, все что крутится сугубо сервером это back-end.

Значит html, css, js, localStorage... - Front-end,

А php, python, mysql... - Back-end

Не претендую на правоту, но это лично мое мнение по-этому поводу

  • Like 2
Link to comment
Share on other sites

Значит html, css, js, localStorage... - Front-end,

js? я даже не про node.js сейчас, а о том, что чисто в браузере уже идёт деление на фронтэнд и бэкэнд; и localStorage логичным образом чаще всего оказывается в бэкэнде.

При этом сервера выступают исключительно хранилищами данных. Бэкэнд приложения только синхронизируется с сервером.

В общем, очень не всегда эта граница чёткая.

Link to comment
Share on other sites

если применительно к сайтам, то лично я делю таким образом, все что крутится средствами клиента это Front-end, все что крутится сугубо сервером это back-end

Придерживаюсь того же мнения и не парюсь :)

Link to comment
Share on other sites

Нет четкого деления. Все зависит от проекта. Бывают случаи, что фронт-энд разрабочкик занимается и клиентской и серверной частью одновременно, но при этом не становится бэк-энд'овцем. Так что спор несколько странный, похож на спор про сено и солому.

  • Like 1
Link to comment
Share on other sites

Нет четкого деления. Все зависит от проекта. Бывают случаи, что фронт-энд разрабочкик занимается и клиентской и серверной частью одновременно, но при этом не становится бэк-энд'овцем. Так что спор несколько странный, похож на спор про сено и солому.

Согласен. Но меня интересуют изначальные обязанности этих категорий. Т.е. данные им природой)

Link to comment
Share on other sites

А для меня вот фронт-енд - это сервера принимающие соединения, занимающиеся кешом и статикой, а бек-енд - это пул серверов, занимающийся выполнением ПО =))

У нас есть HTTP. Вот все, что со стороны клиента - это фронт-енд разработка, что со стороны сервера - это бек-енд.

Фронт-енд разработка - это все, что потом анализируется, парсится и исполняется клиентским софтом. Например, HTML/CSS - это все же программа, указывающая браузеру что делать. Так что всегда считал это разработкой.

Хотя, другое мнение тоже понимаю. Скорее всего оно идет от сильных JS разаботчиков - называя себя фронт-енд разработчиками им, полагаю, не очень приятно, что их занятие смешивают с версткой.

> а ничего, что нынче уже на каждом втором проекте предусматривается бэкэнд на фронтэнде?

C бек-офисом не перепутали? =)

Link to comment
Share on other sites

Front-end это интерфейс между пользователем и back-end. И никак иначе. То что в это понятие кто-то вкладывает дизайн макета или CSS-стили на странице - его проблемы. Но он все равно будет неправ.

Вот почти классическая вакансия front-end разработчика. Ежу понятно, что верстка без CSS не возможна (если ты не делаешь сайт типа такого), но знание CSS "наизусть" - совсем не обязательное условие для фронта. Он должен быть скорее архитектором.

  • Like 1
Link to comment
Share on other sites

Front-end - это то, с чем непосредственно взаимодействует пользователь. То есть кнопочки, поля, текст, и другие видимые элементы интерфейса с которым можно взаимодействовать это - Front-end.

с базой данных пользователь тоже взаимодействует

Front-end это интерфейс между пользователем и back-end. И никак иначе.

+

Link to comment
Share on other sites

с базой данных пользователь тоже взаимодействует

Не напрямую, а через прослойку серверного языка (back-end'a), кроме локальных БД.

"Напрямую" пользователь взаимодействует пожалуй что с мышкой и клавой ) Исходя из твоего определения мое утверждение верно )

Link to comment
Share on other sites

Front-end это интерфейс между пользователем и back-end. И никак иначе. То что в это понятие кто-то вкладывает дизайн макета или CSS-стили на странице - его проблемы. Но он все равно будет неправ.

А css - это не элемент интерфейса? Дизайн - это дизайн. А разработка - это разработка. Все, что превращает дизайн в конечный интерфейс - это разработка.

Вот почти классическая вакансия front-end разработчика. Ежу понятно, что верстка без CSS не возможна (если ты не делаешь сайт типа такого), но знание CSS "наизусть" - совсем не обязательное условие для фронта. Он должен быть скорее архитектором.

Каша у вас. "Фронт-енд", "Фронт-енд разработчик", "Фронт-енд архитектор" - все в одну кучу? Совершенно разные понятия. Просто фронт-енд - это набор сущностей, когда говорим о разработчике - говорим о том, что он делает и что должен знать. А архитектор решает как именно делать то или иное.. и дает указания разработчику =)

  • Like 1
Link to comment
Share on other sites

"Напрямую" пользователь взаимодействует пожалуй что с мышкой и клавой ) Исходя из твоего определения мое утверждение верно )

Не совсем. Пользователь не имеет прямого доступа к БД на сервере. Если ему отключить интернет, он не получит ровным счетом ничего. А вот локальную БД или хранилище, он может открыть напрямую, и покуда электроны бегают, пользователь может творить с локальными данными все, что ему вздумается.

То, что:

Front-end это интерфейс между пользователем и back-end

это да, но это применительно к автономным приложениям, к плееру, например, или к тому же браузеру. В браузере мы имеем элементы взаимодействия, кнопки, ссылки, вкладки, закладки, ареа для отрисовки веб-страницы - это front-end. Но мы не имеем "прямого" доступа к реализации этого интерфейса, к back-end. Мы не можем просто так взять и посмотреть как устроена адресная строка, например, с программной точки зрения, имея один лишь браузер.

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

Вот схемку набросал:

h_1343983789_1816262_2218638167.jpeg

Все, что находится в Front-End, мы можем влиять на это абсолютно беспрепятственно, все это находится на стороне клиента и им же обрабатывается. А то, что в Back-End это часть сервера и мы не можем просто так взять и посмотреть каким образом готовятся html страницы к примеру, если это не предоставляет сам сервер конечно. Если же сервер и предоставляет возможность воздействия на внутреннее устройство, то опять же только под средством клиентской части.

По-этому я так разделяю эти вещи

  • Like 1
Link to comment
Share on other sites

А css - это не элемент интерфейса? Дизайн - это дизайн. А разработка - это разработка. Все, что превращает дизайн в конечный интерфейс - это разработка.

CSS это пользовательский интерфейс - UI. А я имею в виду программный интерфейс - API. В случае фронт-энда это формы и JS-обработка этих форм и других данных, поступающих от клиента (куки, хренуки и т.п.) В определении front-end имеется в виду API а не UI.

Вот схемку набросал:

CSS - это не View. И паттерн MVC к верстке по большому счету не применим. Если так подумать, то HTML, CSS и JS - это все Model.

Link to comment
Share on other sites

CSS это пользовательский интерфейс - UI. А я имею в виду программный интерфейс - API. В случае фронт-энда это формы и JS-обработка этих форм и других данных, поступающих от клиента (куки, хренуки и т.п.) В определении front-end имеется в виду API а не UI.

То есть ты html/css отделяешь в категорию UI, js/"(куки, хренуки и т.п.)" - Front-End, а все остальное это Back-End? Я правильно понимаю? Front-End/Back-End теоретически пользователь уже не видит и его это не касается, так получается?

Link to comment
Share on other sites

"Напрямую" пользователь взаимодействует пожалуй что с мышкой и клавой ) Исходя из твоего определения мое утверждение верно )

Не совсем. Пользователь не имеет прямого доступа к БД на сервере. Если ему отключить интернет, он не получит ровным счетом ничего. А вот локальную БД или хранилище, он может открыть напрямую, и покуда электроны бегают, пользователь может творить с локальными данными все, что ему вздумается.

А если ему отключить электричество, то останется клава, мышь и потухший экран. Впрочем, последнего может не остаться, если пользователь разобьет его со злости :)

Базы, хранилище... Это все к чему? Напрямую, т.е. без посредников пользователь может взаимодействовать ТОЛЬКО с ними (клава и мышь), остальное - косвенное взаимодействие.

Edited by nerv
Link to comment
Share on other sites

JS + HTML(XML и т.п.) + другие данные, предоставляемые серверу - это фронт. CGI + PHP(JAVA, PERL, Python и т.п.) + БД(MySQL, PosgresQL, MSSQL, Oracle) - это бэк.

В категорию UI я определяю CSS, работу с текстом, PSD и прочие красивости, которые никак не влияют на функционал приложения. Т.е. это все дизайн. Ни фронт, ни бэк.

UPD: могут быть 2 совершенно одинаковых по функциональности приложения (допустим социальная сеть), но одно удобное, а другое пипец какое неудобное. Вот "удобство" - это удел дизайнеров и манагеров, которые проектируют UI. Дело front-end разраба, предоставить серверу данные, чтобы раскрасивый UI стал не просто красивой пустышкой, а полноценным приложением.

UPD2: Я создал функциональное приложение. Какой бы CSS я не прописал, его функциональность не измениться. Какие бы SEO-тексты я не понаписал под или над ним, его функциональность останется прежней.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy