Я в заголовке написал о целевой аудитории. Эти люди уже должны были ознакомиться с предоставленными вами ссылками. Либо же у них были причины, по которым они не смогли с ними ознакомиться. Мой же цикл — не пересказ англоязычных статей, а попытка донести уникальный материал. Тот, которого пока ещё нигде нет. Думаю, вы сами сможете в этом убедиться во второй части статьи.
А для людей, которые уже ознакомились с данными статьями, Ваша статья еще менее полезна (для меня, например). Вы просто описываете свой подход к реализации и он не обязательно должен быть таким, как вы описали.
Единственное, что Вы задели тему зависимостей между компонентами. Проблема зависимостей достаточно острая в Extjs и нигде не раскрыта. Было бы интересно, если бы вы раскрыли свой взгляд на борьбу с зависимостями, а не писали как дать названия папкам, в которых будут файлы храниться.
Как раз на борьбу с зависимостями первая статья и делает упор. Погодите делать выводы сейчас, пожалуйста. Возможно, вы поменяете своё мнение, когда увидите картину в целом (после окончания второй статьи).
Я сделаю более подробную вторую статью, но она не раскроет больше по тем топикам, по которым я прошёлся в первой. В этой статье фасадом является Layout.base, так как он достаточно точно следует определённому в вики термину. Но полемику по этому вопросу я здесь разводить не хотел бы.
Где же вы были раньше, я уже практически дописал админку для баннерной сети на ExtJS-е, компоненты, модули, плагины, довольно неплохо, если учесть, что знаком с ним всего пару недель :) Много, конечно, «костылей», но постепенно довожу код до ума.
Когда пишешь довольно большое приложение, возникает гора вопросов по поводу взаимодействия компонентов. Способы обращения к родительским и дочерним компонентам, использование параметров адресной строки для хранения открытой страницы (Ext.History) и много других вещей, после которых файловая структура отходит на задний план… Часто плюёшься от неочевидности некоторых решений, или наоборот, от уж излишне неадекватной реализации простых вещей.
К концу статьи мне бы хотелось, чтоб у читателя сложился каркас. Каркас — это вполне конкретная штука. Это то, с чего всё начинается. А детали реализации — это всего лишь детали.
Мне посоветовали не слать большую статью, а разбить её на небольшие, так как большие порции информации не всегда легко «глотаются». Видимо, это был хороший совет, раз вами кусок был проглочен за глоток кофе.
Я начинал изучать ExtJs не с туториалов, а с прочтения документации по API. Очень структурирует мозг перед началом проектирования и программирования клиентского приложения ;)
Простите, мне придётся с вами не согласиться. АПИ поможет реализовать, но не построить. В документации по апи нет ни слова о том, как начать писать приложение. Так что верным было бы всё же начать с туториалов.
Я не говорил, что туториалы нужно совсем отбрасывать. API поможет понять, что может делать фреймворк, понять его архитектуру лучше. (Как мне видится, приложение с использованием фреймворка все-таки делается с оглядкой на его архитектуру).
На счет туториалов у меня все-таки скептическое мнение, т.к. нормальных туториалов, рассказывающих, как правильно строить client-side приложения (архитектура) со всеми прелестями (расширяемость, масштабируемость, модульность, i18n, быстродействие и.т.п.), крайне мало, если есть вообще. По большей части это тизеры (функционал, примеры) или проба пера разработчика.
Но я горячо поддерживаю обоими руками начинания автора топика сделать нормальных туториалов больше.
Тоже сначала думал, что ExtJS хорошая библиотека для большого проекта: готовые виджеты, окна, плагины. Сначала всё вроде как ничего, но затем понадобилось писать свои дополнения или изменять существующие для своих нужд (в большом проекте без этого сложно обойтись). И началось. Пришло понимание того, что чтобы эффективно это делать надо быть просто гуру ExtJS + всё осложняется тем, что не все плагины стабильны.
Пришлось садится и думать что делать дальше, потому что с ExtJS тратилось просто неимоверное количество сил и времени на разработку. Выбор был за JQuery. Интегрировал и стало ясно: количество кода сократилось аж в 10 раз, множество поддерживаемых плагинов и фич, сама библиотка с дополнениями весит 180Кб против 610Кб у ExtJS. И скорость работы самой системы конечно очень сильно возросла. Легкость и простота понимания кода тоже рулят. В итоге сделал то же самое, но за время в 10 раз меньшее (и бесплатно)
Не сочтите за рекламу JQuery, просто есть негативный опыт работы с ExtJS и хотел поделиться с вами.
Я не хотел отпугивать. Правда. Для некоторых целей ExtJS подойдёт и каждый вправе сам решить что выбрать. Я просто хотел высказать свою точку зрения и рассказать про тот случай, который произошёл.
Если бы мне сказали про это раньше, то я бы не потерял несколько месяцев драгоценного времени.
Здесь нужно отметить, что если уж вы беретесь делать приложение с использованием ExtJS, то клиентскую часть нужно делать полностью на нем. 512Кб Javascript-кода должны чем-то оправдываться )) Для простого сайта подойдут более легковесные аналоги типа JQueryUI и иже с ними.
Но, соглашусь с jury, олбучение ExtJS требует времени. Однако, если все получится, то у вас в руках инструмент, который эмулирует почти все распространенные элементы GUI в окне броузера.
У меня была ровно противоположная история. Мне надоело ковыряться с зоопарком разнородных jquery компонентов. Для каждого свои стили, а иногда эти стили ещё и конфликтуют между собой, разные названия методов в разных плагинах, которые делают по сути одно и то же. Короче, лучше уж досконально разобрать один цельный фреймворк, но один раз, чем постоянно «открывать» для себя разные плагины jQuery.
P.S.
Ext по сути гораздо больше, чем фреймворк, фактически это что-то вроде Qt в мире javascript.
Архитектура клиентского приложения на ExtJS. Часть 1