QA Fest 2019. Андрей Солнцев. Selenide для профиQAFest
Если вы устали от примитивных "Hello World" примеров и хотите знать больше про кишки Selenide и подводные камни, приходите на этот доклад. Обсудим параллельный запуск, рулы и листенеры, трюки с помощью JavaScript и прокси и всё такое.
А ещё лучше, если вы сами предложите свою тему. Повлияй на доклад!
Продвинутое использование ActiveRecord в Yii2Paul Klimov
Запись лекции "Продвинутое использование ActiveRecord в Yii2" от 24.09.2016, проходившей в Киеве в "Projector"
http://prjctr.com.ua/events/yii2-conference.html
QA Fest 2019. Андрей Солнцев. Selenide для профиQAFest
Если вы устали от примитивных "Hello World" примеров и хотите знать больше про кишки Selenide и подводные камни, приходите на этот доклад. Обсудим параллельный запуск, рулы и листенеры, трюки с помощью JavaScript и прокси и всё такое.
А ещё лучше, если вы сами предложите свою тему. Повлияй на доклад!
Продвинутое использование ActiveRecord в Yii2Paul Klimov
Запись лекции "Продвинутое использование ActiveRecord в Yii2" от 24.09.2016, проходившей в Киеве в "Projector"
http://prjctr.com.ua/events/yii2-conference.html
Примеры решения типичных задач за рамками ядра Yii2Paul Klimov
Рассмотрим сравнительно сложные, и в то же время, часто возникающие, задачи, для которых ядро Yii не дает готового решения. Посмотрим как из отдельных моделей ActiveRecord собирать единые сущности, и как разбивать большие модели на составляющие. Разберем как правильно сохранять файлы и как сэкономить на обработчиках событий и поведениях
- Интернационализация сущностей в базе данных;
- Обработка “ролей” в реляционных базах данных;
- Работа с файлами;
- Вложенные модели;
- Trait вместо Behavior.
Примеры решения типичных задач за рамками ядра Yii2Paul Klimov
Рассмотрим сравнительно сложные, и в то же время, часто возникающие, задачи, для которых ядро Yii не дает готового решения. Посмотрим как из отдельных моделей ActiveRecord собирать единые сущности, и как разбивать большие модели на составляющие. Разберем как правильно сохранять файлы и как сэкономить на обработчиках событий и поведениях
- Интернационализация сущностей в базе данных;
- Обработка “ролей” в реляционных базах данных;
- Работа с файлами;
- Вложенные модели;
- Trait вместо Behavior.
Keynote from ACCU 2015 conference (http://accu.org/index.php/conferences/accu_conference_2015)
@petegoodliffe
www.goodliffe.net
Synopsis:
You've come this conference to improve your skills. You're here to learn: to learn new technologies, to learn new techniques, and to fuel your passion by meeting like-minded people.
Becoming a better programmer means more than just learning new technologies. It means more than practising techniques and idioms. It's about more than passion and attitude. It's the combination of all these things. That's what this session will look at.
Pete Goodliffe, author of the new book Becoming a Better Programmer, unpacks important mindsets and techniques that will help you improve as a programmer.
You'll discover specific tools that will help you review your current skillset, and you'll learn techniques to help you “become a better programmer”.
How do you scale CSS for millions of visitors or thousands of pages? The slides from Nicole's presentation at Web Directions North in Denver will show you how to use Object Oriented CSS to write fast, maintainable, standards-based front end code. Adds much needed predictability to CSS so that even beginners can participate in writing beautiful, standards-compliant, fast websites.
In this session, I look at the challenges that real companies face when trying to adopt the good practices that fall under the banner of Continuous Delivery. To do this, we’ll start by extracting the core concepts described in the book Continuous Delivery by Jez Humble and Dave Farley, and look at how these map to the practices of typical organisations today.
We’ll dig deep into the relationship between Agile and Continuous Delivery, how DevOps and infrastructure-as-code fit into the delivery process, and its impact on software development practices, especially version control.
Imagine a culture where the input of the whole organization turns an individual idea into a user story in just a couple of hours, where everybody's goal is to make the customer’s job easier and more effective, and where you work on projects you love instead of projects you loathe. A great coding culture concentrates on making developers productive and happy by removing unnecessary overhead, bringing autonomous teams together, helping the individual programmer to innovate, and raising awareness among developers about how to create better code.
I will talk about how to establish and foster a strong engineering-focused culture that scales from a small team to a huge organization with hundreds of developers. I'll give lots of examples from our experience at Atlassian to show that once you're working in a great coding culture, you won't want to work anywhere else.
https://www.youtube.com/watch?v=TAk04-_M-JM&feature=youtu.be
Keynote presented at SDD (12th May 2015)
Somewhere in the heart of a development process, essential to the very being of a product's existence, are the people who write, consider and wrestle with code. What motivates and demotivates them? What are the intellectual challenges and rewards? What are the skills they have and need and cognitive biases and environment they work with and against?
This talk by the editor of 97 Things Every Programmer Should Know considers the act of programming and those who do it and want to get better at it, from the perspective of development process to craft, from architecture to code.
Creative Traction Methodology - For Early Stage StartupsTommaso Di Bartolo
How to build a mindset that gets a new product traction? 99% of all startups are forced to give up because they lack traction. As founders are thrilled and captivated to build a product that could change the world - the majority downright neglects to put equal efforts towards how to differentiate in taking the product to market. The difference between those who make it to get traction and the rest lies in the innovator’s mindset.
We suddenly live in a strange and wonderful nexus of digital and physical. Touchscreens let us hold information in our hands, and we touch, stretch, crumple, drag, and flick data itself. Our sensor-packed phones even reach beyond the screen to interact directly with the world around us. While these digital interfaces are becoming physical, the physical world is becoming digital, too. Objects, places, and even our bodies are lighting up with with sensors and connectivity. We’re not just clicking links anymore; we’re creating physical interfaces to digital systems. This requires new perspective and technique for web and product designers. The good news: it’s all within your reach. With a rich trove of examples, Designing for Touch author Josh Clark explores the practical, meaningful design opportunities for the web’s newly physical interfaces.
Mobile-First SEO - The Marketers Edition #3XEDigitalAleyda Solís
How to target your SEO process to a reality of more people searching on mobile devices than desktop and an upcoming mobile first Google index? Check it out.
An immersive workshop at General Assembly, SF. I typically teach this workshop at General Assembly, San Francisco. To see a list of my upcoming classes, visit https://generalassemb.ly/instructors/seth-familian/4813
I also teach this workshop as a private lunch-and-learn or half-day immersive session for corporate clients. To learn more about pricing and availability, please contact me at http://familian1.com
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQAFest
Page Objects, вероятно, самый известный на сегодня паттерн, используемый в автоматизации через UI. И самый простой, скажете вы? Не соглашусь, по моим наблюдением применение данного паттерна таит в себе подводные камни даже для наиболее типичных веб-приложений.
В данном докладе я познакомлю вас с тремя простыми и практичными видами PageObject архитектуры - Static, Void и Fluent, продемонстрирую использование кодом, сравню плюсы и минусы подходов. Также я расскажу о важных недостатках Yandex HTMLElements и о некоторых других неудачных подходах, которые повторяются из одного самодельного фреймворка в другой. Вы увидите на примерах, как простой код решает проблемы лучше, чем слишком умный. Примеры на языке Java/Selenide легко переносимы и на другие языки программирования (.NET, Python и другие).
SECON'2016. Иовлев Роман, JDI is UI Automation FutureSECON
Хочешь узнать как можно получать удовольствие от автоматических тестов? Как писать сами тесты не тратя время на многочисленные Хелперы и заплатки? И при этом получить действительно качественные понятные тесты с детальными логами и возможностью быстрого рефакторинга? Ты хочешь иметь тесты написанные в едином стиле не только для Web, но и мобильных устройств и даже десктоп приложений? Приходи и мы расскажем как наша новая разработка JDI поможет тебе стать настоящим Джедаем в автоматизации!
Неважно какой фреймворк вы используете, внутри всё равно будет ваш уникальный код под проект, со своей структурой и логикой. Его нужно поддерживать, а коллегам нужно в него вникать. Как минимизировать порог вхождений и в целом облегчить поддержку проекта? Какие инструменты и подходы можно использовать, или сделать самому, для анализа, даже не кода, а проекта в целом? Константин поделится своим взглядом на этим вопросы и какие могут быть решения.
Максим Ширшин "SVARX, или Борьба с большими формами"Yandex
Максим Ширшин "SVARX, или Борьба с большими формами"
Я.Субботник в Новосибирске
О докладе:
Как реализовать и поддерживать валидацию сложных веб-форм? Зачем проверять формы на стороне клиента? Что должен уметь фреймворк для клиентской валидации? Зачем был придуман SVARX, как он устроен и как начать его использовать?
Пластилиновый код: как перестать кодить и начать житьMoscow.pm
Елена Шишкина, ведущий программист Деньги Mail.Ru. Она покажет практический пример лени как двигателя прогресса в отдельно взятом веб-проекте:
- Надоело писать код? Будем думать, как его не писать!
- Боремся с однотипным кодом. Боремся с неоднотипным кодом.
- Код, которого не существует, и код, который существует.
- Следите за руками: программируем на конфигах!
- Как жить дальше?
4. DOM
— Document Object Model — это API, для чтения и редактирования
содержимомого HTML и XML-документов
— Это дерево, узлами которого могут быть элементы, текст,
комментарии, атрибуты и другие
4
5. Что позволяет нам DOM?
— Получать доступ к узлу или набору узлов
— Обход дерева
— Изменять атрибуты узла
— Добавлять / удалять / клонировать узлы
— Обрабатывать события на узлах
5
7. Что такое jQuery?
— JS-библиотека, призванная сделать код удобнее и более
кроссбраузерным
— Главный слоган „Write less, do more“ — «Пиши меньше, получай
больше»
— Всё API нацелено сделать код короче, понятнее и исправить
шороховатости в нативных реализациях
7
8. Что такое jQuery?
— Был разработан и презентован Джоном Резигом в 2006
— Продолжает развиваться и сейчас
— Код постоянно претерпевает рефакторинг и оптимизации
9. Что такое jQuery?
— Используется практически всеми крупнейшими компаниями (Яндекс,
Google, Mozilla)
— Имеет обширное комьюнити и огромное количество plugin`ов
— Есть расширения для UI и мобильных приложений
9
10. Волшебный $
— Переменные в JS могут начинаться с букв и некоторых символов
— jQuery — одна из первых библиотек, начавших использовать $ в
качестве пространства имен
— jQuery === $
10
21. Итерирование по результатам
Вариант №1
var elems = document.querySelectorAll('input,button');
for (var i = 0, l = elems.length; i < l; i++) {
var elem = elems[i];
01.
02.
03.
04.
}
21
22. Итерирование по результатам
Вариант №2
var elems = document.querySelectorAll('input,button');
var elemsList = Array.prototype.slice.call(elems);
elemsList.forEach(function(elem) {
…
});
01.
02.
03.
04.
05.
22
43. Все элементы DOM и jQuery
могут реагировать на те или
иные события
44. Можно навешивать обработчики в HTML
01.
02.
03.
04.
05.
06.
<form class="auth" id="auth"
data-value="123" action="/" onsubmit="submitHandler()">
<input type="text" value="" name="login">
<input type="password" value="" name="password">
<button onclick="clickHandler()">Отправить</button>
</form>
44
45. Почему это плохо?
— Нельзя навешать более одного обработчика на узел
— JS и HTML становятся тесно связаны
— Неинтуитивно
— При изменении HTML необходимо всегда помнить про атрибуты с
обработчиками
— Нельзя динамически навешивать обработчики
45
46. addEventListener
01.
02.
var form = document.getElementById('auth');
form.addEventListener('submit', submitHandler);
01.
02.
03.
46
var button = document.querySelector('button');
button.addEventListener('click', clickHandler);
button.addEventListener('click', yetClickHandler);
75. jQuery tips and tricks
— Называйте jQuery-переменные, начиная с $
— Всегда кэшируйте результаты селекторов
— Используйте live-события по возможности
— Посмотрите „30 Days to Learn jQuery“
— Используйте map, grep, proxy и другие утилиты
75
76. Мы научились
— Получать доступ к узлу или набору узлов
— Обход дерева
— Изменять атрибуты узла
— Добавлять / удалять / клонировать узлы
— Обрабатывать события на узлах
76