Как стать автором
Обновить

Комментарии 28

сохраню ка я этот стартовый шаблончик… :)
Руководства на данную тему на сайте extjs.com (на английском):

http://www.extjs.com/learn/Manual:Component:Extending_Ext_Components
http://www.extjs.com/learn/Tutorial:Application_Layout_for_Beginners
http://www.extjs.com/learn/Tutorial:Writing_a_Big_Application_in_Ext

ну и весь список руководств:
www.extjs.com/learn/Tutorials

Думаю, начинающим будет легче понять английский вариант, чем эту статью на русском.
Я в заголовке написал о целевой аудитории. Эти люди уже должны были ознакомиться с предоставленными вами ссылками. Либо же у них были причины, по которым они не смогли с ними ознакомиться. Мой же цикл — не пересказ англоязычных статей, а попытка донести уникальный материал. Тот, которого пока ещё нигде нет. Думаю, вы сами сможете в этом убедиться во второй части статьи.
А для людей, которые уже ознакомились с данными статьями, Ваша статья еще менее полезна (для меня, например). Вы просто описываете свой подход к реализации и он не обязательно должен быть таким, как вы описали.
Единственное, что Вы задели тему зависимостей между компонентами. Проблема зависимостей достаточно острая в Extjs и нигде не раскрыта. Было бы интересно, если бы вы раскрыли свой взгляд на борьбу с зависимостями, а не писали как дать названия папкам, в которых будут файлы храниться.
Как раз на борьбу с зависимостями первая статья и делает упор. Погодите делать выводы сейчас, пожалуйста. Возможно, вы поменяете своё мнение, когда увидите картину в целом (после окончания второй статьи).
А еще я не согласен с Вашим употреблением термина «фасад».
В ООП он носит другой характер: Facade Pattern
Хотя, возможно тут я Вас не так понял… Просто мало написано очень…
Я сделаю более подробную вторую статью, но она не раскроет больше по тем топикам, по которым я прошёлся в первой. В этой статье фасадом является Layout.base, так как он достаточно точно следует определённому в вики термину. Но полемику по этому вопросу я здесь разводить не хотел бы.
Где же вы были раньше, я уже практически дописал админку для баннерной сети на ExtJS-е, компоненты, модули, плагины, довольно неплохо, если учесть, что знаком с ним всего пару недель :) Много, конечно, «костылей», но постепенно довожу код до ума.

Когда пишешь довольно большое приложение, возникает гора вопросов по поводу взаимодействия компонентов. Способы обращения к родительским и дочерним компонентам, использование параметров адресной строки для хранения открытой страницы (Ext.History) и много других вещей, после которых файловая структура отходит на задний план… Часто плюёшься от неочевидности некоторых решений, или наоборот, от уж излишне неадекватной реализации простых вещей.
Выбейте время на рефакторинг на проекте, если получится. Я себе уйму времени сэкономил в итоге, когда его закончил.
Внимание, в последнем блоке была допущена ошибка. Спасибо товарищу kirill533.
текста хватило на два печенья и глоток кофе.
согласен. сильно все сжато и в общих чертах. заходил с надеждой увидеть текст про архитектуру рич приложения
К концу статьи мне бы хотелось, чтоб у читателя сложился каркас. Каркас — это вполне конкретная штука. Это то, с чего всё начинается. А детали реализации — это всего лишь детали.
Мне посоветовали не слать большую статью, а разбить её на небольшие, так как большие порции информации не всегда легко «глотаются». Видимо, это был хороший совет, раз вами кусок был проглочен за глоток кофе.
огорчу вас, это совсем не комплимент с моей стороны, а с вашей стороны дешевый прием набора кармы.
Большое спасибо за ваши замечания. Они очень помогут мне написать очередную статью.
Я начинал изучать ExtJs не с туториалов, а с прочтения документации по API. Очень структурирует мозг перед началом проектирования и программирования клиентского приложения ;)
Простите, мне придётся с вами не согласиться. АПИ поможет реализовать, но не построить. В документации по апи нет ни слова о том, как начать писать приложение. Так что верным было бы всё же начать с туториалов.
Я не говорил, что туториалы нужно совсем отбрасывать. API поможет понять, что может делать фреймворк, понять его архитектуру лучше. (Как мне видится, приложение с использованием фреймворка все-таки делается с оглядкой на его архитектуру).

На счет туториалов у меня все-таки скептическое мнение, т.к. нормальных туториалов, рассказывающих, как правильно строить client-side приложения (архитектура) со всеми прелестями (расширяемость, масштабируемость, модульность, i18n, быстродействие и.т.п.), крайне мало, если есть вообще. По большей части это тизеры (функционал, примеры) или проба пера разработчика.

Но я горячо поддерживаю обоими руками начинания автора топика сделать нормальных туториалов больше.
Спасибо, взял на заметку.
Тоже сначала думал, что ExtJS хорошая библиотека для большого проекта: готовые виджеты, окна, плагины. Сначала всё вроде как ничего, но затем понадобилось писать свои дополнения или изменять существующие для своих нужд (в большом проекте без этого сложно обойтись). И началось. Пришло понимание того, что чтобы эффективно это делать надо быть просто гуру ExtJS + всё осложняется тем, что не все плагины стабильны.

Пришлось садится и думать что делать дальше, потому что с ExtJS тратилось просто неимоверное количество сил и времени на разработку. Выбор был за JQuery. Интегрировал и стало ясно: количество кода сократилось аж в 10 раз, множество поддерживаемых плагинов и фич, сама библиотка с дополнениями весит 180Кб против 610Кб у ExtJS. И скорость работы самой системы конечно очень сильно возросла. Легкость и простота понимания кода тоже рулят. В итоге сделал то же самое, но за время в 10 раз меньшее (и бесплатно)

Не сочтите за рекламу JQuery, просто есть негативный опыт работы с ExtJS и хотел поделиться с вами.
Да, учиться работать с Extjs — это то же самое, что научиться программировать на еще одном языке программирования. Но не нужно отпугивать людей.

Вы могли бы таки добить Extjs и стать Гуру.
Я не хотел отпугивать. Правда. Для некоторых целей ExtJS подойдёт и каждый вправе сам решить что выбрать. Я просто хотел высказать свою точку зрения и рассказать про тот случай, который произошёл.

Если бы мне сказали про это раньше, то я бы не потерял несколько месяцев драгоценного времени.
Здесь нужно отметить, что если уж вы беретесь делать приложение с использованием ExtJS, то клиентскую часть нужно делать полностью на нем. 512Кб Javascript-кода должны чем-то оправдываться )) Для простого сайта подойдут более легковесные аналоги типа JQueryUI и иже с ними.

Но, соглашусь с jury, олбучение ExtJS требует времени. Однако, если все получится, то у вас в руках инструмент, который эмулирует почти все распространенные элементы GUI в окне броузера.
У меня была ровно противоположная история. Мне надоело ковыряться с зоопарком разнородных jquery компонентов. Для каждого свои стили, а иногда эти стили ещё и конфликтуют между собой, разные названия методов в разных плагинах, которые делают по сути одно и то же. Короче, лучше уж досконально разобрать один цельный фреймворк, но один раз, чем постоянно «открывать» для себя разные плагины jQuery.

P.S.
Ext по сути гораздо больше, чем фреймворк, фактически это что-то вроде Qt в мире javascript.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории