| « Сколько Flex-разработчиков в России и бывшем СССР? | Вышла Omea 2.2 » |
Идеальный проект
В нашей жизни нет ничего идеального. Но давайте помечтаем. Как вы видите идеальную организацию проекта?
Я, например, придерживаюсь простого взгляда на вещи:
Идеальный проект должен всегда собираться. Достаточно скачать его из системы контроля версий, запустить билд (скажем, Ant-овский) - и вуаля! Что это значит? Это значит, что все настройки, которые могут изменяться на каждой отдельной машине, должны быть экстернализированы. Но одной экстернализации мало: если я сделаю Check out такого проекта, то мне все равно не будет сразу понятно, какие свойства и в каком файле должны быть установлены. Мне придется изучать билд-файл, экспериментировать. Не знаю, как у вас, а для меня это порядочный стресс: я собрался поработать с проектом, исправить баг или еще что. Проект, например, сложный, требующий концентрации. А тут головоломка с билдом. После ее решения мне захочется пива, но уж никак не исправления бага.
Как все это можно организовать? Да просто! Скажем, у нас есть путь к серверу, на который деплоится наше приложение. И хранится он в свойстве application.root. Почему бы не написать в билде так:
XML:
<propertyfile="local.properties"/><fail><condition><not><issetproperty="application.root" /></not></condition>Ошибка!Вам следует установить свойство application.root (путь к приложению на сервере)в файле local.propertiesкоторый должен находиться в одном каталоге с build.xml!Например:application.root = C:\\apache-tomcat\\webapps\\myapp</fail>Это следует написать прямо в начале билд-файла. И на простом и естественном человеческом языке пользователь получит информацию, что и где надо установить. А сам файл local.properties ни в коем случае не вздумайте хранить в системе контроля версий!
В итоге никакого стресса. Скачали проект, запустили билд, получили всю информацию, установили все локальные свойства, счастливо продолжили работу. Рабочий день получился продуктивным!Идеальный проект должен всегда собираться. Если ваш проект состоит из нескольких подпроектов, то все же неплохо иметь информацию об их зависимостях. Например, клиентский проект деплоится на сервер, которому посвящен отдельный проект, а сам клиентский проект зависит от проекта, содержащего компоненты. И сами по себе они все билдятся, но вот незадача: вы можете даже не знать, что ваш проект зависит от другого. Документация? Неплохо, но ее еще надо найти, да и вообще догадаться прочитать. Readme.txt? Тоже хорошо. Но зачем? Почему бы просто не вывесли эту информацию прямо в билдфайле?
XML:
И все. Документация содержится прямо в коде.<echo>Перед сборкой данного проекта стоит собрать проект X.</echo>- Идеальный проект должен… Да ничего он вам не должен!
Хватит читать! Хватит мечтать! Пора за работу!
Трекбек адрес этой записи
URL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку)