Создавать большие веб-приложения с развернутой логикой клиентской части всегда было нелегким делом. При создании крупных проектов имеется множество сложностей в написании кода, его организации и сопровождении. Проекты имеют тенденцию быстро становиться неконтролируемыми, как только вы добавляете новый функционал или привлекаете дополнительных разработчиков. Ext JS 4 имеет новую прикладную архитектуру, которая не только организует кодовую базу, но и уменьшает количество кода, которое необходимо написать.
Наша архитектура придерживается паттерна MVC (Модель-Вид-Контроллер). В мире существует множество MVC-архитектур, которые несколько отличаются друг от друга. Мы определяем свою архитектуру так:
- Модель - это набор полей и содержащихся в них данных (например, модель "Пользователь" может содержать поля "ИмяПользователя" и "Пароль"). Модели знают как читать и сохранять рабочие данные через подсистемы работы с данными и могут ассоциативно объединяться с другими моделями. Модели работают почти так же как и класс Record в Ext JS 3, и в общем случае работают с Хранилищами (Stores), предоставляя данные для таблиц (Grids) или для каких-либо еще компонетов интерфейса.
- Вид (или Представление) - это какой-либо экранный компонент. Например, таблицы, деревья, панели - всё это является видами.
- Контроллер - это специальное место, в котором находится код, отвечающий за работу приложения - будь то отрисовка представлений, инстанцирование моделей или реализация логики приложения.
В этом уроке мы покажем как создать простое приложение для управления учетными записями пользователей. К концу урока вы поймете как нужно писать небольшие приложения в рамках архитекуры Ext JS 4.
Архитектура приложения определяет, как должны располагаться и взаимодействовать между собой классы и как должен быть организован весь код фреймверка. Обязательно использование принятых в фреймверке соглашений раскрывает много возможностей:
- Каждое приложение работает по одним и тем же принципам, которые необходимо изучить один раз;
- Легко организовывать повторное использование кода в разных приложениях, так как все везде работает одинаково;
- Вы можете использовать наш инструментарий чтобы создавать оптимизированные версии ваших приложений для использования "в продакшене".