Лицьова сторона написана мовами, які використовуються для зворотного кінця! [зачинено]


10

З мого досвіду веб-розробки, я знаю, що такі мови, як PHP, Java, Python..etc використовуються для розробки програмного забезпечення (програмне забезпечення, що працює на сервері), а для мов на передньому кінці використовуються JS / HTML / CSS.

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

Чи означає це, що PHP є переднім телефоном для виклику інших служб, написаних іншими мовами через REST, RPC ..etc?


3
цю публікацію досить важко читати (стіна тексту). Ви б не хотіли відредагувати його в кращій формі?
гнат

Відповіді:


36

Ви переплутали терміни "фронт-енд" і "бек-енд" з "сервер" і "клієнт". "Бек-енд", як правило, відноситься до систем, які не піддаються безпосередньо користувачеві (сервери баз даних, проміжне програмне забезпечення тощо), тоді як "передній" зазвичай стосується програми (у випадку з Інтернетом, це зазвичай означає статичну та динамічні веб-сторінки), до яких безпосередньо звертається клієнт.

У веб-додатку клієнт (веб-переглядач користувача) отримує доступ до веб-сторінок, які зберігаються або динамічно генеруються «серверною стороною» за допомогою «передньої» технології. Ці передні компоненти можуть, у свою чергу, витягувати дані або іншу інформацію з "резервних" компонентів. Таким чином, веб-додаток, написане на PHP, було б "передовим", але "стороною сервера". Однак, якщо веб-сторінки містили будь-який JavaScript, який повинен виконувати браузер користувача, цей код JavaScript виконується "на стороні клієнта".

Сподіваюся, я усунув деяку плутанину, але зараз ризикую створити ще щось.

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

По-друге, звичайно, JavaScript не обмежується використанням клієнта. Він набуває все більшої популярності як мова на стороні сервера (див. Node.js для одного прикладу). Таким чином, його найчастіше використовують лише ті види Інтернет-служб, які я описав у попередньому пункті.

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

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


З огляду на ваше останнє речення, ви можете насолоджуватися code.google.com/p/php-to-js :-P
Андреа

якщо кожна мова може бути використана на фронталі, і кожна мова може бути використана на бекенді, чи не відрізняння марне в тому, як її запитували? на нього можна відповісти лише в контексті заяви.
Клавдіу Креанга

7

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

PHP - прикольний приклад, оскільки він може бути (досить некрасивим способом, який я можу додати) розглядається як мова "все в одному", що стосується багатьох веб-проектів. Ви можете виконувати свої традиційні " бек-енд " завдання - такі як операції з файлами та базами даних, а також будувати розмітку " переднього ".

Це однозначно може призвести до спалаху спагетті, коли немає справжнього роз'єднання турбот, тому це дійсно повинно нахмуритися в моїй свідомості. На відмінний приклад, якщо ви переглядаєте джерело wordpress, ви часто можете загубитися - і це один проект, де я звинувачую мову, організація бази даних насправді дуже хороша.

Це можна дещо виправити, використовуючи " двигун шаблонів " (наприклад, Smarty )) - але все-таки PHP будує "передній", одночасно забезпечуючи функцію "бек-енд". Це було навмисним рішенням, що стоїть за дизайном PHP, проте, це врешті " гіпертекстовий процесор "!

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

Особисто я відчуваю, що вся терміналогія "бек-енд-енд" та "фронт-енд" - це трохи .. застаріле, можливо. Я вважаю за краще, щоб речі були спрямовані лише на сторону клієнта та сервера; то немає справжньої неоднозначності. *

Зовсім недавно я побачив специфікацію клієнта, яка вимагала, щоб система back-end писала в node.js та пов'язаних з ними інструментах, але хотіла збільшити front-end за допомогою PHP-фреймворку (Laravel). Це пов'язано з багатьма пов'язаними витратами, і, на мій погляд, - це не елегантне рішення і може викликати досить багато проблем.

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

Крім того, я також думаю, що існує дуже мало сценаріїв, які гарантують такий тип посередницького пакету; Більшість мов / фреймворків бездоганної мови цілком здатні генерувати надбавку, необхідну для передньої частини. Хоча я маю виправитись там.

* Хоча, щоб перетворити своє питання на голову .. А як щодо бек-енд-систем, побудованих за допомогою Javascript? (node.js;))

Редагувати:

Прочитавши коментар @itsbruce, я вирішив уточнити, що я маю на увазі під неоднозначністю моєї термінології "front-end" / "back-end".

Традиційно ця термінологія була б чудовою, архітектурно веб-програми були набагато простішими - і, смію це сказати, набагато тупішими. На мій розум набагато чіткіше говорити "Сторона сервера" та "Сторона клієнта", і це стає зрозумілішим, оскільки поточна тенденція до більшої кількості процесорів та логіки для клієнта стає загальною.

Це стає прийнятним проводити неабияку кількість клієнтів на обробці даних (просто подивіться на деякі існуючі в даний час рамки javascript), але чи це насправді передня частина? Користувач цього не бачить, вони бачать його результати - і за традиційними критеріями, які зазвичай розглядаються як "бек-енд"; але це зараз відбувається в браузері ..

Точно так само і надзвичайно актуально для цього питання, чи справді надбудова націнки на PHP справжнє завдання? Сумніваюся, швидкий перегляд дощок робочих місць показує, що кілька позицій розробників на передньому кінці очікують досвіду чи знань PHP; але інтуїція підказує, що розмітка інтерфейсу за своєю суттю є передньою частиною.

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

Звертаючись до завдань як "на стороні сервера" або "на стороні клієнта", що двозначність втрачається, ви знаєте, де виконується код і які мови будуть використовуватися. Якби у прикладі ОП ви сказали " передовий ", я сумніваюся, що багато людей підуть " О, значить, PHP на сервері? ".


3
Я вас не проголосував, але вашу відповідь майже так само важко читати, як і питання, і вона насправді не стосується плутанини щодо термінів (якщо що, це робить це гірше). Що ще більш важливо, там просто немає ніякої двозначності між «фронтального v фоновим.» І « на стороні клієнта v на стороні сервера.»; вони описують різні та виразні стосунки. Ви також можете сказати: "Я б швидше не зупинився на кольорі та формі; це неоднозначно, що речі можуть бути зеленими або синіми, круглими або квадратними, а деякі речі - зеленими та квадратними".
йогобрюс

До, у мене не було достатньо часу, щоб прочитати доказ, оскільки мені довелося повернутися до роботи. Ура за коментар, однак, це мені дало голови редагувати. Я все-таки дотримуюся своїх думок щодо термінології, але дещо розширюю її. Та.
Fergus In London

не обов’язково - я вважаю мову веб-сервера частиною клієнта (враховуючи, як часто веб-сервери зламаються в наш час, це слід вважати компрометованим з першого дня), тому необхідно розрізняти серверні мови, які є частиною презентації рівень з мов на стороні сервера, які надають послуги рівня додатків. Таким чином, PHP можна вважати мовою "переднього сервера".
gbjbaanb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.