Thursday, June 26, 2008

2. Мой друг - дерево.

Да, деревья - наши друзья. Они дают нам кислород, доски и яблоки. А еще они структурируют отображаемую информацию, позволяют погружаться по выбираемому направлению все глубже и глубже, деревья отображают иерархическое устройство мира. Именно благодаря свойству иеархичности деревья так популярны в области интерфейсостроительства. Любая среда разработки это прежде всего дерево проекта, где на верхнем этаже живут рабочие области или проекты а ниже объекты все мельче и детальне - пакеты, классы, методы... Тот же Эклипс это лес деревьев. Дерево проекта, дерево ресурсов, дерево иерархий, дерево вызовов, поиска, развернутого вида и т.д. и т.п. Что и говорить - тайга!

Ну раз их там так много, то добавление еще одного сильно дело не испортит. Итак, добавляем еще одно - гибкое, ЛЕГКО и ПРОСТО модифицируемое КОНФЕКС дерево. Для чего!? А хрен его знает, для всего. Изначально была мысль, и она реализована, сделать дерево для закладок по коду, т.е. стоите вы в каком-то месте кода, не важно на классе, методе или коментарии, главное, что бы было что выделить, выделяете это место в тексте и сажаете куда-нибудь на ветки конфекс-дерева (создаете в дереве новый узел Bookmark) . При этом автоматически создается и метка среды разработки, которая будет отслеживать все изменения в коде. Это происходит через стандартный механизм эклипсовских меток. Выделенная область должна быть по-возможности уникальна для данного файла, таким образом, можно будет впоследсвии восстановить метку, если букмарк среды разработки сотрется, или проект будет перенесен в другое рабочее пространство. Но это даже не важно. Главное что мы получаем возможность альтернативного иерархического гибкоизменяемого описания своего проекта.
Проблема стандартных эклипсовских деревьев в том, что они железные. Модифицировать и описать проект как тебе хочется в них нельзя. Кроме того, они строятся автоматически и имеют совершенно конкретное назначение а в конфекс-дереве вы можете расположить метку где угодно и сколько угодно раз, можете назвать ее по русски, по белорусски или украиски ну в общем уже хорошо. Главный минус конечно это затраты на ручное создание маркеров. Зато если не лениться в последствии все окупается сполна. Главное - выделить ключевые моменты, ключевые функциональности, а дальше, попав в нужную точку, в работу вступают замечательные эклипсовские Ctr-T и Alt-Ctrl-H иерархия определений и иерархия вызовов.

В эклипсе с недавних пор появился замечательный проект Mylar. Декларируется (и это кажется так!), что он сильно облегчает разработку путем создания неких контекстных фильтров на содержание проекта. Всеравно как если бы в лесу вы надели волшебные очки и вместо бурелома вдруг увидели отдельные кустики(пакеты) или веточки(классы), или даже листочки(методы!), именно те, которые нужны вам для конкретной задачи в данный момент. Причем, волшебные очки создаются полуавтоматически, плюс масса всякой удобной функциональности... Все классно! Но... вот как то не получается ЛЕГКО и ПРОСТО. Вот что плохо. Ну, по крайней мере для меня. Но проект супер.

No comments: