SlideShare a Scribd company logo
1 of 69
Download to read offline
BDD И РЕАКТИВЩИНА В 2ГИС
ЕВГЕНИЙ ТЮТЮЕВ
FDD
FDD, FORTUNE DRIVEN DEVELOPMENT
▸ Пишете код
▸ Надеетесь что он заработает
BDD, BEHAVIOUR DRIVEN DEVELOPMENT
▸ Берете сценарий
▸ Пишете на него тест
▸ Пишете код, чтобы этот тест прошел
О ЧЕМ
▸ Как пришел к разработке через тесты
▸ Внедрение BDD на проект 2ГИС под iOS
▸ Какой профит
▸ Как внедрить опыт в команду
ЧАСТЬ 1: ЧТО БЫЛО ДО ТЕСТОВ
XCTEST
▸Запутанный синтаксис
▸Мало возможностей
KIWI
▸Specs
▸Expectations
▸Mocks
▸Много примеров
▸Няшный синтаксис
ВЫВОД 1
▸ Чтобы хоть как то написать один тест на готовом
проекте вам понадобится максимум час времени.
ЧАСТЬ 2: ПЛОХИЕ ТЕСТЫ
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
▸ Тестировали все подряд
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
▸ Тестировали все подряд
▸ Писались уже на готовый код.
ЧАСТЬ 2: ГОВНЯНЫЕ ТЕСТЫ
▸ Большие (больше 10 строчек)
▸ Тестировали все подряд
▸ Писались уже на готовый код
▸ Модульность? не, не слышал.
ВЫВОД 2
▸ Даже если тесты плохие, но их достаточно много, они
помогут вам отловить критичные баги.
ЧАСТЬ 3: ПУТЬ К ТЕСТАМ ЧУТЬ ЛУЧШЕ
2ГИС
КАК НАЧАТЬ ПИСАТЬ ТЕСТЫ?
КАК НАЧАТЬ ПИСАТЬ ТЕСТЫ?
▸ Взять и написать один тест.
КАК НАЧАТЬ ПИСАТЬ ТЕСТЫ?
▸ Взять и написать один тест.
▸ Написать кучу хоть каких то тестов.
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
▸ Понимаете что они не очень
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
▸ Понимаете что они не очень
▸ Удаляете
КАК ПИСАТЬ ТЕСТЫ ПОЛУЧШЕ?
▸ Пишите примерно 200 тестов
▸ Понимаете что они не очень
▸ Удаляете
▸ Пишите тесты получше
КАК ОПРЕДЕЛИТЬ ЧТО ТЕСТ ХОРОШ?
ОДНО ПРЕДПОЛОЖЕНИЕ = ОДИН ТЕСТ
СЛЕДСТВИЕ
ОДИН ТЕСТ = МАЛО КОДА
Кто то там.
ВЫВОД 3
Удалить
ТЕСТ ДОЛЖЕН БЫТЬ НАСТОЛЬКО ТУП
И ПРОСТ, ЧТО ОБЪЯСНИТЬ ЕГО
МОЖНО ДАЖЕ ВАШЕЙ МАМЕ.
Кто то там.
ВЫВОД 4
ХОРОШИЕ ТЕСТЫ ≈ ХОРОШИЙ КОД
Кто то там.
ВЫВОД 5
ЧАСТЬ 4: ПУТЬ К НОРМАЛЬНЫМ ТЕСТАМ НА
РЕАКТИВНЫЙ КОД
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
▸ Тестируем то, что метод в сигнале вызывается
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
▸ Тестируем то, что метод в сигнале вызывается
▸ Тестируем метод в теле сигнала
КАК ТЕСТИРОВАТЬ РЕАКТИВНЫЙ КОД?
▸ Разбиваем сигнал на 3 части
▸ Тестируем создание сигнала
▸ Тестируем то, что метод в сигнале вызывается
▸ Тестируем метод в теле сигнала
▸ Если метод большой, то разбиваем его на простые
методы и тестируем их.
ЧЕМ ХОРОШ ТАКОЙ ПОДХОД
ЧЕМ ХОРОШ ТАКОЙ ПОДХОД
▸ Локализует проблему при поломке
ЧЕМ ХОРОШ ТАКОЙ ПОДХОД
▸ Локализует проблему при поломке
▸ Меньше кода проще тестировать.
УПРАВЛЕНИЕ СЛОЖНОСТЬЮ — САМЫЙ ВАЖНЫЙ
ТЕХНИЧЕСКИЙ АСПЕКТ РАЗРАБОТКИ ПО.
ПО-МОЕМУ, УПРАВЛЕНИЕ СЛОЖНОСТЬЮ
НАСТОЛЬКО ВАЖНО, ЧТО ОНО ДОЛЖНО БЫТЬ
ГЛАВНЫМ ТЕХНИЧЕСКИМ ИМПЕРАТИВОМ
РАЗРАБОТКИ ПО.
С. Макконнелл
ЧТО ПОЛУЧИЛИ
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
▸ Протестированная часть разбита на модули
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
▸ Протестированная часть разбита на модули
▸ Новые фичи пишутся через тесты
ЧТО ПОЛУЧИЛИ
▸ За 3 месяца 8% проекта покрыто тестами
▸ Протестированная часть разбита на модули
▸ Новые фичи пишутся через тесты
▸ Команда втягивается в процесс
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
▸ Ясность
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
▸ Ясность
▸ Предсказуемость
ДЛЯ ЧЕГО ВСЕ ЭТО НУЖНО?
▸ Увереность
▸ Ясность
▸ Предсказуемость
▸ Нет регрессиям
БОНУС: МОТИВАЦИЯ КОМАНДЫ
БОНУС: МОТИВАЦИЯ КОМАНДЫ
▸ Как?
БОНУС: МОТИВАЦИЯ КОМАНДЫ
▸ Как?
▸ Никак
ТЕСТИРОВАТЬ - КРУТО
Ч. Норрис
ВОПРОСЫ?
▸ e.tyutyuev@2gis.ru

More Related Content

What's hot

«Домовёнок кузя изгоняет лешего»
«Домовёнок кузя изгоняет лешего»«Домовёнок кузя изгоняет лешего»
«Домовёнок кузя изгоняет лешего»Olga Lavrentieva
 
enterprize yoba jabber bot
enterprize yoba jabber botenterprize yoba jabber bot
enterprize yoba jabber botzxcby
 
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Ontico
 
DEFCON и развитие информационной безопасности в стране
DEFCON и развитие информационной безопасности в странеDEFCON и развитие информационной безопасности в стране
DEFCON и развитие информационной безопасности в странеdefcon_kz
 
Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Fwdays
 
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп Дельгядо
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп ДельгядоСложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп Дельгядо
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп ДельгядоOntico
 

What's hot (7)

«Домовёнок кузя изгоняет лешего»
«Домовёнок кузя изгоняет лешего»«Домовёнок кузя изгоняет лешего»
«Домовёнок кузя изгоняет лешего»
 
enterprize yoba jabber bot
enterprize yoba jabber botenterprize yoba jabber bot
enterprize yoba jabber bot
 
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
 
DEFCON и развитие информационной безопасности в стране
DEFCON и развитие информационной безопасности в странеDEFCON и развитие информационной безопасности в стране
DEFCON и развитие информационной безопасности в стране
 
Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"
 
Разведка боем
Разведка боемРазведка боем
Разведка боем
 
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп Дельгядо
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп ДельгядоСложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп Дельгядо
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп Дельгядо
 

Viewers also liked

Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»DevDay
 
Задачи машинного обучения
Задачи машинного обученияЗадачи машинного обучения
Задачи машинного обученияAlexey Sibirtsev
 
Learning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network SurveysLearning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network SurveysSean Taylor
 
App store iap. short comments
App store iap.   short commentsApp store iap.   short comments
App store iap. short commentsDevDay
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5DevDay
 
Cоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задачCоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задачDevDay
 
Взаимодействие Go и C-библиотек. Go и Erlang
Взаимодействие Go и C-библиотек. Go и ErlangВзаимодействие Go и C-библиотек. Go и Erlang
Взаимодействие Go и C-библиотек. Go и ErlangDevDay
 
Lua vs c++_desyatov
Lua vs c++_desyatovLua vs c++_desyatov
Lua vs c++_desyatovDevDay
 
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоМанипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоDevDay
 
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...DevDay
 
Хочу делать игры, пусть меня научат — DevDay, 06.06.2012
Хочу делать игры, пусть меня научат — DevDay, 06.06.2012Хочу делать игры, пусть меня научат — DevDay, 06.06.2012
Хочу делать игры, пусть меня научат — DevDay, 06.06.2012DevDay
 
Веб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и ITВеб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и ITDevDay
 
Фича готова. Что дальше?
Фича готова. Что дальше?Фича готова. Что дальше?
Фича готова. Что дальше?DevDay
 
Артём Кудзев «Делайте на работе то, что мотивирует»
Артём Кудзев «Делайте на работе то, что мотивирует»Артём Кудзев «Делайте на работе то, что мотивирует»
Артём Кудзев «Делайте на работе то, что мотивирует»DevDay
 
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИСDevDay
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья ПастушковDevDay
 
Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)
Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)
Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)DevDay
 
Распределенное хранилище Ceph. Обзор и практические способы использования
Распределенное хранилище Ceph. Обзор и практические способы использованияРаспределенное хранилище Ceph. Обзор и практические способы использования
Распределенное хранилище Ceph. Обзор и практические способы использованияDevDay
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
 
Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»DevDay
 

Viewers also liked (20)

Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»
 
Задачи машинного обучения
Задачи машинного обученияЗадачи машинного обучения
Задачи машинного обучения
 
Learning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network SurveysLearning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network Surveys
 
App store iap. short comments
App store iap.   short commentsApp store iap.   short comments
App store iap. short comments
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
 
Cоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задачCоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задач
 
Взаимодействие Go и C-библиотек. Go и Erlang
Взаимодействие Go и C-библиотек. Go и ErlangВзаимодействие Go и C-библиотек. Go и Erlang
Взаимодействие Go и C-библиотек. Go и Erlang
 
Lua vs c++_desyatov
Lua vs c++_desyatovLua vs c++_desyatov
Lua vs c++_desyatov
 
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоМанипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
 
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
 
Хочу делать игры, пусть меня научат — DevDay, 06.06.2012
Хочу делать игры, пусть меня научат — DevDay, 06.06.2012Хочу делать игры, пусть меня научат — DevDay, 06.06.2012
Хочу делать игры, пусть меня научат — DevDay, 06.06.2012
 
Веб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и ITВеб 3.0. Футуристический рассказ о будущем интернета и IT
Веб 3.0. Футуристический рассказ о будущем интернета и IT
 
Фича готова. Что дальше?
Фича готова. Что дальше?Фича готова. Что дальше?
Фича готова. Что дальше?
 
Артём Кудзев «Делайте на работе то, что мотивирует»
Артём Кудзев «Делайте на работе то, что мотивирует»Артём Кудзев «Делайте на работе то, что мотивирует»
Артём Кудзев «Делайте на работе то, что мотивирует»
 
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)
Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)
Инструкция по созданию самопального биллинга, Михаил Крестьянинов (Новотелеком)
 
Распределенное хранилище Ceph. Обзор и практические способы использования
Распределенное хранилище Ceph. Обзор и практические способы использованияРаспределенное хранилище Ceph. Обзор и практические способы использования
Распределенное хранилище Ceph. Обзор и практические способы использования
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
 
Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»
 

Similar to «Bdd и реактивщина в 2ГИС», Евгений Тютюев

Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...Badoo Development
 
ЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТ
ЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТ
ЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТNaZapad
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Mail.ru Group
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Инструменты системного мышления против решений (РИТ++)
Инструменты системного мышления против решений (РИТ++)Инструменты системного мышления против решений (РИТ++)
Инструменты системного мышления против решений (РИТ++)2ГИС Технологии
 

Similar to «Bdd и реактивщина в 2ГИС», Евгений Тютюев (10)

Tdd
TddTdd
Tdd
 
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
 
BDD
BDDBDD
BDD
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
TDD
TDDTDD
TDD
 
ЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТ
ЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТ
ЗАПУСТИТЬ ПРОЕКТ ПОД БУРЖ И НЕ СЛИТЬ БЮДЖЕТ
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Tdd in the world of big data
Tdd in the world of big dataTdd in the world of big data
Tdd in the world of big data
 
Инструменты системного мышления против решений (РИТ++)
Инструменты системного мышления против решений (РИТ++)Инструменты системного мышления против решений (РИТ++)
Инструменты системного мышления против решений (РИТ++)
 

More from DevDay

«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий МузюкинDevDay
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковDevDay
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevDay
 
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковInversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковDevDay
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь КудринDevDay
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил ИльиныхDevDay
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим БерёзкинDevDay
 
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета АлексеенкоDevDay
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовDevDay
 
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя ПономарёвDevDay
 
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев «Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев DevDay
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья ТаратухинDevDay
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис РечкуновDevDay
 
Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»DevDay
 
Распределенные приложения и Azure Service Bus
Распределенные приложения и Azure Service BusРаспределенные приложения и Azure Service Bus
Распределенные приложения и Azure Service BusDevDay
 
Frontend
FrontendFrontend
FrontendDevDay
 
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»DevDay
 
Роман Акинфеев «Разработка RESTful API with all bells and whistles»
Роман Акинфеев «Разработка RESTful API with all bells and whistles»Роман Акинфеев «Разработка RESTful API with all bells and whistles»
Роман Акинфеев «Разработка RESTful API with all bells and whistles»DevDay
 
Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»DevDay
 

More from DevDay (20)

«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим Пашук
 
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковInversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
 
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
 
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв
 
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев «Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
 
Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»
 
Распределенные приложения и Azure Service Bus
Распределенные приложения и Azure Service BusРаспределенные приложения и Azure Service Bus
Распределенные приложения и Azure Service Bus
 
Frontend
FrontendFrontend
Frontend
 
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
 
Роман Акинфеев «Разработка RESTful API with all bells and whistles»
Роман Акинфеев «Разработка RESTful API with all bells and whistles»Роман Акинфеев «Разработка RESTful API with all bells and whistles»
Роман Акинфеев «Разработка RESTful API with all bells and whistles»
 
Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»
 

«Bdd и реактивщина в 2ГИС», Евгений Тютюев