Изучив свой первый язык программирования, вы можете спросить, что вы можете делать с программированием: искусственный интеллект / машинное обучение? Разработка оборудования? Мобильные приложения? Или, может быть, вы хотите начать разработку веб-приложений! :)
Здесь мы поймем основы работы сети, маршрутов и архитектуры MVC с использованием веб-фреймворка Ruby on Rails. Давайте погрузимся в мир Интернета.
Прежде чем изучать веб-разработку с помощью Rails, я действительно рекомендую изучить Сначала Ruby.
Как работает Интернет?
В Интернете есть множество уровней (Приложение, TCP, Интернет, Аппаратные уровни), которые все связаны. Но в основном он работает через HTTP (протокол передачи гипертекста).
Протокол передачи гипертекста (HTTP) - это прикладной протокол для распределенных, совместных гипермедийных информационных систем. - Википедия
HTTP работает как цикл запрос-ответ в модели клиент-сервер.
У нас есть веб-браузер (например, Google Chrome). Итак, мы вводим www.google.com
URL, и клиент отправляет HTTP запрос (сообщение запроса) на сервер. сервер возвращает HTTP-ответ (ответное сообщение - в этом случае ответ представляет собой HTML-код с веб-сайта Google).
клиент выполняет запрос и получает ответ от сервера. Клиент обрабатывает пользовательский интерфейс и взаимодействия с пользователем. На сервере мы можем хранить и извлекать данные (в базах данных), логику процессов в фоновом режиме (рабочие / рабочие места) и многое другое.
Если вы хотите глубже понять это, я предлагаю несколько ресурсов. Я большой поклонник сообщений Preethi. Вот серия из 3 частей:
Архитектура MVC и маршруты Rails
Теперь, когда мы понимаем, как работает Интернет, мы изучим архитектуру MVC и Rails Routes.
MVC означает модель, представление и контроллер.
В этой архитектуре у нас есть «разделение задач» между моделями, представлениями и контроллерами. Каждая часть несет свою ответственность. Давайте углубимся в каждую часть.
Модель
«Поддерживает связь между объектом и базой данных и обрабатывает проверку, ассоциацию, транзакции»
Это означает, что модель будет поддерживать экстремальные отношения с базой данных. Каждая модель (может) представлять таблицу базы данных (в случае баз данных SQL). Этот объект модели получает возможности (унаследованные от класса ActiveRecord - Rails) по извлечению, сохранению, редактированию и удалению данных из таблицы базы данных. Мы используем объекты модели как слой между нашим приложением и базой данных.
Помимо этой связи с базой данных, модель может создавать проверки и связи между модели.
Вид
«Представление данных в определенном формате, инициированное решением диспетчера предоставить данные».
Это представление ответа на запрос . Эта презентация может быть в нескольких форматах: PDF, HTML, JSON и т. д. Конечным результатом представления, скорее всего, будет пользовательский интерфейс (UI) - часть « Клиент ».
Для большинства веб-страниц представления будут выполнены в стиле HTML с использованием CSS и JS. Но мы можем реализовать PDF-файлы поведения пользователей в Цифровом продукте для путешествий, чтобы показать всем сотрудникам, как люди используют их веб-сайт.
Контроллер
«Средство в приложении, которое направляет трафик, с одной стороны запрашивая модели для конкретных данных, а с другой стороны организуя эти данные (поиск, сортировка) в форму, которая соответствует потребностям данного представления».
Контроллер - это «Маэстро». Он заботится о потоке: использует модели для выполнения запросов, анализа данных и принятия решений о том, в каком формате вы представляете данные.
Цикл MVC и маршрутов в приложении Rails
Итак, представьте, что мы работаем в Travel Startup. Частью продукта является представление путешественникам списка замечательных статей об историях путешествий и советов.
Просто подумайте с точки зрения путешественника. Вы переходите на www.worldpackers.com/articles
и видите красивую страницу со списком отличных статей.
Когда вы вводите этот URL-адрес в браузере, он отправляет запрос на сервер. На сервере у нас есть веб-приложение Rails. Маршрутизатор Rails проверяет, есть ли запись, соответствующая запрошенному URL.
Нам просто нужно настроить маршруты для этой строки:
Это создаст RESTful-маршруты для статей. Если мы запустим bundle exec rake routes
, он покажет список созданных путей.
Глагол HTTP может быть GET
, POST
, PATCH
, PUT
или DELETE
. И мы знаем, как Rails сопоставляет каждый PATH
правый controller
и action
. Подробнее здесь.
В нашем случае сервер получит /articles
путь и GET
в качестве HTTP-команды. Он будет соответствовать действиям ArticlesController
и index
.
В контроллере ArticlesController
мы используем модель Article
, чтобы получить все статьи из базы данных и отобразить просмотреть index.html.erb
как ответ сервера (пользовательский интерфейс).
По соглашению этот контроллер будет отображать представление в views/articles/index.html.erb
. По сути, это простой HTML-файл на Ruby.
Цикл запрос-ответ в Rails - одна из первых концепций, которые вам нужно понять, когда вы начинаете изучать веб-разработку.
Пользователь делает что-то (запрос к серверу), в приложении Rails есть маршрутизатор для сопоставления URL-пути с правильным контроллером. В контроллере мы можем делать все что угодно с моделью (или более чем одной моделью) - то есть получать, сохранять, редактировать, удалять данные - и отображать представление для пользователя.
Это все!
Здесь мы многому научились. Я надеюсь, что вы, ребята, оцените содержание и узнаете больше о том, как архитектура MVC и маршрутизация работают в Rails.
Это еще один шаг вперед на моем пути к изучению и освоению Rails и веб-разработки. Вы можете увидеть документацию о моем полном путешествии здесь, в моей публикации Renaissance Developer.
Если вы хотите пройти полный курс Ruby и Rails, научиться реальным навыкам программирования и создавать проекты, попробуйте One Month Ruby Bootcamp и Учебный курс Rails . Увидимся там ☺
Получайте удовольствие, продолжайте учиться и кодировать.
Надеюсь, вам понравился этот контент. Поддержите мою работу над Ko-Fi