Полной автоматизацией процесса сборки приложения уже никого не удивишь. Не в последнюю очередь благодаря Maven – системе управления жизненным циклом проекта. Однако проекты растут очень быстро: увеличивается количество модулей, тестов, зависимостей, используемых плагинов. И всего лишь за год легковесный проект, на сборку которого уходило 5 минут, превращается в монстра, который пожирает время разработчиков 30-минутной сборкой. Чтобы справится с этой проблемой разработчикам приходится постоянно чистить свой код и бороться со скоростью выполнения тестов. Это верное решение, но не следует забывать о том, что и сам процесс сборки можно улучшить. В этом докладе будет рассмотрено, как при помощи простых и нехитрых шагов можно оптимизировать работу с зависимостями и обогатить скрипты сборки полезными плагинами. Также будут обсуждаться тонкости конфигурации основных плагинов и особенности работы с командной строкой, которые появились в последней версии Maven.
"Electron. How the most modern framework works" Oleksii HolubievFwdays
Have you ever wondered why all the top companies are developing their desktop versions of applications? Spotify, Teams, Skype, WhatsApp, VS Code, etc. All these modern programs use one framework and that is Electron. But why? What's in it that WPF or JavaFX doesn't have? A small spoiler - JavaScript. But this is not the only thing.
So in this speech we:
1. Let's remember the history of origin and understand who really maintains this product
2. Let's look under the hood and see how it really works
3. Let's talk about why VS Code has so many processes
4. Let's deal with the main killer features
5. Let's evaluate the framework cons
6. Let's meet the community
This topic is suitable for everyone who is already familiar with JS and is interested in desktop applications.
Полной автоматизацией процесса сборки приложения уже никого не удивишь. Не в последнюю очередь благодаря Maven – системе управления жизненным циклом проекта. Однако проекты растут очень быстро: увеличивается количество модулей, тестов, зависимостей, используемых плагинов. И всего лишь за год легковесный проект, на сборку которого уходило 5 минут, превращается в монстра, который пожирает время разработчиков 30-минутной сборкой. Чтобы справится с этой проблемой разработчикам приходится постоянно чистить свой код и бороться со скоростью выполнения тестов. Это верное решение, но не следует забывать о том, что и сам процесс сборки можно улучшить. В этом докладе будет рассмотрено, как при помощи простых и нехитрых шагов можно оптимизировать работу с зависимостями и обогатить скрипты сборки полезными плагинами. Также будут обсуждаться тонкости конфигурации основных плагинов и особенности работы с командной строкой, которые появились в последней версии Maven.
"Electron. How the most modern framework works" Oleksii HolubievFwdays
Have you ever wondered why all the top companies are developing their desktop versions of applications? Spotify, Teams, Skype, WhatsApp, VS Code, etc. All these modern programs use one framework and that is Electron. But why? What's in it that WPF or JavaFX doesn't have? A small spoiler - JavaScript. But this is not the only thing.
So in this speech we:
1. Let's remember the history of origin and understand who really maintains this product
2. Let's look under the hood and see how it really works
3. Let's talk about why VS Code has so many processes
4. Let's deal with the main killer features
5. Let's evaluate the framework cons
6. Let's meet the community
This topic is suitable for everyone who is already familiar with JS and is interested in desktop applications.
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыOleg Nenashev
Рассказ о Configuration as Code в Jenkins и возможностях Pipeline: DSL, Multi-Branch, Pipeline Model Definition, восстановление после ошибок, параллелизация задач, интеграции. В каком направлении развивается экосистема?
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
https://seleniumcamp.com/talk/webdriverio-puppeteer-double-gun-double-fun/
In the automation world, W3C Webdriver HTTP protocol has been successfully used for a long time. With its help, many projects and libraries in various languages have been implemented (selenide, protractor, webdriverio and thousands of others). But more and more teams decide to use Chrome Debug Protocol, in particular the Puppeteer tool. It is based on WebSockets, and has its own special features – two-way communication, ability to subscribe to events in the browser, and much more. In this talk, we will look at the capabilities of both protocols, experiment and combine them together in one project to make the browser work at full power, and take the best from both communication channels.
В мире автоматизации давным-давно успешно используют W3C Webdriver HTTP протокол. С его помощью реализовано множество проектов и библиотек на различных языках (selenide, protractor, webdriverio и тысячи других). Но так же в последнее время все больше и больше команд решают использовать Chrome Debug Protocol, в частности инструмент Puppeteer. Он основан на WebSockets, и имеет свои особые возможности - двухсторонняя связь, возможность подписки на события в браузере, и многое другое. В этом докладе мы посмотрим возможности обоих протоколов, поэкспериментируем и совместим их вместе в одном проекте, чтобы заставить браузер работать на полную и взять лучшее от двух каналов связи.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыOleg Nenashev
Рассказ о Configuration as Code в Jenkins и возможностях Pipeline: DSL, Multi-Branch, Pipeline Model Definition, восстановление после ошибок, параллелизация задач, интеграции. В каком направлении развивается экосистема?
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
https://seleniumcamp.com/talk/webdriverio-puppeteer-double-gun-double-fun/
In the automation world, W3C Webdriver HTTP protocol has been successfully used for a long time. With its help, many projects and libraries in various languages have been implemented (selenide, protractor, webdriverio and thousands of others). But more and more teams decide to use Chrome Debug Protocol, in particular the Puppeteer tool. It is based on WebSockets, and has its own special features – two-way communication, ability to subscribe to events in the browser, and much more. In this talk, we will look at the capabilities of both protocols, experiment and combine them together in one project to make the browser work at full power, and take the best from both communication channels.
В мире автоматизации давным-давно успешно используют W3C Webdriver HTTP протокол. С его помощью реализовано множество проектов и библиотек на различных языках (selenide, protractor, webdriverio и тысячи других). Но так же в последнее время все больше и больше команд решают использовать Chrome Debug Protocol, в частности инструмент Puppeteer. Он основан на WebSockets, и имеет свои особые возможности - двухсторонняя связь, возможность подписки на события в браузере, и многое другое. В этом докладе мы посмотрим возможности обоих протоколов, поэкспериментируем и совместим их вместе в одном проекте, чтобы заставить браузер работать на полную и взять лучшее от двух каналов связи.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
Сергей Комлач "Итоги Google I/O: что нас ждет"Fwdays
Итоги Google I/O. Что нас ждет в 2016: Android N, DevTools, Daydream, Android Apps в Chrome OSи многое другое
Совсем недавно прошла ежегодная конференция Google I/O 2016, на которой было сделано ряд анонсов - новый Google Assistant, Android N, платформа Daydream, улучшенные DevTools, а так же Instant Apps и Android Apps в Chrome OS.
Я побывал на I/O и как очевидец, расскажу про все анонсы и инсайды конференции
Webpack для самых маленьких | Odessa Frontend Meetup #5OdessaFrontend
Webpack — один из самых мощных и гибких инструментов для сборки frontend, в основном предназначенный для SPA. Популярность его не имеет границ. Но что делать если вы не занимаетесь разработками SPA? Неужели он только для избранных? И чем же он лучше других сборщиков? На эти и другие вопросы Никита Ротарь отвечает в своем докладе.
The practical story telling how Devops changed the culture of quality in the Bank. Recently Devops became mainstream topic. But only few people have a deep understanding how to apply it to the process of software quality assurance. Some believe that the Devops kills manual testing.
I will talk about changes it makes to the role of QA engineers themself. The discussion main point is NOT about tools or technologies. It’s NOT about the “silver bullet” for your problems with the quality of products.
Instead, I will show you an integrated approach which we used for quality assurance. It allowed us to significantly reduce the cost of finding and fixing defects. This approach has also accelerated the development and delivery value to our customers and made the whole process more transparent and predictable.
Мы напишем простейший веб-сервис из клиента и сервера на C++. На этом C++ часть закончится, и пойдет настройка окружения и инфраструктуры. Мы обеспечим детерминируемость сборки и прогона тестов. Облегчим последующее обновление зависимых библиотек. Автоматизируем статические проверки, верификацию кода, прогон тестов. Обеспечим доступность сервиса, настроим инфраструктуру, сбалансируем нагрузку, добавим автоматическое и ручное масштабирование. И под конец мы настроим continious delivery таким образом, что код будет на продакшене через 5 минут после реквеста, при этом даже невалидные изменения и ошибки программиста не смогут повлиять на его работу.
2. Проект 1. ТЗ
● Десктоп приложение работает с
сервером, обмениваются данными.
● Приложение должно быть авто-
обновляемым.
● Сервер обновлений работает отдельно от
основного сервера.
5. Проект 1. Цели
● сборка должна выполняться одной
кнопкой
● апдейтер клиент и десктоп клиент должны
собираться в один ехе-шник
● после сборки клиентского приложения
файлы для обновления клиента должны
отправляться на апдейтер сервер
● авто-деплой war-файлов после коммита
6. Проект 1. Решение
Сборка должна выполняться одной кнопкой
● Maven
● Каждый модуль знает как собрать себя
● Все модули имеют одного парента
● При запуске сборки парента, модули
собираются автоматически
7. Отсутпление 1: Apache Maven
● система управления проектом
● система управления зависимостями
● декларативное описание в формате xml
● стандартная структура каталогов
● расширяется плагинами
● подмял под себя практически весь опен-
сурс
8. Проект 1. Решение
Апдейтер клиент и десктоп клиент должны
собираться в один ехе-шник
● Ant + JavaFx native bundle packager
● Оба модуля собираются в jar-файлы
● Эти jar-файлы и их зависимости
скармливаются в JavaFx native bundle
packager антом
9. Отсупление 2: Apache Ant
● управление сборкой проекта
● императивное описание в формате xml
10. Проект 1. Решение
Файлы для обновления клиента
отправляются на апдейтер сервер
● Ant
● Результат сборки модулей пакуем в zip
● Отправляем zip в определенную
директорию в Glassfish-е
11. Проект 1. Решение
Авто деплой апдейтер и рест вар-ников
● Glassfish maven plugin
● remote re-deploy обоих модулей после
завершения сборки
12. Проект 1. Решение
Сборка после кажого коммита
● Jenkins CI
● Опрашиваем SVN каждые 5 минут
● Если есть коммит, запускаем сборку
парента
13. Отсупление 3: Jenkins
● автоматизация сборки проекта
● расширяется плагинами
● поддерживает Maven и Ant проекты
14. Проект 2. ТЗ
● 2 Веб-приложения на GWT
● Шаринг сессий между приложениями