Вы новичок в веб-разработке и хотите создать веб-приложение. Вы можете начать с Ruby on Rails, который представляет собой устоявшуюся основу для создания веб-сайтов. Технически, это программная библиотека, содержащая ОЧЕНЬ МНОГО кода Ruby, написанного другими, что делает ее жемчужиной! См. Мой пост о драгоценных камнях, чтобы узнать больше о аккуратно упакованном коде Ruby.
Я думаю, что когда вы хорошо понимаете, как работает Rails, это помогает понять основы общей картины, поэтому давайте вернемся на уровень выше и поговорим о том, как работает Интернет. И я имею в виду Интернет, а не Интернет. Если вы думали, что это одно и то же, вы точно не одиноки. На самом базовом уровне разница в том, что Интернет - это физическое соединение компьютеров друг с другом (оборудование), а Интернет - это программное обеспечение. На диаграмме ниже вы можете видеть, что весь мир пересечен сетью оптоволоконных кабелей, которые на самом деле в основном находятся под водой. Заманчиво думать об «облаке» как об облаке где-то в небе, возможно, с использованием спутников, но почти все наше основное интернет-соединение находится на дне океана.
Интернет, с другой стороны, представляет собой набор правил того, как компьютеры взаимодействуют друг с другом. Сеть, вероятно, является наиболее часто используемой интернет-службой, и способ ее работы заключается в использовании протоколов. Существует множество различных протоколов, которые управляют работой Интернета, например IP (Интернет-протокол - у каждого компьютера есть «адрес»), TCP (протокол управления передачей - как устанавливается соединение и передаются данные) и тот, который мы Сегодня мы в основном говорим о HTTP (протокол передачи гипертекста).
Протокол передачи гипертекста
Серверы - это компьютеры, напрямую подключенные к Интернету (подумайте: кабели). У них есть уникальный IP-адрес, который позволяет пользователям получать к ним доступ для получения информации. Когда мы вводим «www.google.com» в URL-адрес браузера, мы используем доменное имя, псевдоним для IP-адреса сервера Google, который на самом деле представляет собой серию чисел.
Компьютер, который вы используете для чтения этой статьи, также имеет IP-адрес, который серверы будут использовать для отправки вам информации. Если вас интересует ваш собственный IP-адрес, вы можете ввести «What’s my IP address» в google.com, и он вам скажет!
Ваш браузер (например, Chrome, Firefox, Safari и т. Д.) Известен как клиент. Ваш браузер загружает запрошенные веб-страницы через серию HTTP-запросов к серверам.
Когда сервер получает запрос (который, как ни странно, поступает в читаемой текстовой форме), он находит запрошенную веб-страницу и отправляет ее обратно клиенту. Если он не может найти конкретную запрошенную страницу, он отправит обратно сообщение об ошибке. Он всегда должен давать какой-то ответ.
Чтобы убрать слой тайны, вот как выглядит HTTP-запрос, если я наберу google.com в своем браузере.
Чтобы разбить это:
- URL-адрес запроса: доменное имя / псевдоним адреса сервера Google.
- Метод запроса: наиболее часто используются методы GET, PUT, PATCH, POST, DELETE. Все они относятся к операциям, которые будут выполнены. В этом случае я просто хотел, чтобы отображалась страница Google, поэтому ввод google.com инициировал запрос GET.
- Код состояния: информация об успешном выполнении запроса. Если, например, вы получите код состояния 404, это будет означать, что страница не найдена. (Https://httpstatusdogs.com/ для милых собак и кодов статуса)
- Удаленный адрес: IP-адрес сервера.
- Политика реферера: мы не будем углубляться в это, но это информация, которая будет отправлена вместе с запросом.
Теперь, когда мы знаем, как выглядит HTTP-запрос, мы можем поговорить о шаблоне MVC - Модель, Представление, Контроллер.
- База данных - это место, где хранятся все ваши данные. Это таблицы, которые вы построили (обычно соответствующие вашим моделям), которые также хранят отношения между объектами. Доступ к нему осуществляется через запросы SQL.
- Модели - это объекты, которые вы создали для своего приложения, а ActiveRecord позволяет моделям взаимодействовать с базой данных, сохраняя, удаляя и обновляя записи. (Дополнительный обзор см. В Руководстве по ActiveRecord моего товарища по когорте.) Модели также управляют проверками приложений и настраиваемой логикой для ваших объектов и приложений.
- Раздел «Маршрутизация» - это маршал авиации вашего веб-приложения. Маршруты интерпретируют HTTP-запрос и направляют его соответствующим образом.
- Контроллеры взаимодействуют со своей связанной моделью, а затем передают эту информацию в представление, которое отображается обратно в браузер, чтобы вы могли видеть на своем экране.
Вернемся к диаграмме. Вы начинаете в своем браузере, где вы вводите (например) icecreamflavors.com, который я создал с помощью Rails и размещен на веб-сервере. Это HTTP-запрос GET.
В Rails я построил серию маршрутов (желтое поле), которые будут читать этот запрос и определять, на какой контроллер его отправить, а также какое действие вызывать внутри контроллера. Как правило, каждая модель будет иметь свой собственный контроллер с рядом действий в каждой, и часто есть дополнительные контроллеры для более абстрактных вещей, таких как «сеанс».
В этом конкретном случае, набрав icecreamflavors.com, вы перейдете на главную страницу со всеми вкусами мороженого. Маршрут направит вас к контроллеру вкусов мороженого, где действие для просмотра всех вкусов называется «индекс». Мой метод индекса вызовет модель IceCreamFlavor, которая получит все ароматы из базы данных и вернет их контроллеру.
Затем контроллер может передать эту информацию на страницу просмотра для просмотра всех вкусов мороженого, что вы и увидите в своем браузере.
Следует отметить еще одну вещь, которая делает Rails особенно удобным для пользователя. Rails твердо верит в концепцию «соглашения важнее конфигурации». Это означает, что Rails принимает за разработчика множество обыденных решений. Например, когда вы набираете rails new
, для вас создается вся файловая структура приложения. Контроллеры всегда будут находиться в разделе контроллеров папки приложения. Действие index в контроллере будет отображать страницу просмотра индекса, даже если она явно не закодирована для этого разработчиком этого конкретного приложения.
Отказ от принятия множества индивидуальных решений по основам позволяет разработчикам легко переходить к другим проектам, не теряясь полностью. Документация для Ruby on Rails, как известно, очень хороша, и я настоятельно рекомендую этот раздел, если вы хотите больше узнать о соглашениях, а не о конфигурации и о способе разработки приложений омакасе.
Надеюсь, эта статья помогла вам лучше понять, как Rails работает в общей схеме Интернета, и теперь вы готовы создавать свои собственные веб-сайты :)
Удачного кодирования!