Материалы конференции «Инженерные практики XP»: доклад Евгения Мартынова

Новогодние праздники не давали нам толком заняться материалами прошедшей 22 декабря конференции «Инженерные практики XP». Извините за задержку. Мы постараемся в ближайшее время все опубликовать. Начнем с выступления Евгения Мартынова «Мобильный разработчик — тоже разработчик», в котором он поделился практиками и инструментами в арсенале мобильных разработчиков. Вот слайдкаст доклада:

Также Евгений подробно ответил на заданные ему после доклада вопросы:

Вопрос: Как Вы используете Ant и Maven совместно? Есть Best Business Practice?
Ответ: Я предпочитаю Maven по нескольким причинам:

  • строгие фазы билда
  • версионированные зависимости из центрального репозитория
  • стандартная поддержка мульти модульных проектов
  • в среднем Maven скрипт меньше и понятней чем Ant-овский

Поэтому все, что можно сделать с помощью Maven, мы пытаемся сделать им же — тесты, покрытие, интеграция с Sonar, deploy и release. Для того, чтобы сохранить билд скрипт как можно целостным и понятным. К сожалению, иногда нужны небольшие дополнения в фазах, например инкрементировать codeVersion в AndroidManifest.xml при релизе. Для этого мы используем Ant вкрапления.

Однако, если Maven используется только для зависимостей и следованию фаз билда, то я бы использовал Ant с Ivy чтобы убрать прыжки между двумя подходами и файлами. Опять же, Ant скрипт обязательно будет иметь строгие фазы билда.

Вопрос: Что вы скажете по поводу codenameone, интересная затея?
Ответ: Никогда не имел дела с codenameone, как и с другими кросс-платформенными фреймворками. Мое мнение, что все кросс-платформенные решения позволяют быстро выйти на несколько платформ. Но как мне кажется, с их помощью сложно построить приложения, вызывающие восхищение пользователей и экспертов.

Однако, я был поражен скоростью, красотой сложностью графики в Android игре, построенной на Unity 3D. Но это был их собственный пример, в который думаю немало вложено для совершенствования, а также игры стоят в некоторой отдельной категории, потому что им не важно выглядеть нативными.

Вопрос: А можно посмотреть на unit тесты полностью? Интересно посмотреть на подключаемые библиотеки, как оно все работает без assert’ов. А если есть проект для примера, то вообще замечательно.
Ответ: Мой стандартный набор для модульных тестов: junit, fest assert и mockito. Иногда используется powermock для мокирования финальных, статических методов или конструкторов и реальных методов. Для android добавляется robolectric для тестирования кода, использующего зависимости android sdk.

Как я понимаю, фраза «как оно все работает без assert’ов» относится к тестам на поведение, построенным с помощью mockito. mockito verify также вызовет исключение, если поведение объекта было не ожидаемым.

Примеры android open source проектов c модульными тестами: Robolectric и AndroidAnnotations. К сожалению, я не знаю ни одного j2me или blackberry open source проекта с модульными тестами. Даже LWUIT от Oracle идет без них или они их очень усердно прячут.

You can leave a response, or trackback from your own site.

Leave a Reply