Об’єктно-орієнтований спосіб роботи з моделями та веб-додатками
Коли ми говоримо про концепцію моделей в об’єктно-орієнтованому програмуванні, ми зазвичай маємо на увазі клас, який є представленням даних, що зберігаються в базі даних.
Тобто, коли інформація зберігається в рядках і стовпцях, ми заповнюємо клас, його атрибути тощо цією інформацією, щоб ми могли передавати її до програми, маніпулювати нею за потреби, а потім, можливо, серіалізувати дані назад до бази даних.
Але у веб-додатку справедливо припустити, що для використання моделі може знадобитися бути можливим для інтерфейсу. Тобто уявіть, що зовнішній запит надсилає виклик серверу, запитує модель (або колекцію моделей), а потім відображає їх на інтерфейсі.
Хоча ця конкретна публікація не орієнтована на код, я все ж вважаю, що варто подумати над процесом перекладу моделі з сервера, а потім відобразити її на інтерфейсі веб-додатку.
Робота з моделями та веб-додатками
Уявіть на мить, що ваша програма має модель Employee. Ця модель може містити різноманітні атрибути, але можна припустити, що всі працівники матимуть:
- ім’я,
- прізвище,
- службове посвідчення,
- та адресу електронної пошти
Те, як ця інформація зберігається в базі даних, не є абсолютно неважливим, але це не так важливо для цієї дискусії.
Наприклад, можливо, є один запис, який містить всю цю інформацію, збережену в рядку JSON. З іншого боку, можливо, існує таблиця співробітників, де кожен рядок представляє працівника, а потім кожен стовпець представляє атрибут.
Деталі того, як інформація перекладається з бази даних (або, загалом, зі сховища даних) до класу, не такі важливі.
Однак зазвичай ми бачимо щось на зразок цього:
- Існує клас, який запитує інформацію,
- Інформація передається до Simple Factory ,
- Simple Factory створює екземпляр моделі ,
- Потім модель передається сторонньому класу, який її запитав.
З точки зору зображення, ви можете побачити це так:
З цього моменту Модель передається по всій програмі. Але тут вступає в дію початкова точка цієї публікації: як ми передаємо екземпляр Model (або колекцію Models) у інтерфейс програми?
Потік веб-додатку
Щоб було просто, припустімо, що ми будемо використовувати одну модель, а потім, якщо я перегляну цю концепцію з точки зору коду, ми можемо зануритися в неї трохи більше.
Однак загальний потік веб-програми буде приблизно таким:
- Користувач запускає дію, яка запитує екземпляр моделі,
- Інтерфейс здійснює виклик до кінцевої точки на сервері,
- Сервер читає запити та перевіряє їх дійсність,
- Потім надсилає представлення моделі на інтерфейс.
Інші розробники можуть не погоджуватися (на мій погляд, це завжди вітається та варто обговорювати), але я виявив, що серіалізація екземпляра моделі в JSON значно полегшує роботу на інтерфейсі завдяки функціональності JavaScript, оскільки стосується, гм, JSON.
Іншими словами:
- беремо модель,
- серіалізувати його в JSON,
- відправити через дріт,
- потім десеріалізуйте його на інтерфейсі в представлення самого себе JavaScript.
Це дозволяє нам маніпулювати ним так само, як і на стороні сервера; однак ми маємо справу з об’єктом JavaScript. Крім того, це дозволяє нам також вносити певні зміни та надсилати інформацію назад на сервер у іншому стані, з якого вона була надіслана.
Зрештою, це дозволяє нам зберегти дані назад у базу даних.
Погляд на високому рівні
І це життєвий цикл високого рівня передачі інформації від бази даних до моделі до зовнішнього і зворотного зв’язку.
Однак часто це допомагає побачити це в коді, тому, можливо, в наступній публікації я надам серію статей, які пояснять, як це зробити.
Тим часом, однак, не повинно бути важко перевести ваші реалізації в робочий процес Model-Serialization-Request-Send, як описано в цій публікації.