Проект #3

Анализатор страниц

Профессия PHP-программист

Фронтенд (Bootstrap, CDN). Фреймворк Laravel (Маршрутизация, Представление). База данных, (Миграции, query builders). Деплой (PaaS, Heroku). HTTP (в том числе выполнение запросов). Интеграционное тестирование. Логгирование.

2-4
недели
Иконка профессии PHP-программист

Цель

Третий проект – полноценный веб-сайт на базе фреймворка Laravel. Здесь отрабатываются базовые принципы построения современных сайтов на MVC-архитектуре: работа с роутингом, обработчиками запросов и шаблонизатором, взаимодействие с базой данных через ORM.

Независимо от используемого способа написания кода, вся веб-разработка (бэкенд) базируется на двух вещах: протоколе HTTP и клиент-серверной архитектуре которые изучаются в соответствующих курсах. Любое обращение к сайту это HTTP-запрос, а результат который мы видим это HTTP-ответ. Эти понятия составляют основу любого фреймворка и изучаются в первую очередь. В свою очередь роутинг завязан на методах HTTP и использует их для формирования конкретных маршрутов. Часто на собеседовании спрашивают: "Что происходит, когда пользователь набирает в браузере адрес сайта и нажимает Enter?". После проекта ответ на этот вопрос станет очевидным из собственного опыта.

Код - это только часть сайта. В конечном итоге имеют значение данные, которые лежат в базе данных. А для этого её сначала нужно правильно спроектировать. Здесь понадобятся знания нормальных форм и принципов построения отношений между сущностями. Сам SQL-код для создания структуры базы данных генерируется с помощью миграций, которые встроены в Laravel как часть ORM (Eloquent). Эта же ORM нужна для выполнения SQL-запросов к базе данных: вставку, модификацию и удаление данных.

И даже бэкенд разработка не может существовать без фронтенда. У любого сайта есть стили и хотя бы минимальный JavaScript, а в шаблонах на полную катушку используется HTML. В этом проекте студентам предстоит познакомиться с Bootstrap и использовать его компоненты для визуального оформления. Также здесь понадобится собирать фронтенд с помощью Webpack (встроен в Laravel) и написать немного JavaScript-кода.

Профессиональная разработка не обходится без автоматизированного тестирования. Тестирование сайтов сильно отличается от тестирования кода библиотек. Оно, в основном, строится вокруг тестов, имитирующих HTTP-запросы и проверяющих ответы вместе с данными в базе. Подобные тесты позволяют дёшево проверять работоспособность приложения и обеспечивают легкий рефакторинг в будущем. На проекте оттачивается навык написания подобных тестов, который пригодится и в других фреймворках.

Кроме кода сайта, веб-разработка включает в себя важные инфраструктурные элементы, для запуска сайта нужен веб-сервер и установленная база данных. В свою очередь работа по сети опирается на базовое понимание работы протокола TCP и знакомство с понятием ip-адреса и порта. Со всем этим придётся столкнуться в процессе разворачивания локального окружения.

Когда сайт готов, его нужно выложить в публичный доступ или, как говорят программисты: "задеплоить в продакшен". Выкладка готового кода - неотъемлемая часть разработки. Существует множество различных подходов и требований к тому как это делать эффективно. В этом проекте отрабатывается наиболее автоматизированный способ, с помощью сервиса Heroku. Это хостинг, работающий по модели PaaS (платформа как сервис), он сам отвечает за инфраструктуру и требует определённого способа организации кода для обеспечения масштабируемости.

Описание

Page Analyzer – сайт, который анализирует указанные страницы на SEO пригодность по аналогии с varvy

Впечатления

Кирилл, большое спасибо за проект!

Кстати в этом проекте никто так далеко не заходил как ты)

Видимо благодаря волшебным пинкам из за конечных автоматов))) Мозг взорвался немного - за это отдельное спасибо!

Вопросы и ответы

Какое расписание у проекта?

У проекта нет расписания и вы можете заниматься в удобное для вас время. Доступ к проекту будет пока действует ваша премиум подписка.

Как оплачивается проект?

Проект доступен в рамках подписки на план «Премиум», дополнительная оплата не нужна. В течение месяца можно пройти один проект. Если у вас есть действующая профессиональная подписка, то стоимость премиум подписки будет меньше. Система пересчитает стоимость в зависимости от количества не использованных дней на текущем плане.

Зачем нужны проекты?

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

Что делает наставник в проектах?

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

У меня есть другой вопрос

Пишите нам на support@hexlet.io, вам ответит живой человек из команды Хекслета. Или нажмите на иконку со знаком вопроса в правом нижнем углу экрана. Там есть ответы и на другие вопросы и удобная форма для отправки сообщения нам.