Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

пятница, 11 декабря 2009 г.

Еще один день в паре: 1) делаем чаще перерывы 2) Incremental Publish Model 3) общение с заказчиком посредством прототипов

Сутра моя напарница предложила сразу делать перерывы почаще, раз в два часа. Я предложил раз в час. Хорошо.

Перерывы они нужны, потому что иначе под вечер вообще дурной и продуктивность во второй половине хромает.

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

А еще сегодня мы сделали открытие в вдовем (почему оно открылось смотрим тут). Три года работаю в этом Eclipse с JBoss и только сегодня совершенно случайно нашли одну фичу. Раньше я все время думал что это бага, а оказалось фича. Идея вот в чем. Чтобы протестировать изменения в Model нужно его собрать и задеплоить в JBoss (он собирается в отдельный ear файл, отдельно собирается и View+Controller). Передеплой раньше занимал не больше минуты, но вот случилось нечто, после чего приходилось с каждым деплоем Model перезапускать весь JBoss сервер, а это уже до 3х минут. Какой тут нафиг ТДД? 3 минуты на одну итерацию это через чур. Приходилось ухищряться и уходить от рекомендаций Кент Бека не более одного теста за итерацию: пока идет перезапуск JBoss пишешь второй тест или сразу зо 5 однотипных тестов а потом реализация... В общем немного не карашо получалось.

И вот сегодня на очередной эстафете Красный-Зеленый-Рефакторинг случилось чудо. Запускаю новенький тест - он как полагается крассный. Супер! Делаю изменение в Model и сохраняю. Не знаю какой черт меня дернул запустить тест, но я его запустил без передеплоя этого самого, измененного Model. Тест прошел. Что??!! Как??!! Подсознание сразу запело песенку, тралала, тралала, тралала... Чувствую что случилось что-то супер классное, но сознание говорит - неее, это бага какая-та не ведись. Но нет. Я написал на месте исправления throw new RuntimeException("YAHOO!!!"); и сохранил. Нервно двинулся к тесту и .... Он слетел! под красной полоской красовалось "java.lang.RuntimeException: YAHOO!!!". Кайфота.

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

Банальный подсчет, сколько это знание сэкономит компании денег: на каждых 10 разработчиков, интенсивно работающих с Model и перезапускающих JBoss по 5 раз в день каждый день, тратя при этом две минуты, при этом хоть и занимающихся другими делами (перерыв, чтение почты или изучения сети) но по фату простаивающих по две минуты на перезапуск, в месяц происходит экономия 208 баксов (при средней зарплате 1000 баксов в тот же месяц).

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

Забыл самое главное сказать - эта фича начинает работать, когда в Eclipse включен удаленный отладчик для этого JBoss. Вот как его настроить:

Меню Run-Olen Debug Dialog... В диалоге на Remote Java Application нажимаем правой кнопкой мыши и выбираем из контекстного меню New. Справа в диалоге заполняем все поля и жмем Apply. После чего при запущенном JBoss в этом же диалоге нажимаем Debug и наслаждаемся. Вот как выглядит это окошко. Единственное что мне потребовалось изменить в настройках по умолчанию - это порт с 8000 на 8787.




А еще уточняли сегодня как будет выглядеть новая фича. Пользуемся для общения багтрекинг тулзой используя English. Сдовами всего не передать, потому открывается PBrush делается скриншот приложения и путем простых манипуляций дорисовывается до существующего функционала то, что понял из описания новой фичи заказчиком. Далее отправляем ему результат и ждем. И так пару раз, пока заказчик не скажет "Ok :)". Нарисовать в PBrush в 1000 раз быстрее чем реализовать фичу.

Сегодня день, точно зря не прошел. A что касается нашей 6-дневной эстафеты - все идет по плану.

Сейчас иду с другом учиться играть в покер. Пятницо пришел.

Комментариев нет:

Отправить комментарий