Надежный помощник по имени FinalBuilder

Рано или поздно в жизни любого программного продукта, большого или маленького, наступает такой период, когда его надо собирать из разрозненных файлов с исходным кодом и вороха разных других вещей в единое целое. Это как раз тот период, когда на помощь команде создателей программы приходит FinalBuilder.


Вступление

Стоит заметить, что идею автоматизации финальной сборки программисты реализовали впервые не сегодня и даже не вчера. Даже в довольно старых пакетах для разработки программ можно найти такую утилиту, как make, которая берёт информацию о проекте из специального make-файла и вызывает в нужной последовательности компилятор, сборщик, компоновщик и разные другие утилиты. Так что FinalBuilder (как, впрочем, и остальные современные программы аналогичного толка) никак нельзя назвать пионером в своей области. Но это, наверное, не так уж на самом-то деле и плохо. Потому что пионерские технологии требуют некоторого времени на апробацию и внедрение. В то время, как новые реализации старых идей приходятся ко двору обычно сразу.

Впрочем, конечно, FinalBuilder стоит денег, как и подавляющее большинство других качественных программных продуктов (вот, я уже начинаю хвалить, даже толком ничего не сказав о нём - но, почитав далее, поймёте, почему). В условиях мирового кризиса на всём принято экономить, да и без кризиса как-то не слишком разумно вкладывать деньги в тот софт, который потом не будет использоваться в работе. И, естественно, FinalBuilder'у есть масса альтернатив, бесплатных и доступных каждому разработчику. Начинаются эти альтернативы с простых BAT-файлов (или их аналогов - shell script'ов для POSIX-систем) и заканчиваются такими общепризнанными утилитами-сборщиками, как ANT и Maven от Apache.

Конечно, пользоваться ANT'ом, о котором, кстати, я тоже когда-то писал в "Компьютерных вестях", гораздо экономичнее, нежели покупать FinalBuilder. Однако будет ли его использование удобнее? Дело в том, что подавляющее большинство бесплатных инструментов "заточены" под одну какую-то технологию, а если ваш проект предусматривает работы на стыке нескольких технологий или если ваша компания разрабатывает проекты с использованием разных платформ и желает унифицировать процесс сборки продуктов, то FinalBuilder, несомненно, будет более удачным решением в силу своей гибкости и разносторонности. Впрочем, думаю, вы сами придёте к мнению, стоит ли покупать FinalBuilder или нет, после прочтения этой статьи.


Знакомимся

Как и у всякой приличной разработки, у FinalBuilder есть собственная страница на сайте разработавшей его компании - www.finalbuilder.com/feature-tour.aspx. Там можно найти массу полезной информации о программе (которую я здесь в сжатом виде для экономии вашего времени и изложу), скачать дистрибутив пробной версии, ознакомиться с ценами и т.д., и т.п. Кстати, раз уж упомянул о ценах, в свете сказанного об экономической целесообразности покупки FinalBuilder'а стоит упомянуть и цены на этот программный продукт. Не сказать, что они демпинговые, но их вряд ли можно посчитать такими уж заоблачными для действительно крупных проектов. Самая дешёвая лицензия стоит $359, ну а самая дорогая сайт-лицензия - $5039.

После установки пробной версии и её запуска FinalBuilder выводит очень интересный мастер конфигурирования приложения. Так, предлагают выбрать, с какими сторонними продуктами столкнётся FinalBuilder в процессе своей работы. Пожалуй, уже из этого мастера можно узнать практически всё о поддерживаемых программой средах разработки, инсталляторах и прочих инструментах, без которых не обойтись в производстве программных продуктов. С их перечисления (краткого, конечно, - на полное, наверное, не хватило бы даже и половины всей газеты) я и начну.

Итак, первыми в списке для конфигурирования идут системы контроля версий. Среди прочих FinalBuilder поддерживает такие известные и популярные продукты данной категории, как Visual SourceSafe, Team Foundation Source Control, Team Coherence, Sourcegear Vault, Perforce, SubVersion, CVS, IBM/Rational ClearCase, Borland StarTeam, а также некоторые другие, чуть менее известные и популярные. Далее в списке поддерживаемых приложений идут компиляторы. Среди них - компиляторы Microsoft Visual Studio .NET, .NET Framework, RemObjects Chrome (не путать с Google Chrome!), Delphi и Borland C++, компиляторы Java, Visual Basic и Visual C++ 6 и ещё пара других. За компиляторами идут средства создания справочных систем, их в списке всего три: несравненный Help and Manual, средства от Microsoft и Doc-o-Matic. Среди поддерживаемых FinalBuilder'ом инсталляционных пакетов - InstallShield, WISE, InnoSetup, GP-Install, InstallAnywhere, NSIS, InstallAware, Advanced Installer, WiX и Setup Factory. За инсталляторами идут средства тестирования приложений и обфускаторы: NCover, AutiomatedQA TestComplete разных версий, TypeMock, .NET Reactor, MbUnit и другие. Поддерживает программа также интеграцию со средствами лицензирования приложений - их, как и средств создания справочных систем, всего три: Armadillo, ASProtect и ProActivate. Среди прочего программного обеспечения есть встроенная поддержка VMWare, Microsoft Virtual Server, Altova DiffDog, FogCreek CityDesk, Sisulizer и прочего. Ну и, наконец, в качестве финального аккорда конфигурирования нам предложат выбрать скриптовый язык, который будет использоваться в FinalBuilder'е (JavaScript, VBScript или PowerShell); количество билдов, запоминаемое в логах программы, а также стиль горячих клавиш.

Что ж, познакомившись с тем, с какими приложениями умеет интегрироваться и взаимодействовать FinalBuilder, думаю, пора перейти на то, как именно их умеет поддерживать эта программа. И что она вообще умеет делать - ведь не зря же, наверное, её разработчики просят у пользователей деньги.


Общение с FinalBuilder'ом

Первый же позыв при разговоре о работе с FinalBuilder'ом - это сравнить его с инструментом под названием Automated Build Studio, обзор которого я уже когда-то делал в "Компьютерных вестях". И действительно, эти программы очень похожи и по своей сути, и по интерфейсу, и даже в чём-то по предлагаемому стилю работы с ними. Впрочем, поскольку об Automated Build Studio я рассказывал уже довольно давно, стоит рассказать о работе с FinalBuilder'ом подробнее.

Как и в случае с другими инструментами для автоматизированной сборки проектов, то, над чем мы трудимся в FinalBuilder'е, это некоторый скрипт, который можно запустить одним движением руки и который выполнит за нас всю черновую работу: всё рассортирует по нужным директориям, запустит нужные программы, уберёт оставшийся после их работы мусор, внесёт нужные изменения в репозиторий и опубликует дистрибутив на сервере. Но, в отличие от того же ANT'а, в случае FinalBuilder'а мы избавлены от написания вручную конфигурационных XML-файлов, изучения синтаксиса командной строки нужных нам компиляторов или инсталляторов и прочих прелестей написания скрипта автоматизированной сборки. Вместо этого мы конструируем скрипт в визуальном режиме. Выбираем в списке команд нужную, устанавливаем флажки в опциях, добавляем (возможно) комментарий и, как белые люди, наслаждаемся созданным нами скриптом за чашкой кофе. В общем-то, именно за возможность создания скрипта для автоматической сборки проекта без изучения документации, плюс за гибкость FinalBuilder'а, о которой я уже упоминал, и просят с пользователей деньги разработчики этого программного продукта.

Что касается действий, которые доступны при создании скрипта в FinalBuilder'е, то они весьма разнообразны и многочисленны. Для удобства сгруппированы в специальные категории (.NET Tools, Archives, CD/DVD Burning, CVS, MSI и т.д. и т.п.). Категорий тоже довольно-таки много, и поначалу в них немудрено запутаться, но, думаю, после некоторого опыта общения с FinalBuilder'ом эта путаница исчезнет. Добавить в скрипт действие можно просто двойным кликом по нему в списке. После этого на экране незамедлительно появляется окно с опциями для данной команды, которые только и остаётся настроить и нажать кнопку "ОК".

Стоит отметить, что те, кто привык к виду написанного ими собственноручно кода на экране, вряд ли огорчатся. Дело в том, что создатели FinalBuilder'а стилизовали список команд на экране под код программы. Можно даже делать отступы и сворачивать ненужные в данный момент блоки "кода", вставлять комментарии между ними (какой же хороший код без комментариев!) и оборачивать всё это дело блоками try ... catch ... finally с помощью встроенных средств рефакторинга. То есть, видно, что FinalBuilder - это всё-таки продукт если не для программистов, то, по крайней мере, для людей, знакомых с программированием. Впрочем, программа поддерживает и скриптинг, и если есть необходимость всё же писать скрипт вручную, то можно написать его на каком-то из поддерживаемых языков и добавить в список команд FinalBuilder'а.

Что касается самого важного момента - выполнения созданных скриптов, то здесь никаких подводных камней или минусов замечено не было. Главное, чтобы на компьютере присутствовал весь тот софт, который вы используете в процессе сборки программного продукта, а то весь процесс, по вполне понятным причинам, не приведёт к положительному результату. Созданные в FinalBuilder'е скрипты можно, кстати, в нём же и отлаживать, причём отладка похожа на обычную отладку написанного вручную кода.

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


Резюме

Что ж, в целом, FinalBuilder стоит признать просто замечательным средством для автоматизированной сборки проектов. Разработчикам удалось найти нужный баланс между простотой и функциональностью, и с FinalBuilder'ом, с одной стороны, сможет управиться даже тот, кто не слишком силён в программировании, а с другой, если надо поправить его действия или реализовать что-то за рамками базовой функциональности, то всё к услугам программиста.

Вопрос о том, стоит ли покупать FinalBuilder или нет, остаётся, тем не менее, отрытым по той простой причине, что никто за вас не сможет правильно решить, оправдается эта покупка или нет. Главные преимущества FinalBuilder'а - это, повторюсь, удобство и гибкость. И за то, и за то нужно платить. Нужны эти качества от системы автоматизированной сборки или нет - решать вам.

Вадим СТАНКЕВИЧ,
[email protected]

Версия для печатиВерсия для печати

Номер: 

50 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!