«Chef и Аnsible в инфраструктуре 2ГИС» — Артём Силенков, 2ГИСDevDay
— Интернет-проект, проблемы роста и развития: ITIL + DevOps.
— Уровни управления серверной инфраструктурой — bootstrap, configuration, deploy.
— Cистемы управления серверной инфраструктурой на примере Chef и Ansible, плюсы и минусы.
— Обратная связь от приложений, Graylog2.
— Как мы деплоим наш геокластер — примеры рецептов Chef и Ansible playbooks.
— Существующие проблемы и планы на будущее.
В своём выступлении я расскажу, как мы развёртываем API 2ГИС и 2ГИС-Онлайн на серверы в Новосибирске, Москве и Амстердаме.
Особый интерес представляет API 2ГИС, так как этот продукт является довольно сложным приложением, с более чем двумя десятками компонентов и приложений: Nginx, Yii, С++, Python, Lua, PostgreSQL, Redis, Node.js и прочее.
«Chef и Аnsible в инфраструктуре 2ГИС» — Артём Силенков, 2ГИСDevDay
— Интернет-проект, проблемы роста и развития: ITIL + DevOps.
— Уровни управления серверной инфраструктурой — bootstrap, configuration, deploy.
— Cистемы управления серверной инфраструктурой на примере Chef и Ansible, плюсы и минусы.
— Обратная связь от приложений, Graylog2.
— Как мы деплоим наш геокластер — примеры рецептов Chef и Ansible playbooks.
— Существующие проблемы и планы на будущее.
В своём выступлении я расскажу, как мы развёртываем API 2ГИС и 2ГИС-Онлайн на серверы в Новосибирске, Москве и Амстердаме.
Особый интерес представляет API 2ГИС, так как этот продукт является довольно сложным приложением, с более чем двумя десятками компонентов и приложений: Nginx, Yii, С++, Python, Lua, PostgreSQL, Redis, Node.js и прочее.
Все мы привыкли писать программы, результаты работы которых можно увидеть и услышать. Хотите, чтобы их можно было ещё и потрогать? На примере создания электронной игры «Лабиринт» вы увидите, как не имея знаний и опыта сделать первый шаг в мир hardware.
Digitization of sales and marketing seminar in stockholm 17 october 2014Kimmo Kanerva
Seminar presentation in Stockholm on 17 October 2014.
Successful Digitization Requires: Clear Vision and Road Map, Agile Governance, Renewing Processes, New Competences and Data Orientation.
SLIDE 2: Digitalization of customer facing activities means e.g. product data management, eCommerce, CRM, knowledge management, marketing automation
SLIDES 3: Digitization Roadmap
SLIDE 4: Digitalization changes processes
SLIDE 5: Too many difficult concepts like knowledge management
SLIDE 6: Good vision & agile governance is required in order to be successful
SLIDE 7: Digital + Data = Sales Productivity
SLIDE 8: New marketing competences like customer experience, analytics, content marketing
SLIDE 9: New sales competences like social selling, analytics, digital collaboration
SLIDE 10-13: Predictive analytics. Sales want to have more consultative discussions
SLIDE 14-17: Ruukki B2C lead managment process and results
SLIDES: 18-22. Ruukki marketing automation example. Eloqua global winner of the Markie Award "The Best IT - Marketing Collaboration"
SLIDE 23: Summary: Renew processes, strategy and governance, new capabilities
Поговорим, как и зачем функционально тестировать хайлоад, получать от тестов больше, чем «прошёл/не прошёл», а их количество превратить в качество продукта.
Фреймворк Slot, Good Parts, Александр БирюковDevDay
Расскажу о ключевых особенностях продукта: о какой изоморфности идёт речь, как мы управляем состоянием SinglePage-приложения и какой профит для SEO извлекли, с примерами кода. Посмотрим как быстро начать свой проект на Slot.
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
О том, как перестать вручную контролировать DOM, писать логику навигаций и почему DOM-шаблонизация — это классно, а так же немного самокритики и сравнительных тест-кейсов.
Devops-практики в разработке решений для бизнеса, Максим ПашукDevDay
Обычно разработчик успокаивается как только написан код, решающий задачи бизнеса. На самом деле есть ещё целый ряд вопросов, которые также необходимо решать.
Как донести изменения разработчика до тестирования в согласованном виде (база данных, приложение, конфиги)? Как донести эти же изменения до production и ничего не потерять по дороге? Что делать если продукт — распределённая многокомпонентная система, работающая в отказоустойчивом кластере? Тогда ситуация требует тесной совместной работы разработчиков и администраторов, а это, как известно, люди немного с разных планет.
Я расскажу на примере конкретного проекта на .NET стеке, как мы построили мост дружбы. Как свели воедино систему сборки, развёртывания и автоматизации, используя библиотеку psake и достигли взаимопонимания.
Inversion of Control в деталях, Дмитрий КожевниковDevDay
Казалось бы всё сказано об инверсии управления, особенно в .NET. Но нетривиальные квесты вокруг дизайна, построенного на DI, продолжают возникать из проекта в проект. Предлагаю поговорить немного о прописных истинах, а потом перейти к более любопытным вещам и болезненным вопросам.
Чем плох ServiceLocator? Почему IoC-контейнер — это фреймворк, а не библиотека? Как быть с множественными реализациями? Convention over configuration?
Отдельно поговорим об архитектуре enterprise решений в свете возможностей IoC-контейнеров.
Год от года многие программисты решают одни и те же задачи, но не всегда среди огромного многообразия решений можно найти что-то подходящее. Вот и мы не смогли найти ни одной библиотеки логирования для C++, которая удовлетворяла бы всем нашим требованиям. Теперь у нас есть свой велосипед, и мы расскажем, чем он лучше других.
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоDevDay
За последние несколько десятков лет робототехника стала очень доступной. Настолько, что можно собрать робота и запрограммировать его даже в домашних условиях, имея подходящий инструментарий. С чего начать? Как попробовать? Именно об этом мы и поговорим на докладе на примере контроллера TI Stellaris Launchpad (аналог Arduino), управляемого с Android-смартфона.
Все мы привыкли писать программы, результаты работы которых можно увидеть и услышать. Хотите, чтобы их можно было ещё и потрогать? На примере создания электронной игры «Лабиринт» вы увидите, как не имея знаний и опыта сделать первый шаг в мир hardware.
Digitization of sales and marketing seminar in stockholm 17 october 2014Kimmo Kanerva
Seminar presentation in Stockholm on 17 October 2014.
Successful Digitization Requires: Clear Vision and Road Map, Agile Governance, Renewing Processes, New Competences and Data Orientation.
SLIDE 2: Digitalization of customer facing activities means e.g. product data management, eCommerce, CRM, knowledge management, marketing automation
SLIDES 3: Digitization Roadmap
SLIDE 4: Digitalization changes processes
SLIDE 5: Too many difficult concepts like knowledge management
SLIDE 6: Good vision & agile governance is required in order to be successful
SLIDE 7: Digital + Data = Sales Productivity
SLIDE 8: New marketing competences like customer experience, analytics, content marketing
SLIDE 9: New sales competences like social selling, analytics, digital collaboration
SLIDE 10-13: Predictive analytics. Sales want to have more consultative discussions
SLIDE 14-17: Ruukki B2C lead managment process and results
SLIDES: 18-22. Ruukki marketing automation example. Eloqua global winner of the Markie Award "The Best IT - Marketing Collaboration"
SLIDE 23: Summary: Renew processes, strategy and governance, new capabilities
Поговорим, как и зачем функционально тестировать хайлоад, получать от тестов больше, чем «прошёл/не прошёл», а их количество превратить в качество продукта.
Фреймворк Slot, Good Parts, Александр БирюковDevDay
Расскажу о ключевых особенностях продукта: о какой изоморфности идёт речь, как мы управляем состоянием SinglePage-приложения и какой профит для SEO извлекли, с примерами кода. Посмотрим как быстро начать свой проект на Slot.
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
О том, как перестать вручную контролировать DOM, писать логику навигаций и почему DOM-шаблонизация — это классно, а так же немного самокритики и сравнительных тест-кейсов.
Devops-практики в разработке решений для бизнеса, Максим ПашукDevDay
Обычно разработчик успокаивается как только написан код, решающий задачи бизнеса. На самом деле есть ещё целый ряд вопросов, которые также необходимо решать.
Как донести изменения разработчика до тестирования в согласованном виде (база данных, приложение, конфиги)? Как донести эти же изменения до production и ничего не потерять по дороге? Что делать если продукт — распределённая многокомпонентная система, работающая в отказоустойчивом кластере? Тогда ситуация требует тесной совместной работы разработчиков и администраторов, а это, как известно, люди немного с разных планет.
Я расскажу на примере конкретного проекта на .NET стеке, как мы построили мост дружбы. Как свели воедино систему сборки, развёртывания и автоматизации, используя библиотеку psake и достигли взаимопонимания.
Inversion of Control в деталях, Дмитрий КожевниковDevDay
Казалось бы всё сказано об инверсии управления, особенно в .NET. Но нетривиальные квесты вокруг дизайна, построенного на DI, продолжают возникать из проекта в проект. Предлагаю поговорить немного о прописных истинах, а потом перейти к более любопытным вещам и болезненным вопросам.
Чем плох ServiceLocator? Почему IoC-контейнер — это фреймворк, а не библиотека? Как быть с множественными реализациями? Convention over configuration?
Отдельно поговорим об архитектуре enterprise решений в свете возможностей IoC-контейнеров.
Год от года многие программисты решают одни и те же задачи, но не всегда среди огромного многообразия решений можно найти что-то подходящее. Вот и мы не смогли найти ни одной библиотеки логирования для C++, которая удовлетворяла бы всем нашим требованиям. Теперь у нас есть свой велосипед, и мы расскажем, чем он лучше других.
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоDevDay
За последние несколько десятков лет робототехника стала очень доступной. Настолько, что можно собрать робота и запрограммировать его даже в домашних условиях, имея подходящий инструментарий. С чего начать? Как попробовать? Именно об этом мы и поговорим на докладе на примере контроллера TI Stellaris Launchpad (аналог Arduino), управляемого с Android-смартфона.
Расскажу про первый продукт 2ГИС, который не совсем про организации – 2GIS Dialer. О трудностях создания, и почему их не нужно бояться. Делая что-то новое, вы обязательно с ними столкнетесь:
— Команда будет меняться.
— Конкуренты будут поджимать и опережать.
— Промо-кампании не будут стрелять.
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев DevDay
С чего начинается проектирование и дизайн новых продуктов — со сценариев. Продуктовые сценарии работы — ключевой элемент в пазле проектирования новых взаимодействий. В докладе покажу какое место сценарии занимают в 2ГИСе, почему они важны и какие сценарии бывают.
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...DevDay
В своем докладе я расскажу о постановке цели и подготовительном этапе при проведении продуктовых исследований. Мы рассмотрим наиболее популярные виды исследований. Специфику исследований на локальном и междунароных рынках. Прикладную ценность результатов исследований. И это всё на примерах продуктов компании 2ГИС.
Матвей Мальков «Ещё один поиск контактов на Android»DevDay
Многие дайлеры не умеют делать поиск по Т9 клавиатуре. Те, что умеют, в большинстве своем делают поиск только по имени/фамилии контакта или по началу номера, а кто-то только с использованием английского алфавита. В 2GIS Dialer нам хотелось искать все контакты по имени, фамилии, телефону (любому из списка и с любого символа), а так же по должности и месту работу (опционально: e-mail и вебсайт, адрес и группы контактов). Кроме того, нам хотелось, чтобы пользователь на любом языке мог найти свои контакты. И в завершение необходимо было, чтобы весь этот поиск работал быстро. О том, как мы добились прогресса в этом деле я и расскажу.
Олег Годовых «Страх и ненависть в Event Bus»DevDay
У нас было 500 страниц спецификаций, 40000 строк кода, 2 офиса, полдюжины разработчиков, а также целое множество андроидов всех сортов и расцветок. Не то, чтобы это был необходимый запас для приложения крупной торговой сети. Но если начал собирать софт, становится трудно остановиться. Единственное, что вызвало у меня опасение — это сетевая библиотека. Нет ничего более беспомощного, безответственного и испорченного, чем писать AsyncTask на каждый вызов. Я знал, что рано или поздно мы перейдём на Event Bus.
Распределенные приложения и Azure Service BusDevDay
Когда приложения перестают быть монолитными и разделяются на подсистемы, возникает много нюансов. Как спроектировать распределенную систему так, чтобы она оставалась управляемой? Как добиться того, чтобы процессы, в которых задействованы несколько подсистем, остаавалить прозрачными, а данные - согласованными? Какие принципы, технологии и инструменты могут нам помочь? Я расскажу о том, какие задачи мы решаем в одном из внутренних проектов 2ГИС, и почему мы остановились на Azure Service Bus как на инструменте обеспечения взаимодействия подсистем приложения.
Современный веб становится интерактивнее. Сейчас практически все браузеры поддерживают такую технологию как WebSocket, но современные веб-фремймоворки, такие как Django, Yii или RubyOnRails, не поддерживают работу с ними. Я расскажу, как мы сделали наши приложения интерактивным с использованием Erlang. А также что такое Erlang. Для чего он нужен.
2. Как сло
✖ Дать джуниору доступ до репозитория
✖ Сменить окружение
✖ Сменить контент
✖ Не проработанные требования
✖ Противоречивые требования
мать код
02
13. Go! Поехали! Нажмите чтобы
поехать!
Нажмите чтобы
поехать!
Это кнопка на которую
можно нажимать
Одиннадцатикл
ассница
рентгеноэлектрокардиогра
фическая
Одиннадцатикл
ассница
рентгеноэлектрокардиогра
фическая
рентгеноэлектрокардиогра
фическая
37
17. 100% регрессия
Go! Поехали! Нажмите чтобы
поехать!
Нажмите чтобы
поехать!
Это кнопка на которую
можно нажимать
Одиннадцатик
лассница
рентгеноэлектрокарди
ографическая
Одиннадцати
классница
рентгеноэлектрокар
диографическая
рентгеноэлектрокар
диографическая
53
24. А что если...
— Не заполнены поля
— Слишком короткий логин
— Слишком длинный логин
— Логин не существует
— Пароль не подходит
— Бэкенд не отвечает
— Пароль не подходит более 3 раз подряд
— Капча набрана неправильно
— Заполнить и нажать вход
— Следующий слайд пожалуйста
83
26. DOM-тест
Сколько будет 2 + 2?
Будет 4
Действительно 4!
Запишите формулу Эйлера
--no-verify
Вы правы как никогда!
01.
02.
03.
01.
02.
03.
97
27. А что будет, если мыло занято и пароль
формально не подходит?
$('.login').val('existingName')
$('.pass').val('1')
$('.submit').click()
01.
02.
03.
101
40. Итого
— Проверка DOM элементов и атрибутов
— CSS классов и свойств
— Резиновости
— Таймаутов
— Слежение за методами
— Всё это мы не делаем!
167
41. Как сломать код
✓ Дать джуниору доступ до репозитория графеновая вёрстка
✓ Сменить окружение проверка резиновости
✓ Сменить контент электрокардиографическая одиннадцатиклассница
✓ Не проработанные требования прорабатываем
✓ Противоречивые требования невозможны
173
42. Как это работает у нас
Ctx
Resolve
Tests
Regression
push
hooks
179