38
Trace-and-replay: Bringing Time Travel to TouchDevelop MSR Internsip Experience Марат Ахин Санкт-Петербургский государственный политехнический университет 2012 Марат Ахин (СПбГПУ) TouchDevelop 2012 1 / 37

20121028 seminar msr_marat-akhin

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 20121028 seminar msr_marat-akhin

Trace-and-replay: Bringing Time Travel to TouchDevelopMSR Internsip Experience

Марат Ахин

Санкт-Петербургский государственный политехнический университет

2012

Марат Ахин (СПбГПУ) TouchDevelop 2012 1 / 37

Page 2: 20121028 seminar msr_marat-akhin

Стажировка в MSR

Содержание

1 Стажировка в MSR

2 TouchDevelop

3 Time Travel

4 Applications

5 Резюме

6 Questions & Answers

Марат Ахин (СПбГПУ) TouchDevelop 2012 2 / 37

Page 3: 20121028 seminar msr_marat-akhin

Стажировка в MSR

Стажировка в MSR

Марат Ахин (СПбГПУ) TouchDevelop 2012 3 / 37

Page 4: 20121028 seminar msr_marat-akhin

Стажировка в MSR

Стажировка в MSR

В двух словах...Длительность: 12 недель

Достаточно для того, чтобы разработать законченный проектСлишком мало времени, чтобы успеть потерять интерес

Работа в одной из ведущих R&D лабораторий мираСтатус интерна ≈ статусу FTE (Full-Time Employee)Доступ ко всем ресурсам MSRПолный пакет всевозможных BenefitsСоответствующая доля ответственности

Возможность посмотреть на Microsoft изнутри«Империя зла» – правда или вымысел?Как работает крупнейшая компания по разработке ПО?

Марат Ахин (СПбГПУ) TouchDevelop 2012 4 / 37

Page 5: 20121028 seminar msr_marat-akhin

Стажировка в MSR

Стажировка в MSR

Research or Development?

Марат Ахин (СПбГПУ) TouchDevelop 2012 5 / 37

Page 6: 20121028 seminar msr_marat-akhin

TouchDevelop

Содержание

1 Стажировка в MSR

2 TouchDevelopЧто?Зачем?Как?

3 Time Travel

4 Applications

5 Резюме

6 Questions & Answers

Марат Ахин (СПбГПУ) TouchDevelop 2012 6 / 37

Page 7: 20121028 seminar msr_marat-akhin

TouchDevelop Что?

Что?

Марат Ахин (СПбГПУ) TouchDevelop 2012 7 / 37

Page 8: 20121028 seminar msr_marat-akhin

TouchDevelop Что?

Что?

IDE для вашего Windows PhoneЯзык программирования со строгой статической типизациейКонтекстно-зависимый редактор кодаДоступ практически ко всей периферии телефонаХранение всех ваших данных в облаке

IDE для вашего устройства......если оно поддерживает HTML5 + JS

Марат Ахин (СПбГПУ) TouchDevelop 2012 8 / 37

Page 9: 20121028 seminar msr_marat-akhin

TouchDevelop Что?

Что?

IDE для вашего Windows PhoneЯзык программирования со строгой статической типизациейКонтекстно-зависимый редактор кодаДоступ практически ко всей периферии телефонаХранение всех ваших данных в облаке

IDE для вашего устройства......если оно поддерживает HTML5 + JS

Марат Ахин (СПбГПУ) TouchDevelop 2012 8 / 37

Page 10: 20121028 seminar msr_marat-akhin

TouchDevelop Зачем?

Зачем?

Обучение программированиюПростотаБолее тесное вовлечение студента/ученика в процессНезависимость от десктопа

Программирование-для-всехНужен dice roller – сделай его сам!

Марат Ахин (СПбГПУ) TouchDevelop 2012 9 / 37

Page 11: 20121028 seminar msr_marat-akhin

TouchDevelop Как?

Как?

Марат Ахин (СПбГПУ) TouchDevelop 2012 10 / 37

Page 12: 20121028 seminar msr_marat-akhin

Time Travel

Содержание

1 Стажировка в MSR

2 TouchDevelop

3 Time TravelЧто?Зачем?Как?

4 Applications

5 Резюме

6 Questions & Answers

Марат Ахин (СПбГПУ) TouchDevelop 2012 11 / 37

Page 13: 20121028 seminar msr_marat-akhin

Time Travel Что?

Что?

В повседневной жизни

Марат Ахин (СПбГПУ) TouchDevelop 2012 12 / 37

Page 14: 20121028 seminar msr_marat-akhin

Time Travel Что?

Что?

В программной инженерии

Марат Ахин (СПбГПУ) TouchDevelop 2012 13 / 37

Page 15: 20121028 seminar msr_marat-akhin

Time Travel Что?

Time-traveling debugging

Возможность свободно перемещаться во времени при отладкеПО (команда «Step Back»)

В TouchDevelop нет отладчика...

Марат Ахин (СПбГПУ) TouchDevelop 2012 14 / 37

Page 16: 20121028 seminar msr_marat-akhin

Time Travel Что?

Trace-and-replay

Возможность записать трассу выполнения и проиграть ее позднее

В TouchDevelop нет записи трасс...

Марат Ахин (СПбГПУ) TouchDevelop 2012 15 / 37

Page 17: 20121028 seminar msr_marat-akhin

Time Travel Зачем?

Зачем?

Легковесная запись видеоУдаленная отладкаВыполнение кода «on-the-fly» во время редактированияДифференциальное тестирование

It’s just awesome! c©

Марат Ахин (СПбГПУ) TouchDevelop 2012 16 / 37

Page 18: 20121028 seminar msr_marat-akhin

Time Travel Как?

Трассировка

Необходимо трассировать недетерминированные событияПользовательский вводДанные с сенсоровСлучайные событияРазличное окружение

Необходимо сохранять информацию о тайминге событий

Марат Ахин (СПбГПУ) TouchDevelop 2012 17 / 37

Page 19: 20121028 seminar msr_marat-akhin

Time Travel Как?

Трассировка

Все – это вызовы определенного APIНекоторые API являются недетерминированными – их нужнотрассировать

Но есть одна проблема...

Марат Ахин (СПбГПУ) TouchDevelop 2012 18 / 37

Page 20: 20121028 seminar msr_marat-akhin

Time Travel Как?

Трассировка

Часть API являются асинхроннымиПриостанавливают выполнение скрипта и запускают его позднееВыполняются в отдельном потоке

Марат Ахин (СПбГПУ) TouchDevelop 2012 19 / 37

Page 21: 20121028 seminar msr_marat-akhin

Time Travel Как?

Проблемы

Интерпретатор TouchDevelop является многопоточнымСтрогой синхронизации нетНедостаточно просто упорядочить события по времени

РешениеОтдельные трассы для каждого потокаПри воспроизведении «привязываем» трассы к соответствующимпотокам

Марат Ахин (СПбГПУ) TouchDevelop 2012 20 / 37

Page 22: 20121028 seminar msr_marat-akhin

Time Travel Как?

Проблемы

У скриптов в TouchDevelop есть global mutable state (GMS)Что много хуже – GMS может влиять на выполнение скрипта

РешениеЗапись GMS при трассировкеПри воспроизведении заменяем текущее GMS на состояние изтрассы

Марат Ахин (СПбГПУ) TouchDevelop 2012 21 / 37

Page 23: 20121028 seminar msr_marat-akhin

Time Travel Как?

Воспроизведение

Марат Ахин (СПбГПУ) TouchDevelop 2012 22 / 37

Page 24: 20121028 seminar msr_marat-akhin

Applications

Содержание

1 Стажировка в MSR

2 TouchDevelop

3 Time Travel

4 ApplicationsЗапись видеоУдаленная отладкаДифференциальное тестирование

5 Резюме

6 Questions & Answers

Марат Ахин (СПбГПУ) TouchDevelop 2012 23 / 37

Page 25: 20121028 seminar msr_marat-akhin

Applications Запись видео

Запись видео

Легковесная запись видеоПозволяет пользователям создавать демо своих приложенийДемо можно свободно обмениваться

It’s just awesome! c©

Марат Ахин (СПбГПУ) TouchDevelop 2012 24 / 37

Page 26: 20121028 seminar msr_marat-akhin

Applications Удаленная отладка

Удаленная отладка

Если у какого-либо пользователя TouchDevelop упал ваш скрипт,как воспроизвести ошибку наиболее простым способом?Записать трассу на одном устройстве и воспроизвести на другом

Один из немногих способов отладки в облаке ,

Марат Ахин (СПбГПУ) TouchDevelop 2012 25 / 37

Page 27: 20121028 seminar msr_marat-akhin

Applications Дифференциальное тестирование

Дифференциальное тестирование

Если вспомнить самое начало презентации...

Две версии TouchDevelop – для Windows Phone и для HTML5/JSОбе версии должны соответствовать одной и той жеспецификации

Можно взять трассу с одной версии и проиграть ее на другой ,

Все должно работать одинаково...

Марат Ахин (СПбГПУ) TouchDevelop 2012 26 / 37

Page 28: 20121028 seminar msr_marat-akhin

Applications Дифференциальное тестирование

Дифференциальное тестирование

На одной трассе было найдено 5 ошибок в реализацииспецификации для HTML5/JS версииДля анализа использовались текстовый редактор и дебаггер

Отличный способ регрессионного и дифференциального тестирования

Марат Ахин (СПбГПУ) TouchDevelop 2012 27 / 37

Page 29: 20121028 seminar msr_marat-akhin

Резюме

Содержание

1 Стажировка в MSR

2 TouchDevelop

3 Time Travel

4 Applications

5 Резюме

6 Questions & Answers

Марат Ахин (СПбГПУ) TouchDevelop 2012 28 / 37

Page 30: 20121028 seminar msr_marat-akhin

Резюме

Резюме

Реализация Trace-and-replay для двух версий TouchDevelopМного потенциальных направлений дальнейшего развития

Марат Ахин (СПбГПУ) TouchDevelop 2012 29 / 37

Page 31: 20121028 seminar msr_marat-akhin

Questions & Answers

Содержание

1 Стажировка в MSR

2 TouchDevelop

3 Time Travel

4 Applications

5 Резюме

6 Questions & Answers

Марат Ахин (СПбГПУ) TouchDevelop 2012 30 / 37

Page 32: 20121028 seminar msr_marat-akhin

Questions & Answers

Questions & Answers

Марат Ахин (СПбГПУ) TouchDevelop 2012 31 / 37

Page 33: 20121028 seminar msr_marat-akhin

Самые яркие впечатления

Самые яркие впечатления

Марат Ахин (СПбГПУ) TouchDevelop 2012 32 / 37

Page 34: 20121028 seminar msr_marat-akhin

Самые яркие впечатления

От MSR

Марат Ахин (СПбГПУ) TouchDevelop 2012 33 / 37

Page 35: 20121028 seminar msr_marat-akhin

Самые яркие впечатления

От США

Марат Ахин (СПбГПУ) TouchDevelop 2012 34 / 37

Page 36: 20121028 seminar msr_marat-akhin

Самые яркие впечатления

От ивентов

Марат Ахин (СПбГПУ) TouchDevelop 2012 35 / 37

Page 37: 20121028 seminar msr_marat-akhin

Самые яркие впечатления

От ивентов

Марат Ахин (СПбГПУ) TouchDevelop 2012 36 / 37

Page 38: 20121028 seminar msr_marat-akhin

Самые яркие впечатления

От удивления

Марат Ахин (СПбГПУ) TouchDevelop 2012 37 / 37