Объектно-ориентированный способ работы с моделями и веб-приложениями
Когда мы говорим о концепции моделей в объектно-ориентированном программировании, мы обычно имеем в виду класс, представляющий данные, хранящиеся в базе данных.
То есть, когда информация хранится в строках и столбцах, мы заполняем класс, его атрибуты и т. д. этой информацией, чтобы мы могли передавать ее по приложению, манипулировать ею по мере необходимости, а затем, возможно, сериализовать класс. данные обратно в базу данных.
Но в веб-приложении справедливо предположить, что модель должна быть доступна для использования во внешнем интерфейсе. То есть представьте, что внешний запрос обращается к серверу, запрашивает модель (или набор моделей), а затем отображает их на внешнем интерфейсе.
Хотя этот конкретный пост не ориентирован на код, я все же думаю, что стоит продумать процесс трансляции модели с сервера и последующего рендеринга ее во внешнем интерфейсе веб-приложения.
Работа с моделями и веб-приложениями
Представьте на мгновение, что ваше приложение имеет модель Employee. Эта модель может включать множество атрибутов, но можно с уверенностью предположить, что все сотрудники будут иметь:
- имя,
- фамилия,
- идентификатор сотрудника,
- и адрес электронной почты
То, как эта информация хранится в базе данных, не так уж неважно, но это не так важно для нашего обсуждения.
Например, возможно, есть одна запись, содержащая всю эту информацию, хранящуюся в строке JSON. С другой стороны, возможно, есть таблица сотрудников, в которой каждая строка представляет сотрудника, а затем каждый столбец представляет атрибут.
Детали того, как информация транслируется из базы данных (или, в более общем случае, хранилища данных) в класс, не так важны.
Однако обычно мы видим что-то вроде этого:
- Есть класс, который запрашивает информацию,
- Информация передается простой фабрике ,
- Простая фабрика создает экземпляр модели ,
- Затем модель передается стороннему классу, который ее запросил.
С точки зрения изображения вы можете увидеть это так:
С этого момента Модель передается по всему приложению. Но именно здесь вступает в игру начальная точка этого поста: как мы передаем экземпляр модели (или набор моделей) во внешний интерфейс приложения?
Поток веб-приложения
Для простоты предположим, что мы собираемся использовать единую модель, а затем, если я вернусь к этой концепции с точки зрения кода, мы можем углубиться в нее еще немного.
Однако общий поток веб-приложения будет примерно таким:
- Пользователь инициирует действие, которое запрашивает экземпляр модели,
- Интерфейс выполняет вызов конечной точки на сервере,
- Сервер читает запросы и проверяет их правильность,
- Затем отправляет представление модели во внешний интерфейс.
Другие разработчики могут не согласиться (что, на мой взгляд, всегда приветствуется и заслуживает обсуждения), но я обнаружил, что сериализация экземпляра модели в JSON значительно упрощает работу с внешним интерфейсом из-за функциональности JavaScript, поскольку он относится к, гм, JSON.
Другими словами:
- берем модель,
- сериализовать его в JSON,
- отправить его по проводу,
- затем десериализуйте его на внешнем интерфейсе в JavaScript-представление самого себя.
Это позволяет нам манипулировать им так же, как на стороне сервера; однако мы имеем дело с объектом JavaScript. Кроме того, это позволяет нам также вносить определенные изменения и отправлять информацию обратно на сервер в другом состоянии, из которого она была отправлена.
В конечном итоге это позволяет нам сохранять данные обратно в базу данных.
Перспектива высокого уровня
И это высокоуровневый жизненный цикл передачи информации из базы данных в модель, во внешний интерфейс и обратно.
Тем не менее, часто бывает полезно увидеть это в коде, поэтому, возможно, в одном из будущих постов я предоставлю серию статей, в которых показано, как это сделать.
Тем временем, однако, не должно быть сложно перевести ваши реализации в рабочий процесс Model-Serialization-Request-Send, как описано в этом посте.