Anadea Inc. Mini-conference

Мини-конференции Anadea

Мини-конференция Anadea Inc. 1 октября 2015

Новая мини-конференция в днепропетровском офисе Anadea прошла в четверг, 1 октября 2015 года. Докладчиками выступили Алексей Деркач, рассказывавший о прелестях нагрузочного тестирования с locust.io и Андрей Бакута, говоривший о правильной организации CSS.

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

Алексей Деркач: Locust

Алексей Деркач: нагрузочное тестирование с locust.io

Конференцию открыла напутственная речь Алексея Деркача, плавно перетекшая в его доклад. А говорил он о проблемах нагрузочной сессии с JMeter - о ресурсоёмкости инструмента, его непредсказуемом поведении, неудобстве в отладке, проблемах с BeanShell и слабой кастомизируемости. Потом Алексей представил список возможных альтернатив и рассмотрел одну из них - locust.io.

Locust привлёк его внимание тем, что написан на языке Python и обладает логичным для нагрузочного тестирования названием (locust в переводе с английского означает “саранча”). Алексей рассказал о преимуществах locust - о том, что это нагрузочный тест пишется на чистом Python, что инструмент расширяемый, лёгкий в использовании и способен запускать большое количество тестов одновременно. Не обошёл вниманием Алексей и минусы “саранчи”, но он тут же спешил показать, как их обойти или обратить в плюсы.

Андрей Бакута: БЭМ-методология

Андрей Бакута: правильная организация CSS

Ответив на все вопросы присутствовавших, Лёша передал микрофон Андрею Бакуте, и конференция плавно перешла от темы тестирования к фронтенду.

Бакута обозначил проблему потери контроля в CSS, проиллюстрировав это gif-анимацией борющегося с жалюзи Питера Гриффина. Он говорил о том, что исправления кода в одном месте ломают что-то в другом, что непонятно, куда класть стили, да и вообще чаще сверстать страницу заново будет проще, нежели переделывать что-то старое.

Решение он нашёл в БЭМ-методологии, расшифровывающейся как “Блок-Элемент-Модификатор”. Подробно с этой методикой можно ознакомиться в статье, которую накануне выступления Андрей опубликовал в блоге.

Окончание конференции

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

Мини-конференция Anadea Inc. 5 ноября 2015

Мини-конференция в Anadea 5 ноября 2015

Пятая мини-конференция Anadea Inc как по совпадению состоялась пятого ноября. К половине шестого стерео-система была готова, слайды заряжены, слушатели заняли свои места и конференцию как всегда открыла речь Алексея Деркача.

Сразу два доклада было посвящено тестированию: обзор Calabash Кирилла Мачухина и рассмотрение тестирования с точки зрения разработчика от Дарьи Коваленко. Но сперва из Гродно по Skype выступил Дмитрий Кириенко.

Дмитрий Кириенко: рефакторинг Ruby on Rails кода

Это первое онлайн-выступление в истории наших мини-конференций. Дима не только рассказывал, но и показывал на практике, как можно сделать лучше своё Ruby on Rails-приложение. А показывал он как:

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

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

Уже после этого начался разговор о тестировании.

Кирилл Мачухин: Calabash

Кирилл Мачухин начал доклад с вопроса: "какой инструмент выбрать для автоматического тестирования проекта?". Он обозначил все требования для такого инструмента, а позже представил фреймворк, который полностью им отвечает - Calabash.

  • Calabash Android
  • Calabash iOS
  • Ruby
  • Gherkin Syntax (Cucumber style)
  • Calabash Android last updated - 26 days ago
  • Calabash iOS last updated - a month ago
  • Запуск на реальных девайсах

Кирилл рассказал о том, как начать работу с ним - установить, запустить, а также то, чем отличаются версии Android и iOS. Он показал, что до определённого этапа пишется одинаковый код и предложил способ избежания дублирования. Решение банальное и простое: установить gem’ы на стороне сервера, т.е. выделить наш Calabash из мобильных проектов, разбить наш page_object на модули и склеить launcher’ы calabash_iOS и calabash_Android.

Плюсы такой реализации:

  • не имеем повторяющегося кода (*.feature, *_steps.rb);
  • возможность простого доступа к объектам через ActiveRecord;
  • эмуляция работы второго клиента на стороне сервера.

Минусы:

  • различные команды запуска (cucumber, calabash-android run);
  • нет возможности работать в debug режиме предоставляемым calabash.

Так же, он продемонстрировал возможное избавление от минусов реализации.

Дарья Коваленко: тестирование в iOS с точки зрения разработчика

Ответив на вопросы слушателей, Кирилл передал микрофон Дарье Коваленко, которая продолжила тему тестирования приложений рассказом о тестировании в iOS с точки зрения разработчика. Она рассуждала на тему того, зачем вообще разработчику писать тесты, говорила об интеграционных тестах и почему для них лучше всего подходит KIF.

Почему KIF:

  • Синтаксис на objective-c;
  • Добавляется через pod, в текущий или новый тестовый target;
  • Возможность использования OCMock stub’ов и expect’ов.

Даша рассказала о преимуществах использования интеграционных тестов:

  • Один тест выполняет сразу несколько действий, поэтому можно быстро покрыть тестами большое количество кода.
  • Экономит время при необходимости запуска приложения для проверки работы основных функций.
  • Легко отлавливаются мелочи, особенно на переходах между экранами, которые сложно проверить unit-тестами.

И о недостатках:

  • Если упал тест-сценарий в середине, следующие уже не пройдут, поскольку приложение не перезапускается.
  • Привязан к конкретной версии iOS и некоторые функции не работают после обновления iOS.Тесты проходят достаточно медленно.
  • Могут не пройти, если отключен показ клавиатуры, выскакивают системные окна и т. п.
  • Привязаны к accessibility labels.

А так же о том, почему стоит сначала писать тесты, а потом код:

  • Это даёт возможность более детально продумать структуру класса.
  • С помощью тестов описать возможные варианты поведения метода - а затем уже писать код, который выполняет все условия.
  • Приходится разбивать методы на более мелкие для тестов.
  • Потому что потом писать тесты ой как не хочется.

Когда аплодисменты провели последнего докладчика, на смену проектору и слайдам пришли пицца и кола, и как всегда, во время дружеских посиделок, ребята дискутировали с выступавшими по темам их докладов.

Мини-конференция Anadea Inc. 2 декабря 2015

Мини-конференция в Anadea 2 декабря 2015

Шестая мини-конференция Anadea Inc. состоялась 2 декабря 2015 года.

В этот раз конференция полностью прошла в онлайн-режиме: вещали Сергей Лагутин из Гродно и Миша Биленко из Аликанте. В 16:00 аудитория собралась у экранов и была готова внимать докладчикам.

Сергей Лагутин: как избежать ошибок при работе с Hibernate

Сергей Лагутин рассказал, как избежать самых популярных ошибок при работе с Hibernate:

  • как тип коллекции, описывающий отношение сущностей, влияет на количество запросов при изменении содержимого;
  • преимущества и недостатки жадной и ленивой загрузки связанных объектов;
  • почему не стоит использовать шаблон Open session in view в реальных приложениях.

Кроме того, он напомнил, что ни один ORM фреймворк не может быть эффективно использован без знания SQL.

После того, как Сергей ответил на все вопросы аудитории, начался доклад Михаила Биленко.

Михаил Биленко: различия между плохим и хорошим дизайном

Обзор ковров на стене, дизайна панельных домов, интерьера храмов и пользы от изображений красоток в бикини? Такое вполне возможно, если речь заходит о дизайне. Но всё вышеперечисленное является лишь внешним атрибутом данной темы. Михаил попытался понять критерии хорошего и плохого дизайна. Он демонстрировал примеры как действительно функционального дизайна без прикрас, так и красивых (и не очень), но бесполезных оболочек.

После общения Михаила с аудиторией, конференция окончилась традиционным осмыслением услышанного за пиццей и колой.

Мини-конференция Anadea Inc. 20 января 2016

Мини-конференция в Anadea 20 января 2016

Новогодние праздники позади, всё шампанское выпили, ёлку выбросили, гирлянды и шарики отправились обратно в коробки - начался новый рабочий год. 20 января 2016 года состоялась новая мини-конференция Anadea Inc.

Максим Ромащенко: зачем нужны project-менеджеры

Сотрудники трёх офисов собрались у экранов, чтобы послушать Максима Ромащенко, который рассказал всем о предназначении project-менеджеров и вновь порекомендовал как можно скорее ознакомиться с книгой товарища Кента Бека. Он рассказывал о некоторых его методиках, которые пригодились бы в экстремальном программировании - к примеру то, что для начала проект стоит полностью вообразить и только потом воплощать в реальность.

Евгений Маслов: сравнительный анализу SitePrism и PageObject для тестирования проектов

Далее к днепропетровской публике вышел Евгений Маслов, а у всех прочих появился на экране. Он сравнивал такие вещи, как siteprism и page object pattern. В ходе сравнения демонстрировались следующие плюсы и минусы инструментов:

site_prism

  • Capybara DSL +
  • Гибкий выбор драйвера +
  • Работает с логическими элементами +
  • Скорость +
  • Элементарная интеграция с CI +
  • Селекторы -

page-object

  • Работа с реальным сервером +
  • Ориентирован на использование с Cucumber +
  • Работает с html-элементами страницы +
  • Меньше зависимостей +
  • Скорость -
  • Нет возможности использования headless-браузеров -
  • Сложная интеграция с CI -

Доклад закончился традиционными ответами на вопросы аудитории. Проводив докладчиков овациями, зрительский зал принялся осмыслять бесконечные грани полученных знаний за пиццей и колой.