Connect with us

Разработка

Григорий Петров: Управление страхом с помощью Continuous Integration

В одной из предыдущих колонок я рассказал про построение коридоров, упомянув про автобилд и continuous integration. Тогда я не было готов рассказать подробности. Но с тех пор успел написать про agile и стандарт кодирования, что позволяет мне рассказать про автобилд не взрывая голову читателя миллионом новых сущностей. Потому что последовательное изложение – это сила.

Григорий Петров

Опубликовано

/

     
     

В одной из предыдущих колонок я рассказал про построение коридоров, упомянув про автобилд и continuous integration. Тогда я не было готов рассказать подробности. Но с тех пор успел написать про agile и стандарт кодирования, что позволяет мне рассказать про автобилд не взрывая голову читателя миллионом новых сущностей. Потому что последовательное изложение – это сила.

Зачем нужно continuous integration

Самое главное в построении коридоров – это так организовать рабочий процесс, чтобы проверка работы была неизбежной. Эволюция мозга приспособила его постоянно оценивать положение в социуме и “настраивать” модели поведения. Мы очень тонко чувствуем фальшь, и если будет хоть малейшая возможность не делать скучную и неинтересную работу – мы такую возможность придумаем. И миллион оправданий к ней. Если в команде настроена непрерывная интеграция, то все участники понимают неизбежность автоматической сборки проекта. Понимают, и на бессознательном уровне адаптируют свое поведение, стиль работы, отношение к происходящему. Ведь никто не хочет быть супергероем, сломавшим Большое Ночное Тестирование?

CI_part1_cover_optima

Идея continuous integration (далее CI) – в автоматизации ради улучшения рабочего процесса. По доброй традиции CI настраивается так, чтобы вся автоматика выполнялась после того, как разработчик отгрузил на сервер новую порцию исходного кода. Интерактивность очень важна – разработчик должен чувствовать прямую связь между тем, что он сделал push и тем, что через минуту вся команда получила нотификацию о сломанном билде. В этом плане особенно хорошо работают физические индикаторы – вывод текущего состояния CI на большую плазму, загорающиеся красным цветом лампы и так далее. Все это помогает нашему мозгу адаптировать поведение.

И что туда можно запихнуть

Сборка проекта и вердикт “собралось или не собралось” – самое простое, что можно добавить в CI. Обычно все с этого начинают. А затем, войдя во вкус, добавляют все новые и новые автоматизации, чтобы рабочий процесс стал лучше. Вплоть до автоматического анализа сложности кода с помощью метрик вроде “cyclomatic complexity”. Тут главное – не увлекаться.

Хорошей идеей будет добавить в CI проверку на соблюдение стандарта кодирования, принятого в команде. Для этого существуют многочисленные программы семейства “lint”. Запущенная перед сборкой проекта, такая программа может проверить самые “болезненные” пункты стандарта кодирования: именование идентификаторов и структуру проекта, отступы, принятый в команде стиль расстановки скобок и тому подобное. Неизбежность проверки волшебным образом дисциплинирует разработчиков, они начинают соблюдать стандарт не потому, что “тимлид так сказал”, а потому что не хотят “сломать билд”. Опять же, главное не увлекаться и сконфигурировать линтер только на несколько самых важных, обязательных пунктов стандарта.

В CI очень хорошо добавлять разнообразные тесты проекта: интеграционные, функциональные, unit-тесты. О тестировании я поговорю отдельно, это очень большая и интересная тем. А начинать можно с самого простого: что собранный проект хотя бы запускается. Такой тест несложно сделать, а добавленный в CI он будет выявлять ошибки вида “ой, а на моем компьютере все работает”.

slon2u

CI является естественным местом для хранения информации о том, как развернуть и установить разрабатываемый проект. Нередки ситуации, когда “тайным знанием” сборки или установки проекта владеет один разработчик в команде, и в случае его отпуска или увольнения происходит много всего веселого. Последовательный перенос всех этих знаний в CI хорошо защищает проект от такой угрозы. Команды для сборки и установки хранятся в той же системе контроля версий, что и исходный код, а сами эти процессы происходят автоматически. В хорошо настроенной CI задача “собрать и выложить проект в продакшн” делается одной командой, после чего все остальное обеспечивает автоматика.

Сердце Agile

Continous Integration позволяет извлечь максимальную пользу из agile подхода к созданию софта. Автоматическая сборка и установка позволяет команде фокусироваться на разработке, быстро взаимодействовать с другими участниками процесса и помогать друг другу с задачами без боязни “все сломать”.

При использовании CI очень важно не забыть, для чего это все делается. Главная цель – улучшить рабочий процесс, дав нашему мозгу набор легко соблюдаемых и понятных правил. Легко попасть в ловушку, подменив цель процессом. Многие виденные мною команды, к примеру, ставят своей целью 100% покрытие проекта юнит тестами. И совсем не потому, что пишут драйвер. Такая ложная цель создает иллюзию контроля сложности и позволяет избежать действительно сложной работы – создания хороших программ в разумное время. Помните об этом, и continuous integration станет вашим надежным помощником в борьбе со сложностью.

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
Click to comment

You must be logged in to post a comment Login

Leave a Reply

SDK

App Annie запустила аналитику установленных в приложениях SDK

Специалистам по продажам рекламы в мобильных рекламных сетях может быть сложно находить потенциальных клиентов и генерировать поток продаж без определенных данных. Успешные команды по продажам рекламы и работе с издателями должны улавливать важные сигналы, которые позволяют получить лучших рекламодателей и издателей. Именно поэтому в App Annie разработали показатели SDK, которые в сочетании с самыми надежными данными о мобильных приложениях обеспечивают наилучшую мобильную аналитику.

AppTractor

Опубликовано

/

Автор:

Все данные доступны в App Annie Intelligence. Теперь команды по продажам могут использовать данные о мобильных SDK и рынке приложений для привлечения более перспективных потенциальных клиентов и заключения более крупных сделок.

Ускоренное создание потока продаж

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

Отбор наиболее перспективных потенциальных клиентов

Сначала обращайтесь к потенциальным клиентам, которые могут принести наибольший доход. В случае рекламодателей измеряйте потенциальный доход с помощью показателей рекламного бюджета, роста количества пользователей и рекламной стратегии. В случае издателей обращайте внимание на показатели, связанные со стратегией рекламных инструментов и монетизации. Используйте следующие показатели App Annie для выделения потенциальных клиентов, которые могут принести наибольший доход:

  • количество установленных SDK атрибуции рекламы, загрузки, доход, активные пользователи, доля показов — для продаж рекламы
  • количество установленных SDK рекламных платформ, долявыполненных показов, активные пользователи, длительность сеанса вприложении, загрузки, доходы — для работы с издателями

Оценка своих позиций: измерение доли рынка SDK рекламных платформ

Вам интересно, в скольких приложениях установлен SDK определенной рекламной платформы? App Annie обеспечивает полный обзор экосистемы SDK. Сравнивайте свою долю рынка с долей рынка конкурентов. Отслеживайте, какие платформы теряют и приобретают издателей. Ищите возможности расширения охвата. Получайте подробную информацию о лидерах рынка, включая популярные и доминирующие рекламные платформы — для этого отслеживайте доли установленных приложений и доли загрузок, а также установки и удаления новых SDK. Отфильтровывайте данные по рынкам и категориям приложений, чтобы выявлять области для расширения охвата и определять наилучший подход к позиционированию своего решения.

Комментарии
Продолжить чтение

Разработка

Как сделать HTML5-приложение на Corona

10 июля движок для создания 2D-приложений Corona обновился до версии 2018.3326. Это значит, что поддержка платформы HTML5 наконец вышла в открытую бету, и создание HTML5-приложений доступно всем пользователям.

AppTractor

Опубликовано

/

Автор:

Что такое HTML5-игры и почему они важны

Легкие онлайн-игры на основе HTML5 запускаются во вкладке любого браузера или внутри знакомых всем приложений: в социальных сетях или мессенджерах. Чтобы начать HTML5-игру, не нужно скачивать приложения из App Store или Google Play или обновлять плагины браузера  достаточно выбрать игру парой кликов из каталога встроенной в социальную сеть / мессенджер игровой платформы. Подобные платформы уже есть во «ВКонтакте» (Direct Games), в Facebook (Instant Games) и даже в Telegram и китайском WeChat. Благодаря этому аудитория игр расширяется: пользователи ждут новых игр, а девелоперы с удовольствием их создают, адаптируя новые жанры, усложняя игровые механики.

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

Все указывает на то, что пора собирать свое первое HTML5-приложение и зарабатывать на нем, пока это не сделал ваш сосед. Поэтому сегодня рассказываем и показываем, как поставить готовую игру на HTML5-рельсы и разместить ее на платформах Facebook Instant Games и VK Direct Games с помощью движка Corona.

Портирование в HTML5:

  1. Заходим на сайт Corona Labs и скачиваем на свой компьютер последнюю версию Corona 2018.3326.

  1. После установки ПО и открытии Corona Simulator создайте аккаунт в открывшемся окне – Corona Developer Login или зайдите под существующим.
  2. Теперь самое интересное – начинаем портировать игру в HTML5-формат. Мы покажем на примере игры из Corona Marketplace. Скачиваем и открываем игру в Corona Simulator: Open Project -> Папка игры -> main.lua. Даже если у вас несколько файлов .lua, выбираем сначала main.

  1. Чтобы cобрать из вашего проекта HTML5-приложение, выберите в меню Corona Simulator — File -> Build -> HTML5(BETA).

  1. В открывшемся окне портирования задайте имя и расположение файла. Что делать с опциями под галочками:
    – Include Standard resources означает, что ваша игра сможет использовать стандартные элементы Corona (кнопки, фигуры) — рекомендуемая для начинающих;
    – Create FB Instant archive (создает архив файлов, который потом пригодится для портирования проекта на игровую платформу Facebook) — ставьте галочку.

  1. После нажатия OK запустится портирование игры в HTML5-формат. В окне Corona Simulator Console отобразятся списком все файлы приложения и итоговый вес игры.
  2. Когда портирование закончится, игра автоматически откроется в системном браузере. Можно также открыть в любом удобном браузере, нажав в всплывающем окне на Open in Browser, чтобы запустить игру. Внешне она будет выглядеть одинаково во всех браузерах, в том числе, в мобильных.

  1. В папке с готовым HTML5-приложением вы найдете zip-архив для загрузки игры на Facebook Instant Games.

Портирование на Facebook Instant Games

  1. Зарегистрируйтесь на странице Facebook для разработчиков (developers.facebook.com) -> Начать работу (или «Мои приложения», если аккаунт уже есть).

  1. На странице всех ваших приложений Facebook -> Добавить новое приложение (developers.facebook.com/apps).
  2. В открывшемся каталоге приложений выберите «Моментальные игры» (Instant Games)

  1. Добавьте иконки, название и описание будущей игры начиная с вкладки «Информация».
  2. Во вкладке Веб-хостинг -> Загрузить версию загружаем zip-архив, из папки с вашим HTML5-приложением.

Помните, что размер приложения не должен превышать 5МБ. Это связано с использованием webview, который существенно ограничивает производительность устройства;

Facebook предоставляет свой сервер для моментальных игр, беспокоится о собственном нет необходимости.

  1. Когда загрузка завершится, в панели загрузки выберите значок звезды, чтобы передать приложение в производство.

  1. Теперь можно посмотреть, как выглядит и работает игра: Настройки в левой панели -> Основное -> Веб-игры на Facebook -> вставляем в адресную строку браузера ссылку из окна «URL Страницы веб-игр Facebook».

  1. Осталось только заполнить все настройки приложения, включая вкладки «Лидеры», «Проверка», «Рекомендации», «Отзывы», «Покупка в приложении» и отправить игру на проверку. И вуаля, ваша игра уже в левом меню среди других на Facebook Instant Games!

Портирование в VK Direct Games

  1. Активируйте плагин VK Direct Games в Corona Marketplace. Зайдите на страницу плагина и нажмите кнопку Activate;

  1. В своем проекте в файле build.settings установите плагин VK Direct Games. Как это сделать описано в документации к плагину;
  2. Соберите из вашего проекта HTML5-приложение как описано выше.
  3. Готовое HTML5-приложение перенесите на свой сервер. Если нет сервера, можно воспользоваться сервисом GitHub, который организует ваш сервер по адресу yourname.github.io;
  4. Наберите в браузере строку yourname.github.io и проверьте, что ваше приложение работает корректно, помните, что игры в ВК должны занимать не более 10МБ;
  5. Зайдите на страницу в VK для разработчиков. Выберите пункт «Мои приложения» из верхней панели и нажмите кнопку «Создать приложение»;

  1. Выберите пункт «Встраиваемое приложение», заполните поле названия и описания игры и нажмите кнопку «Перейти к загрузке приложения»;

  1. На ваш телефон должно прийти уведомление о создании вами игры — вам надо подтвердить это действие, чтобы продолжить;
  2. Добавьте иконки для описания игры, как указано на странице «Информация»;

  1. В левой панели выбираете пункт «Настройки» и выбираете тип приложения iFrame, включаете состояние «Видно всем» и самое главное, в поле «Мобильная версия»: добавляете адрес вашей HTML5-игры (пример: https://yourname.github.io);
  2. Важно! Оставьте поле адрес iFrame пустым;

  1. Сохраните настройки — иконка вашей игры будет в левой панели — нажмите на нее — у вас появится экран игры и кнопка «Отправить на телефон»;

  1. Подключите телефон через USB к компьютеру, погасите приложение VK и нажмите кнопку «Отправить на телефон» — вы услышите звук пуш-нотификации;
  2. Смахните сверху вниз по экрану телефона и выберите пуш-нотификацию — ваша игра запустится внутри приложения VK;

Bingo! Теперь ваша игра есть на ведущих игровых платформах, а также во вкладках самых популярных десктопных и мобильных браузеров.

Комментарии
Продолжить чтение

Медиа

Android Dev Подкаст. Выпуск 70. React Native. Впиливать или выпиливать?

Мы обходили стороной вопросы кроссплатформенных фреймворков, но вот настал час для обсуждения одной и самых модных и более-менее стабильных платформ. Мы пригласили разработчиков с большим стажем. В мир Reat Native кто-то пришел из Andorid, кто-то из iOS, а кто-то из веб – и тем и интереснее получилась беседа. Надеемся, что к концу выпуска, слушатель, вместе с ведущими, сформирует свое мнение о React Native и будет готов к обсуждению внедрения этого фреймворка на работе.

AppTractor

Опубликовано

/

Автор:

Мы обходили стороной вопросы кроссплатформенных фреймворков, но вот настал час для обсуждения одной и самых модных и более-менее стабильных платформ. Мы пригласили разработчиков с большим стажем. В мир Reat Native кто-то пришел из Andorid, кто-то из iOS, а кто-то из веб – и тем и интереснее получилась беседа. Надеемся, что к концу выпуска, слушатель, вместе с ведущими, сформирует свое мнение о React Native и будет готов к обсуждению внедрения этого фреймворка на работе.

Материалы

Комментарии
Продолжить чтение

Дизайн и прототипирование

17 лекций о разработке интерфейсов Школы разработки интерфейсов Яндекса

Этой весной в Яндексе прошла очередная Школа разработки интерфейсов. Школа рассчитана на начинающих разработчиков, которые всерьёз интересуются созданием интерфейсов и уже знают азы, но пока не набрались опыта. Чтобы освоить программу Школы могли все желающие, Яндекс выпустил видеокурс — он объединяет все лекции, которые читались в ШРИ весной.

AppTractor

Опубликовано

/

Автор:

Материалы для самоподготовки

В курс вошли семнадцать лекций. Они посвящены разным аспектам разработки интерфейсов. Например, в одной рассказывается, как адаптировать интерфейс под разные типы устройств, в другой — как сделать его доступным для людей с ограниченными возможностями. Некоторые лекции касаются тем, не связанных с программированием. Разработчику интерфейсов важно знать, как создаётся дизайн продукта, — так ему будет проще найти общий язык с дизайнерами. Лекция о навыках публичных выступлений поможет понять, как грамотно рассказать о результатах своей работы большой аудитории.

Все лекторы — сотрудники Яндекса. Они работают над интерфейсами разных сервисов компании — Поиска, Карт, Дзена, Директа — и подкрепляют рассказ примерами из личного опыта. В конце они приводят ссылки на дополнительные материалы — если тема интересна, будет понятно, куда двигаться дальше.

Курс даёт базовую теорию. Тех, кто хочет применить знания на практике, Яндекс приглашает на очные занятия в Школу разработки интерфейсов. Практики будет много — слушателей ждут семинары, домашние задания и работа над учебными проектами. Для поступления нужно заполнить анкету и решить тестовое задание.

Обучение в Школе бесплатное. Набор открыт в трёх городах: Москве, Симферополе и Минске. Жители других мест могут приехать на учёбу в столицу: тем, кто пройдёт отбор, Яндекс оплатит дорогу и проживание в хостеле.

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.