Владимир Гриненко —Инструменты фронтенд-разработчикаYandex
Мы поговорим о том, как создать эффективный и надёжный код, переложив всю лишнюю работу на роботов. Решим проблему с разным окружением у разработчиков (vagrant), научимся писать стили удобно (roole, autoprefixer), оптимизируем получившийся CSS (clean-css, CSScomb) и графику (Imagemin, SVGO), проверим js-код (jshint, jshint-groups, jscs), убедимся, что некрасивый код не попадёт в репозиторий (git-hooks), и обсудим, как можно быстро и легко создавать новые инструменты.
Автоматизируем всё, что можно, и подумаем, что и почему — нельзя!
SERP или просто страница результатов поисковой выдачи — это действительно большой проект с огромной аудиторией. Над ним работают около 40 фронтендеров из разных городов. Эта страница показывается больше 200 000 000 раз в день. При таких размерах даже модульная архитектура уже не слишком спасала нас от странных, неочевидных зависимостей, лишних стилей и нескольких разных реализаций почти одинаковых компонентов.
Процесс разработки новой, даже довольно простой на первый взгляд фичи занимал чудовищное количество времени и представлял из себя хаотичное взаимодействие большого количества людей: фронта, бэкенда, дизайнеров и менеджеров.
Стала закрадываться мысль, что пора что-то менять. И мы поменяли.
В докладе я расскажу о том, как мы с помощью проекта на стыке фронтендеров, менеджеров, и дизайнеров, навели во всем этом идеальный порядок. Каким образом поменяли наш код процессы и инструменты, а также что нам это дало, и как будем жить с этим дальше.
Если вам знакомы похожие проблемы, то наш опыт может оказаться вам чертовски полезным.
Владимир Гриненко —Инструменты фронтенд-разработчикаYandex
Мы поговорим о том, как создать эффективный и надёжный код, переложив всю лишнюю работу на роботов. Решим проблему с разным окружением у разработчиков (vagrant), научимся писать стили удобно (roole, autoprefixer), оптимизируем получившийся CSS (clean-css, CSScomb) и графику (Imagemin, SVGO), проверим js-код (jshint, jshint-groups, jscs), убедимся, что некрасивый код не попадёт в репозиторий (git-hooks), и обсудим, как можно быстро и легко создавать новые инструменты.
Автоматизируем всё, что можно, и подумаем, что и почему — нельзя!
SERP или просто страница результатов поисковой выдачи — это действительно большой проект с огромной аудиторией. Над ним работают около 40 фронтендеров из разных городов. Эта страница показывается больше 200 000 000 раз в день. При таких размерах даже модульная архитектура уже не слишком спасала нас от странных, неочевидных зависимостей, лишних стилей и нескольких разных реализаций почти одинаковых компонентов.
Процесс разработки новой, даже довольно простой на первый взгляд фичи занимал чудовищное количество времени и представлял из себя хаотичное взаимодействие большого количества людей: фронта, бэкенда, дизайнеров и менеджеров.
Стала закрадываться мысль, что пора что-то менять. И мы поменяли.
В докладе я расскажу о том, как мы с помощью проекта на стыке фронтендеров, менеджеров, и дизайнеров, навели во всем этом идеальный порядок. Каким образом поменяли наш код процессы и инструменты, а также что нам это дало, и как будем жить с этим дальше.
Если вам знакомы похожие проблемы, то наш опыт может оказаться вам чертовски полезным.
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
Рассказ о том, что представляет собой наш «станок» верстальщика сегодня. Рассказывается с примерами, какие браузеры поддерживаем, как производим кроссбраузерное тестирование и какие инструменты используем, готовя проект к выходу в свет.
Полной автоматизацией процесса сборки приложения уже никого не удивишь. Не в последнюю очередь благодаря Maven – системе управления жизненным циклом проекта. Однако проекты растут очень быстро: увеличивается количество модулей, тестов, зависимостей, используемых плагинов. И всего лишь за год легковесный проект, на сборку которого уходило 5 минут, превращается в монстра, который пожирает время разработчиков 30-минутной сборкой. Чтобы справится с этой проблемой разработчикам приходится постоянно чистить свой код и бороться со скоростью выполнения тестов. Это верное решение, но не следует забывать о том, что и сам процесс сборки можно улучшить. В этом докладе будет рассмотрено, как при помощи простых и нехитрых шагов можно оптимизировать работу с зависимостями и обогатить скрипты сборки полезными плагинами. Также будут обсуждаться тонкости конфигурации основных плагинов и особенности работы с командной строкой, которые появились в последней версии Maven.
«Масштабируемый DevOps» Александр КолесеньIT Share
Типичные подходы к развертыванию приложений: как правильные, так и неправильные, но повсеместно применяемые.
Как сделать так, чтобы развертывание не стало проблемой с линейным ростом количества поддерживаемых окружений.
Методы обновления проекта с нулевым временем простоя: когда это уместно и принципиально возможно.
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesIosif Itkin
Multi-Platform Approach to Reverse Debugging of Virtual Machines
Pavel Dovgalyuk, Maria Klimushenkova, Denis Dmitriev and Vladimir Makarov, Novgorod State University
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...DevGAMM Conference
В рамках лекции будет рассмотрен ряд уже имеющихся инструментов оптимизации на движке, о которых стоит знать, начиная работу над проектом. Доклад также затрагивает практическую основу и причины таких подходов, совмещая тематику архитектуры современных игровых движков и механик рендера сцены.
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"IT Event
The world of frontend development is changing rapidly. No one stays at the top for a long time. Just yesterday we saw the triumph of React, but today Angular2 treads on its heels. Why have I chosen Vue in 2017? Why not to use a usual React? Have the Chinese managed to create a "silver bullet"? In this report we'll consider these questions and we'll find out why Vue is at the top among JS-frameworks on GitHub and whether it's worth chosing it.
(Seleniumcamp) Selenium RC for QA EngineerYan Alexeenko
The Selenium RC opportunities, problems and some features in work with it for cross-browser testing (Firefox, Internet Explorer, Safari, Google Chrome) are presented in the presentation. The issues, concerning testing automation start, the points of testing, performed data, test synchronization problems and different solutions of these problems are considered. Beside that, application testing problems, using Flash and Silverlight, file loading variants, XSS injections are discussed.
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...ISsoft
Предлагаем вашему вниманию презентацию «BDD JBehave and Cucumber JVM + Appium for efficient cross-platform Mobile Automation». Этой презентацией сопровождался доклад Антона Семенченко, прочитанный 29 июня на конференции MobileOptimized 2014 в Минске.
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
Рассказ о том, что представляет собой наш «станок» верстальщика сегодня. Рассказывается с примерами, какие браузеры поддерживаем, как производим кроссбраузерное тестирование и какие инструменты используем, готовя проект к выходу в свет.
Полной автоматизацией процесса сборки приложения уже никого не удивишь. Не в последнюю очередь благодаря Maven – системе управления жизненным циклом проекта. Однако проекты растут очень быстро: увеличивается количество модулей, тестов, зависимостей, используемых плагинов. И всего лишь за год легковесный проект, на сборку которого уходило 5 минут, превращается в монстра, который пожирает время разработчиков 30-минутной сборкой. Чтобы справится с этой проблемой разработчикам приходится постоянно чистить свой код и бороться со скоростью выполнения тестов. Это верное решение, но не следует забывать о том, что и сам процесс сборки можно улучшить. В этом докладе будет рассмотрено, как при помощи простых и нехитрых шагов можно оптимизировать работу с зависимостями и обогатить скрипты сборки полезными плагинами. Также будут обсуждаться тонкости конфигурации основных плагинов и особенности работы с командной строкой, которые появились в последней версии Maven.
«Масштабируемый DevOps» Александр КолесеньIT Share
Типичные подходы к развертыванию приложений: как правильные, так и неправильные, но повсеместно применяемые.
Как сделать так, чтобы развертывание не стало проблемой с линейным ростом количества поддерживаемых окружений.
Методы обновления проекта с нулевым временем простоя: когда это уместно и принципиально возможно.
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesIosif Itkin
Multi-Platform Approach to Reverse Debugging of Virtual Machines
Pavel Dovgalyuk, Maria Klimushenkova, Denis Dmitriev and Vladimir Makarov, Novgorod State University
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...DevGAMM Conference
В рамках лекции будет рассмотрен ряд уже имеющихся инструментов оптимизации на движке, о которых стоит знать, начиная работу над проектом. Доклад также затрагивает практическую основу и причины таких подходов, совмещая тематику архитектуры современных игровых движков и механик рендера сцены.
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"IT Event
The world of frontend development is changing rapidly. No one stays at the top for a long time. Just yesterday we saw the triumph of React, but today Angular2 treads on its heels. Why have I chosen Vue in 2017? Why not to use a usual React? Have the Chinese managed to create a "silver bullet"? In this report we'll consider these questions and we'll find out why Vue is at the top among JS-frameworks on GitHub and whether it's worth chosing it.
(Seleniumcamp) Selenium RC for QA EngineerYan Alexeenko
The Selenium RC opportunities, problems and some features in work with it for cross-browser testing (Firefox, Internet Explorer, Safari, Google Chrome) are presented in the presentation. The issues, concerning testing automation start, the points of testing, performed data, test synchronization problems and different solutions of these problems are considered. Beside that, application testing problems, using Flash and Silverlight, file loading variants, XSS injections are discussed.
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...ISsoft
Предлагаем вашему вниманию презентацию «BDD JBehave and Cucumber JVM + Appium for efficient cross-platform Mobile Automation». Этой презентацией сопровождался доклад Антона Семенченко, прочитанный 29 июня на конференции MobileOptimized 2014 в Минске.
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
Самодельная параметризация и параллелизация тестов на Webdriver (JS) COMAQA.BY
Как задать нужные для тестового прогона параметры, такие как имя браузера, имя или url сервера, передать ссылку на определенныый набор параметров через командную строку или конфиг файл. Как организовать параллельный прогон тестов на сыром Webdriver (JS) без использования вспомогательных фреймворков (protractor, parallel-cucumber etc.) используя child_process.
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionNikita Lipsky
Говоря о Java, мы подразумеваем как минимум две вещи: JVM (виртуальную Java-машину) и Java-байткод, который исполняется на этой машине.
Внутреннее устройство JVM непростое, но очень важно понимать, из каких частей она состоит, какая часть за что отвечает и как это все вместе работает хотя бы в самых общих чертах. Эти знания помогут вам в понимании того, как работает ваша программа и как можно улучшить ее работу.
В этом докладе мы не будем лезть в кишки какой-то конкретной реализации JVM, однако мы покажем где у JVM кишки расположены, а также где находятся и для чего служат ее печень, сердце, почки, мозг и другие органы.
Семинар по Node.js в КПИ 20 октября 2014. Докладчики: Тимур Шемсединов, Никита Савченко, Максим Петренко. Краткое содержание:
* Что такое Node.js и как работает JavaScript в V8
* Профессионалы расскажут, почему они выбрали Node.js
* Вы узнаете его сильные и слабые стороны и где его лучше применять
* Будет полный обзор особеностей и внутреннего строения Node.js
* Примеры внедрения и Highload-проекты
* Вопросы развертывания, хостинг, тестирования, и отладки
* Где и что учить, что читать, как осваивать
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндексyaevents
Тарас Иващенко, Яндекс
Администратор информационной безопасности в Яндексе. Специалист по информационной безопасности, проповедник свободного программного обеспечения, автор Termite, xCobra и участник проекта W3AF.
Тема доклада
Сканирование уязвимостей со вкусом Яндекса.
Тезисы
В докладе будет рассказано о внедрении в Яндексе сканирования сервисов на уязвимости как одного из контроля безопасности в рамках SDLC (Secure Development Life Cycle). Речь пойдет о сканировании уязвимостей на этапе тестирования сервисов, а также о сканировании сервисов, находящихся в промышленной эксплуатации. Мы рассмотрим проблемы, с которыми столкнулись, и объясним, почему в качестве основного механизма решили выбрать открытое программное обеспечение (сканер уязвимостей w3af), доработанное под наши нужды.
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.
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
В темные времена доминации Internet Explorer на рынке браузеров, тестировщик оставался один на один с тестируемым приложением, и лишь усердие, трудолюбие и крепкий алкоголь могли спасти его от безумия и профессионального выгорания.
К счастью, времена изменились. Современные браузеры скрывают в себе множество полезных функций и имеют тысячи плагинов, способных помочь тестировщику веб приложений. Я расскажу вам о браузерных плагинах, которые значительно облегчили тестирование верстки, поизводительности, отзывчивости сайта, позволили мне ускорить выполнение рутинных задач, а также повысили личную эффективность.
В темные времена доминации Internet Explorer на рынке браузеров, тестировщик оставался один на один с тестируемым приложением, и лишь усердие, трудолюбие и крепкий алкоголь могли спасти его от безумия и профессионального выгорания.
К счастью, времена изменились. Современные браузеры скрывают в себе множество полезных функций и имеют тысячи плагинов, способных помочь тестировщику веб приложений. Я расскажу вам о браузерных плагинах, которые значительно облегчили тестирование верстки, поизводительности, отзывчивости сайта, позволили мне ускорить выполнение рутинных задач, а также повысили личную эффективность.
В мире автоматизации давным-давно успешно используют W3C Webdriver HTTP протокол. С его помощью реализовано множество проектов и библиотек на различных языках (selenide, protractor, webdriverio и тысячи других). Но так же в последнее время все больше и больше команд решают использовать Chrome Debug Protocol, в частности инструмент Puppeteer. Он основан на WebSockets, и имеет свои особые возможности - двухсторонняя связь, возможность подписки на события в браузере, и многое другое. В этом докладе мы посмотрим возможности обоих протоколов, поэкспериментируем и совместим их вместе в одном проекте, чтобы заставить браузер работать на полную и взять лучшее от двух каналов связи.
Presentation from https://heisenbug-piter.ru/en/talks/2018/spb/kkw6oivsoywayacggksmk/
Once upon a time, we got a requirement to finish all testing in 2 days despite the number of tests to run. That number grew, and grew, and grew, and now there are tens of millions of them. So this is a story about building a dam against the never-ending flood which turned out to be not that scary. You are very welcome to join and see it for yourself.
1. Обзор средств для тестирования JavaScript-кода:
QUnit, Jasmine, ZombieJS, PhantomJS, SinonJS и др.
Middle-developer
Чипига Сергей
Казань, Барс-Груп, 2013
7. Mocha
Возможности и особенности:
• запуск тестов из браузера;
• тестирование асинхронных запросов на примитивном уровне;
• генерация отчетов покрытия тестами;
• предоставление javascript API для запуска тестов;
• поддержка таймаутов для асинхронных тестов;
• подсветка медленных тестов
• определение утечек глобальных переменных
• возможность использовать любую библиотеку утверждений
• хуки before, after, after each, before each
8. ChaiJS
официальный сайт: http://chaijs.com/
ChaiJS - это BDD / TDD библиотека утверждений для nodejs и браузера, которая
может быть легко использована в паре с любым фреймворком тестирования
JavaScript.
assert
assert.typeOf(foo, 'string', 'foo is a string');
assert.equal(foo, 'bar', 'foo equal `bar`');
assert.lengthOf(foo, 3, 'foo`s value has a length of 3');
assert.lengthOf(beverages.tea, 3, 'beverages has 3 types of tea');
expect
expect(foo).to.be.a('string');
expect(foo).to.equal('bar');
expect(foo).to.have.length(3);
expect(beverages).to.have.property('tea').with.length(3);
should
foo.should.be.a('string');
foo.should.equal('bar');
foo.should.have.length(3);
beverages.should.have.property('tea').with.length(3)
11. PhantomJS
официальный сайт: http://phantomjs.org/
https://twitter.com/phantomjs
PhantomJS - это возможности WebKit из консоли управлять JavaScript с поддержкой
различных стандартов и технологий: DOM, CSS, JSON, Canvas и SVG.
После запуска:
phantomjs loadspeed.js http://www.google.com
результат:
Loading http://www.google.com
Page title is Google
Loading time 719 msec
12. PhantomJS
Возможности:
• Headless web testing
• Page automation
• Screen capture
• Network monitoring
• Multiplatform
• Fast and native implementation
• Pure headless (no X11) on Linux
• Easy to install
13. ZombieJS
официальный сайт: http://zombie.labnotes.org/
ZombieJS - легковесный фреймворк для тестирования client-side Javascript-кода.
Имитирует поведение браузера. Умеет интегрироваться с различного рода
средствами тестирования JavaScript: QUnit, Jasmine, Mocha
14. ZombieJS
Поддерживает методы для быстрого написания тестов:
browser.authenticate().basic("me", "secret")
browser.visit(url, options, callback)
browser.text(selector, context?)
browser.query(selector, context?)
browser.back(callback)
browser.clickLink(selector, callback)
browser.fill(field, value, callback)
browser.pressButton(selector, callback)
Официальная документация: http://zombie.labnotes.org/zombie.pdf