Много о каких инструментах, применяющихся при разработке программного обеспечения, рассказывал я уже на страницах "Компьютерных вестей". Но такого пока что (если меня, конечно же, не подводит память) не было. Так что давайте сейчас прямо с ним и познакомимся.
Что такое Automated Build Studio?
Как говорится в справке к этой программе, "Automated Build Studio is a powerful build and release management system". То есть, эта программа является системой управления билдами (которые в русскоязычной литературе многие авторы называют сборками и другим тоже советуют пользоваться этим словом) и релизами. В общем-то, всё, вроде бы, понятно, однако возникает вопрос: а зачем, собственно, такая программа вообще кому-то может быть нужной? Вопрос, впрочем, возникнуть может только у тех, кто подобными инструментами не пользовался, а вместо этого, вероятно, записывал всю нужную информацию о релизах и билдах на листочке.
Если вы работаете над каким-то проектом в одиночку (в принципе, ситуация по-прежнему не такая уж и редкая), то вам действительно не нужна, по большому счёту, даже система контроля версий. Но когда над проектом работают уже хотя бы трое или пятеро программистов, то без какой-нибудь CVS, SVN или Visual SourceSafe становится тяжко. Но сама по себе система контроля версий не способна обеспечить качественную работу с билдами, которые многие (например, такой уважаемый и авторитетный человек, как Джоэл Спольски) рекомендуют делать ежедневно. В релизах тоже, кстати, запутаться немудрено, даже если выпускать их сравнительно нечасто.
В принципе, нельзя сказать, чтобы Automated Build Studio была таким уж жизненно необходимым и совершенно безальтернативным инструментом. Напротив, поскольку мы говорим о разработке программного обеспечения, то здесь альтернатива есть всегда - хотя бы даже в виде написания собственного подобного инструмента. Пусть не на C++ с последующей многочасовой/многодневной/многомесячной отладкой написанного, но, например, на каком-нибудь скриптовом языке - хотя бы даже VBScipt'е. Но здесь в дело вступает новый игрок, которого экономисты и люди смежных с ними профессий (к примеру, юристы) называют упущенными возможностями. То есть, в пересчёте на убытки, которые понесёт проект за то время, что программисты потратят не на него, а на написание системы менеджмента билдов, эта система получится если не золотой, то уж, по крайней мере, серебряной. Так что, в итоге, приобретение специализированного программного продукта для решения этой задачи будет и дешевле, и эффективнее. Ну а какой продукт приобретать, вы уже сами сможете решить, прочитав этот обзор.
А что эта программа умеет?
Для начала скажу, где можно найти Automated Build Studio во Всемирной паутине. Сделать это, на самом-то деле, совсем не сложно, потому что можно скачать дистрибутив с сайта компании-производителя, расположенного по адресу www.automatedqa.com.
Работа с билдами и релизами - вещь непростая, и недаром выше я поминал (кажется, добрым словом) скриптовые языки, которые можно для этого дела использовать. В общем-то, путь, который предлагает Automated Build Studio, тоже в чём-то похож на использование этих самых скриптовых языков, хотя, впрочем, отличается при этом в плане скорости создания сценариев. Дело в том, что хотя для автоматизации сборки проектов этот программный продукт и предлагает использовать макросы, тем не менее, они конструируются в нём визуально и содержат команды, которые напрямую относятся к процессу сборки проектов.
"Настоящие крутые перцы" от программирования могут сказать, что это не серьёзно - использовать программу, в которой даже макросы конструируются визуально, в то время как они могут, что называется, "на коленке склепать" за пару часов полноценную систему работы с билдами. Но, к счастью, человечество всё же переходит к технологиям, которые экономят время, вместо того, чтобы расходовать его каждый раз на решение с нуля уже давно решённых задач. Другое дело, что изрядная часть их сэкономленного времени уходит на изучение этих всех технологий, но это уже, как говорится, издержки прогресса.
Automated Build Studio, позволяя конструировать макросы визуально, в качестве команд поддерживает элементарные действия, которые мог бы совершать вручную специально обученный человек, занимающийся билдами, - например, логгирование действий, сравнение файлов между собой по содержимому, выполнение SQL-скриптов. Automated Build Studio поддерживает работу с популярными системами контроля версий, компиляторами и средствами создания установочных дистрибутивов программного обеспечения. В их списке - Perforce, Team Coherence, StarTeam и многие другие системы контроля версий; компиляторы из состава Visual Studio, в том числе и для карманных устройств (smart devices), а также уже менее компиляторы от Borland/CodeGear, компилятор Java, компиляторы от Intel и GCC; компиляторы файлов справки в разных форматах. Среди поддерживаемых инсталляторов такие популярные продукты, как InstallShield, Wise Installation System, InnoSetup, NSIS, InstallAnywhere и InstallAware, Ghost Installer; а в списке других поддерживаемых полезных вещей - средства компрессии и защиты кода исполняемого файла, менеджеры патчей и прочие приложения. Полный список поддерживаемых инструментов растянулся бы не на одну газетную страницу.
Весьма полезной представляется при работе с большими проектами возможность параллельного выполнения нескольких операций. Само собой, особенно эффективным этот механизм будет на компьютерах с несколькими процессорами или хотя бы на тех, где есть процессор с несколькими ядрами, но, в принципе, само по себе неплохо уже хотя бы то, что можно не ожидать завершения какой-то операции, занимающей много времени, а запустить другую, не менее срочную, параллельно ей.
Ещё одна весьма небесполезная возможность - удалённый запуск макросов. То есть, вы на своём компьютере делаете какой-то макрос, а потом говорите Automated Build Studio, что запустить его нужно на другом. А сами только сидите и следите, как он там вдалеке выполняется. Если вам что-то не понравится, можно всё прервать и спокойно разобраться, почему что-то пошло не так, как было запланировано. Благодаря использованию web-интерфейса это возможно делать даже в том случае, если у вас на компьютере сама Automated Build Studio не установлена (но на сервере она, конечно же, быть должна).
Для анализа макросов можно применять диаграммы и графики. Это относится как к макросам, запускаемым локально, так и к тем, которые есть необходимость запустить удалённо. Графики отражают процент успешных запусков, частоту выполнения тех или иных макросов, продолжительность, занимаемую во времени процедурой сборки проекта. Эта информация может оказаться довольно полезной, так что графиками пренебрегать не стоит.
Если вам покажется, что возможности визуального редактирования макросов себя исчерпали, то вы сможете запрограммировать операции для сборки проекта с помощью встроенного в Automated Build Studio редактора скриптов. Он поддерживает три скриптовых языка (VBScript, JScript и DelphiScript), простые по своему синтаксису и лёгкие в освоении. Ну а для полноценного программирования макросов в среде разработчики Automated Build Studio предоставили пользователям отладчик макросов, доступный прямо из главного меню программы. Отладчик этот ничем, в общем-то, от других подобных отладчиков не отличается и может быть освоен любым программистом в самые что ни на есть кратчайшие сроки.
Automated Build Studio не была бы полноценным средством сборки проектов, если бы не поддерживала эту процедуру по заданному заранее расписанию. Однако, поскольку она это дело поддерживает, то полноценным средством её можно считать со всеми на то основаниями. В придачу к этой возможности будет весьма полезной такая вещь, как автоматическое извещение о результатах выполнения того или иного макроса, посредством Windows Messenger, MSN Messenger, Windows Live Messenger, ICQ или электронной почты. В последнем случае к письму можно указать прикладывать и логи выполнения макроса, чтобы быть совсем уж точно уверенным во всех его этапах. Вместе эти средства дают прекрасную возможность организации ежедневных билдов после окончания рабочего дня - и рабочее время на билды тратиться не будет, и в то же время все будут в курсе того, чем тот или иной билд в итоге закончился.
Для программистов, использующих такую популярную и во всех отношениях уважаемую разработчиками среду, как Microsoft Visual Studio, хорошей новостью будет то, что Automated Build Studio поддерживает автоматическую интеграцию с этой средой разработки. Макросы Automated Build Studio могут быть запущены из MSBuild, а также из Visual Studio 2005 Team Explorer, что несколько упрощает разработчикам работу с ними.
Для вящей автоматизации всех мыслимых производственных процессов при разработке программ Automated Build Studio предлагает такие вещи, как поддержка параметров командной строки и работа в режиме COM-сервера. Для экономии ресурсов можно при запуске макросов использовать консольное приложение AutomatedMacroPlayer.exe, которое будет работать с ними ничуть не хуже, чем сама та среда, в которой они были созданы, а ресурсов при этом потреблять будет меньше. Ну а если нужно запустить макрос из какого-то скрипта (например, на VBScript'е), то можно заставить Automated Build Studio быть COM-сервером.
Подведём итоги
В общем-то, рассказывать о том, что умеет эта во всех смыслах хорошая и полезная программа, можно долго. Я бы даже сказал, очень долго. Только вряд ли имеет очень большой смысл разводить слишком уж много разговоров на её тему, потому что это тот самый случай, когда лучше один раз увидеть и попробовать программный продукт в действии, чем сто раз услышать.
К тому, что уже сказано об этой программе выше, добавить можно немногое. Разве что сказать, что у неё очень удобный для пользователя интерфейс, который запросто осваивается буквально за пару минут, и что Automated Build Studio имеет открытую архитектуру, расширяемую с помощью плагинов. Так что если вы купите программу и обнаружите, что чего-то не хватает, то можно быстренько написать плагин - это всё же проще, чем писать собственную систему управления сборками проектов. Но, в общем-то, такое вряд ли вам понадобится, поскольку умеет Automated Build Studio довольно много, а, значит, вероятность того, что нужной лично вам функциональности в этой программе не окажется, стремится к нулю.
Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by