BERDAFLEX Software Systems
Главная > Eclipse > Книги > Eclipse RCP. Файловый менеджер

Введение

Теория без практики - ноль без палочки.

Данный материал – это попытка рассказать о методологии разработки коммерческих профессиональных программ на основе личного опыта и предпочтений автора. Автор не претендует на полное и единственно правильное освещение данной темы. Существует огромное количество технологий и методологий разработки. Можно долго спорить о преимуществах той или иной технологии, того или иного языка программирования. Все они имеют право на жизнь, а жизнь сама расставляет все по своим местам. Происходит автоматический селекционный отбор, неудачные и устаревшие решения вымирают как мамонты.

По ходу профессиональной деятельности автору пришлось разрабатывать самое разнообразное программное обеспечение от заказных информационных систем до сетевых игрушек для мобильных телефонов. Да и языки программирования применялись разнообразные, от CLIPPER, C++, Delphi до Java. По ходу профессиональной деятельности у автора многократно менялись взгляды как на процесс разработки программного обеспечения (ПО), так и на используемые языки программирования и среды разработки. Это был долгий путь и хочется отметить, что автору больше всего по душе Java и Delphi. Причем, Delphi на данный момент используется для быстрого создания прототипов программ, так как по скорости «клепания» временных решений тягаться с ним довольно сложно. А так как заказчики часто сами не знают, чего хотят, то приходится предлагать различные варианты. В ряде случаев, эти прототипы перерастают в полнофункциональные продукты, так как ранее скептически настроенных по отношению к Delphi заказчиков вполне устраивает конечный результат. Ну а что касается Java, то это не просто язык программирования, это огромный набор технологий для решения практически любых задач. Причем, в отличие от C++, написанный код является гораздо более читабельным. C++ имеет смысл применять лишь в приложениях, которые очень критичны к быстродействию.

Почему выбрана технология Eclipse RCP? Просто звезды так сошлись, или лучше скажем словами героя мультфильма: «Я хочу о нем поведать миру». Ну а если серьезно, несколько лет назад автору посчастливилось разрабатывать проект по созданию специализированных редакторов грамматики для систем распознавания речи по заказу одной крупной зарубежной компании. Проект требовалось выполнить в виде набора подключаемых модулей к Eclipse IDE еще 2-й версии. В результате работы над этим проектом был приобретен опыт по быстрому созданию крупных модульных приложений. Автору пришлась по душе тщательная продуманность и удобство использования данной технологии.

В результате того, что фирма IBM выделила Eclipse в свободный доступ, к данному проекту подключилось огромное количество разработчиков, которые быстро оценили открывшиеся возможности. Лояльная лицензия позволяет использовать код и среду разработки бесплатно, и при этом можно создавать закрытые коммерческие продукты. Но разработка расширений к среде разработки Eclipse IDE не удовлетворяла некоторых разработчиков. В результате чего предпринимались попытки использовать лишь часть предоставляемых модулей, чтобы не тащить в свои проекты не нужную функциональность. Начиная с 3-й версии Eclipse, была переработана архитектура всей системы с целью максимального разделения модулей и взаимосвязи между ними. В результате этого уже в версии 3.1 появился реально работающий механизм построения собственных продуктов на основе модулей Eclipse. Минимальный комплект поставки Eclipse Rich Client Platform (RCP) модулей составляет 6-7 мегабайт в зависимости от ОС. Размер типового коммерческого продукта составляет порядка 20-30 мегабайт. При этом мы получаем автоматическую систему апгрейда продукта, подсистемы помощи, обучения, презентации, многоязыковой поддержки и множество других необходимых коммерческому продукту функций. Чтобы оценить, насколько эта технология удобна, надо просто попробовать создать небольшой тестовый проект, и сделать для себя выводы. Стоит оно того или нет, каждый решает для себя сам.

Конечно, можно создать и более «легкие» версии программ, с использованием, например графической библиотеки SWT или SWING для построения интерфейса пользователя. Но при этом вам придется заново создавать то, что уже есть в готовом оттестированном виде. Нет смысла заново изобретать велосипед.

К сожалению, пока мало документации на русском языке и автор пытается привлечь внимание тех, кто сейчас стоит перед выбором технологий для новых проектов. Сравнительно молодая технология Eclipse RCP за несколько лет обрела заслуженную популярность и признание в мире. Создано уже несколько десятков успешных коммерческих продуктов. По адресу: http://www.eclipse.org/community/rcp.php приведен список наиболее известных из них. Информация по проекту RCP размещена по адресу: http://wiki.eclipse.org/index.php/Rich_Client_Platform

По сути, нам предоставляется унифицированный конструктор, собирая кубики которого, можно наращивать функциональность вашего приложения. Причем для решения большинства типовых задач разработки можно бесплатно использовать уже готовые кубики, в терминологии Eclipse это «подключаемые модули» (Plugins). Разрастание приложения больше не проблема, к тому же разбиение на модули упрощает организацию командной разработки. Графический интерфейс построен с использованием графической библиотеки SWT, что делает конечные программы неотличимыми от других программ используемой операционной системы (ОС). Быстродействие таких приложений не вызывает нареканий. Пользователи даже и не догадываются что это Java приложение. Для любителей нестандартных интерфейсов предусмотрена возможность создания настраиваемых стилей, которые позволяют произвольно менять как внешний вид приложения, так и поведение составляющих его компонентов.

Чтобы не писать об абстрактных вещах, попробуем создать небольшой полезный продукт. Так как автор многократно сталкивался с трудностями при работе с файлами в ОС Linux, то в качестве примера выбран файловый менеджер. Казалось бы, есть множество готовых решений, но привычка использовать дву панельные файловые менеджеры дает себя знать. Менеджер файлов ”Midnight Commander”, хоть и является приемлемым решением, но на фоне современных графических систем, навевает мысли о давно ушедших днях работы в командной строке времен DOS. Он больше подходит для системных администраторов, которые в большинстве случаев обходятся консолью и считают что это верх профессионализма. А универсальный файловый менеджер ”Konqueror”, хоть и позволяет приемлемо работать, но есть несколько мелочей, которые сводят на нет всю его мощь.

Rambler's Top100 Рейтинг@Mail.ru