Я модернизирую устаревшее веб-приложение с его интерфейсом на основе ExtJS 3.x.ExtJS 3 Code Architecture: лучший способ организовать файлы классов и загрузить их динамически
В настоящее время пользовательский интерфейс зависит от большого файла нескольких тысяч строк со слишком большим количеством вложенных анонимных функций, инкапсулированных в глобальный файл `Ext.onReady() для каждого файла. Это уродливое, нечитаемое и не поддающееся контролю.
Чтобы сохранить код и модернизировать его, я хочу постепенно refactorize его:
- с использованием пространств имен
- взрывающиеся большие файлы: один класс на файл (сетка, магазин, форма ...)
- организующех файлов классы в хорошей структуры каталогов (приложение/модуль/сетка | магазине | ...)
- загружать динамически класс файлов, если требуется (возможно, с Ext.Loader.load()?)
- оптимизируя загрузку с использованием minifier, в качестве усложнения, если возможно (на следующем шаге).
Всей этой проблематики, кажется, изначально решен в ExtJS 4, с загрузчиком класса, его система зависимостей (require
), его Application
Singleton и ее конвенция папки структуры ...
В ExtJS 3, это кажется более смущенным. Итак:
- Каковы лучшие практики в extjs 3 для организации кода «как» в extjs 4?
- У вас есть четкие примеры, иллюстрирующие эти проблемы?
Хорошо, спасибо за полезный ответ. Точка 2 кажется хорошим способом, но мне немного стыдно отделять компоненты «вид» (сетка, форма, панель инструментов и т. Д.) От организованных «слушателей» классов, а также контроллеров в ExtJS 4. Другая идея для этого момента ? – Koryonik
Поскольку в 3 контроллерах нет, то, что я называл видом, будет включать в себя логику, которая обычно находится в контроллере. С достаточным усилием или с участием другой структуры вы можете получить такой тип разделения, но поскольку вы просто рефакторинг, я бы просто сделал его частью класса, как это было раньше. – g3k0