Question - What makes an application complex ?
Ответ - Использование слова «сложный» в самом вопросе. Следовательно, общей тенденцией будет поиск комплексного решения с самого начала.
Question - What does the word complex means ?
Ответ - все, что неизвестно или частично понято. Пример: теория гравитации даже сегодня является СЛОЖНОЙ для меня, но не для сэра Исаака Ньютона, который открыл ее в 1655 году.
Question - What tools can I use to deal with complexity ?
Ответ - Понимание и простота.
Question - But I understand my application . Its still complex ?
Ответ - подумайте дважды, потому что понимание и сложность не сосуществуют. Если вы разбираетесь в огромном огромном приложении, я уверен, что вы согласитесь, что это не что иное, как интеграция небольших и простых модулей.
Question - Why all of the above philosophical discussion for a question on
Single Page Application (SAP)?
Ответ - Потому что,
-> SPA - это не какая-то недавно изобретенная базовая технология, для которой нам нужно изобретать велосипед для многих вещей, которые мы делаем при разработке приложений.
-> Это концепция, обусловленная потребностью в улучшении производительности, доступности, масштабируемости и удобства обслуживания веб-приложений.
-> Это довольно недавно идентифицированный шаблон проектирования, поэтому понимание SPA как шаблона проектирования имеет большое значение для принятия обоснованных решений об архитектуре SPA.
-> На корневом уровне ни один SPA не является сложным, потому что после понимания потребностей приложения и шаблона SPA вы поймете, что все еще создаете приложение, почти так же, как и раньше, с некоторыми изменениями и перестановками в подходе к развитию.
Question - What about the use of Frameworks ?
Ответ - Фреймворки представляют собой шаблонный код / решение для некоторых часто идентифицируемых и общих шаблонов, поэтому они могут снимать нагрузку x% (переменная, основанная на приложении) от разработки приложения, но тогда от них не следует ожидать много, особенно для тяжелых и растущие приложения. Всегда хорошо иметь полный контроль над структурой и потоком приложения, но, что наиболее важно, над его кодом. В коде приложения не должно быть серых или черных областей.
Question - Can you suggest one of the many approaches to SPA architecture ?
Ответ. Подумайте о своей собственной структуре, основанной на характере вашего приложения. Классифицируйте компоненты приложения. Ищите существующий фреймворк, который близок к вашему производному фреймворку, если вы его найдете, используйте его, если вы его не нашли, я предлагаю продолжить со своим. Создание фреймворка требует определенных усилий, но в долгосрочной перспективе дает лучшие результаты. Некоторыми основными компонентами в моей структуре SPA будут:
Источник данных: модели / коллекции моделей
Разметка для представления данных: шаблоны
Взаимодействие с приложением: События
Захват состояния и навигация: маршрутизация
Утилиты, виджеты и плагины: библиотеки
Дайте мне знать, помогло ли это хоть как-то и удачи в архитектуре СПА !!