Привет.
В планах написать полностью некоммерческий проект - фотохостинг. Ну просто хочется и все.
Знаю, что их много, но:
1) Сейчас я на 3 курсе в техникуме, а препод увидел, что я занимаюсь вебом и сказал, что могу приступать делать проект сейчас, чтобы не ждать 4-го курса.
2) Мне хочется создать что-то вроде "своего детища". И повторюсь - не с целью навариться. Просто хочется поработать с данными, с картинками, создать логику, API и все такое. Даже нашел НН, которая определяет, является ли фотография 18+, чтобы ее не публиковать.
Сейчас же имею только верстку. Верстаю немного, в свободное от работы и учебы время, но дал себе условный дедлайн - сделать за месяц. Нет, не потому, что для меня это сверхсложно, а потому что занимаюсь этим в свое удовольствие в свободное время. Меня никто не гонит.
Так вот, извиняюсь за такое водное вступление. Собственно, вопрос.
Как же лучше совместить бекенд и фронт?
1) Лучше писать PHP код прямо в HTML разметке?
2) Лучше через ajax получать данные по API?
Первый вариант мне не особо симпатизирует, потому что ну не хочется встраивать логику по факту в статику. Но со вторым вариантом тоже не все так просто - увеличится время загрузки контента, не смотря на асинхронность. Лучше, как мне кажется, отдавать сразу готовую HTML страницу, но эта идея противоречит предложению выше.
Вот такие дела, сижу сам с собой размышляю. Не понимаю, что делать.
P.S. Хочу сделать все на чистом HTML, CSS, есть также уже фреймворк, в котором я отредактировал стили под себя. Не хотелось бы делать на Vue, Angular'e, потому что я не занимаюсь так фронтом, как бекендом. Верстаю на UIKit и меня все устраивает, это как собирать конструктор. А если писать на том же Vue, то это уже не принесет такого удовольствия.
Евгений, так я давно знаком с php, но я всегда писал на нем бекенд без встраивания html.
Также, я уже и интегрировал php в html разметку, и обращался через jquery к апи. Все это уже было, но хотелось бы хоть раз сделать по человечески.
Иван Шумов, php для меня это уже вошедший стандарт что ли, я лет 5 назад еще начинал на нем писать, ну и из-за его простоты, а потом уже и скорости (да да, но при включенном opcache скорость и правда космическая).
Иван Шумов, может, это действительно так.
На php я не гуглю документацию, а просто пишу, как будто сочиняю что-то, ну, то есть, нужные мне функции, синтаксис и т.д. знаю хорошо. Также, пишу на Lua под nginx, но это тот еще геморрой. Поэтому, php тут объективен.
Дмитрий Поспелов, это я и сказал, да) Если проект просто для практики то это вполне обосновано. Если проект пойдет в паблик то скорее всего придется много переделывать под нарузками (не факт, но с большей долей вероятности) и дело даже не в перфомансе
Иван Шумов, дак в том то и дело, что я не новичок в бекенде, путём искуственных нагрузок, различных стрессов и т.д. я выявлял узкие места и исправлял их, это не сложно для меня. Мой вопрос - как по стандарту интегрировать php с html. А делать абы как каждый может.
Дмитрий Поспелов, я сейчас задам самый важный вопрос за который меня тут любят бить ногами. Про масштабирование думать будешь или как любой "я не новичок" - все на одной виртуалке?)
Иван Шумов, зачем мне масшабирование, если это будет по сути курсовой проект... Мне нужно сделать красивый код, а не хайлоад проект.
Вы видимо не поняли моего вопроса.
Дмитрий Поспелов, тогда слово проект стоит выкинуть и заменить на курсовую работу. Проект должен быть запущен и работать, а курсовая работа это такая прекрасная штука, которая ничего общего с реальностью не имеет, а так же может показать только способность достигать поставленной цели
Иван Шумов, нет, ну как, я неправильно выразился.
Это скорее все же проект, он будет работать, но у меня нет цели сделать из него хайлоад. Может, сам буду им пользоваться, может, с друзьями. Самая фишка - это написать.
Дмитрий Поспелов, ну, тогда успехов в этом. Про хайлоад я не говорил ни разу, кстати. Просто какой смысл в такой работе если ничему новому особо не научишься? Ну пара протоколов, апишки всякие ... рядовые вещи сегодня
По моему скромному мнению следуют принципиально разделить проект на 2 части:
Фронтенд: html + JS
Бэкэнд: php
Бэкэнд настраиваешь по урл host/api/ на который пост запросом отправляешь параметры (ключи, идентификаторы)
Фронтэнд -- собственно index.html, который подтягивает js скрипт, работающий с API и DOM
Такой подход позвоит менять как бэкэнд, так и фронтэнд, а так же тестировать их по отдельности.
Цикл разработки примерно такой:
Пишешь заглушку для выдачи фотки, где захарткожены выходные данные
Пишешь html + js для получения данных. В процессе по необходимости меняешь данные в предыдущем пункте