Upload
computer-science-club
View
755
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Trace-and-replay: Bringing Time Travel to TouchDevelopMSR Internsip Experience
Марат Ахин
Санкт-Петербургский государственный политехнический университет
2012
Марат Ахин (СПбГПУ) TouchDevelop 2012 1 / 37
Стажировка в MSR
Содержание
1 Стажировка в MSR
2 TouchDevelop
3 Time Travel
4 Applications
5 Резюме
6 Questions & Answers
Марат Ахин (СПбГПУ) TouchDevelop 2012 2 / 37
Стажировка в MSR
Стажировка в MSR
Марат Ахин (СПбГПУ) TouchDevelop 2012 3 / 37
Стажировка в MSR
Стажировка в MSR
В двух словах...Длительность: 12 недель
Достаточно для того, чтобы разработать законченный проектСлишком мало времени, чтобы успеть потерять интерес
Работа в одной из ведущих R&D лабораторий мираСтатус интерна ≈ статусу FTE (Full-Time Employee)Доступ ко всем ресурсам MSRПолный пакет всевозможных BenefitsСоответствующая доля ответственности
Возможность посмотреть на Microsoft изнутри«Империя зла» – правда или вымысел?Как работает крупнейшая компания по разработке ПО?
Марат Ахин (СПбГПУ) TouchDevelop 2012 4 / 37
Стажировка в MSR
Стажировка в MSR
Research or Development?
Марат Ахин (СПбГПУ) TouchDevelop 2012 5 / 37
TouchDevelop
Содержание
1 Стажировка в MSR
2 TouchDevelopЧто?Зачем?Как?
3 Time Travel
4 Applications
5 Резюме
6 Questions & Answers
Марат Ахин (СПбГПУ) TouchDevelop 2012 6 / 37
TouchDevelop Что?
Что?
Марат Ахин (СПбГПУ) TouchDevelop 2012 7 / 37
TouchDevelop Что?
Что?
IDE для вашего Windows PhoneЯзык программирования со строгой статической типизациейКонтекстно-зависимый редактор кодаДоступ практически ко всей периферии телефонаХранение всех ваших данных в облаке
IDE для вашего устройства......если оно поддерживает HTML5 + JS
Марат Ахин (СПбГПУ) TouchDevelop 2012 8 / 37
TouchDevelop Что?
Что?
IDE для вашего Windows PhoneЯзык программирования со строгой статической типизациейКонтекстно-зависимый редактор кодаДоступ практически ко всей периферии телефонаХранение всех ваших данных в облаке
IDE для вашего устройства......если оно поддерживает HTML5 + JS
Марат Ахин (СПбГПУ) TouchDevelop 2012 8 / 37
TouchDevelop Зачем?
Зачем?
Обучение программированиюПростотаБолее тесное вовлечение студента/ученика в процессНезависимость от десктопа
Программирование-для-всехНужен dice roller – сделай его сам!
Марат Ахин (СПбГПУ) TouchDevelop 2012 9 / 37
TouchDevelop Как?
Как?
Марат Ахин (СПбГПУ) TouchDevelop 2012 10 / 37
Time Travel
Содержание
1 Стажировка в MSR
2 TouchDevelop
3 Time TravelЧто?Зачем?Как?
4 Applications
5 Резюме
6 Questions & Answers
Марат Ахин (СПбГПУ) TouchDevelop 2012 11 / 37
Time Travel Что?
Что?
В повседневной жизни
Марат Ахин (СПбГПУ) TouchDevelop 2012 12 / 37
Time Travel Что?
Что?
В программной инженерии
Марат Ахин (СПбГПУ) TouchDevelop 2012 13 / 37
Time Travel Что?
Time-traveling debugging
Возможность свободно перемещаться во времени при отладкеПО (команда «Step Back»)
В TouchDevelop нет отладчика...
Марат Ахин (СПбГПУ) TouchDevelop 2012 14 / 37
Time Travel Что?
Trace-and-replay
Возможность записать трассу выполнения и проиграть ее позднее
В TouchDevelop нет записи трасс...
Марат Ахин (СПбГПУ) TouchDevelop 2012 15 / 37
Time Travel Зачем?
Зачем?
Легковесная запись видеоУдаленная отладкаВыполнение кода «on-the-fly» во время редактированияДифференциальное тестирование
It’s just awesome! c©
Марат Ахин (СПбГПУ) TouchDevelop 2012 16 / 37
Time Travel Как?
Трассировка
Необходимо трассировать недетерминированные событияПользовательский вводДанные с сенсоровСлучайные событияРазличное окружение
Необходимо сохранять информацию о тайминге событий
Марат Ахин (СПбГПУ) TouchDevelop 2012 17 / 37
Time Travel Как?
Трассировка
Все – это вызовы определенного APIНекоторые API являются недетерминированными – их нужнотрассировать
Но есть одна проблема...
Марат Ахин (СПбГПУ) TouchDevelop 2012 18 / 37
Time Travel Как?
Трассировка
Часть API являются асинхроннымиПриостанавливают выполнение скрипта и запускают его позднееВыполняются в отдельном потоке
Марат Ахин (СПбГПУ) TouchDevelop 2012 19 / 37
Time Travel Как?
Проблемы
Интерпретатор TouchDevelop является многопоточнымСтрогой синхронизации нетНедостаточно просто упорядочить события по времени
РешениеОтдельные трассы для каждого потокаПри воспроизведении «привязываем» трассы к соответствующимпотокам
Марат Ахин (СПбГПУ) TouchDevelop 2012 20 / 37
Time Travel Как?
Проблемы
У скриптов в TouchDevelop есть global mutable state (GMS)Что много хуже – GMS может влиять на выполнение скрипта
РешениеЗапись GMS при трассировкеПри воспроизведении заменяем текущее GMS на состояние изтрассы
Марат Ахин (СПбГПУ) TouchDevelop 2012 21 / 37
Time Travel Как?
Воспроизведение
Марат Ахин (СПбГПУ) TouchDevelop 2012 22 / 37
Applications
Содержание
1 Стажировка в MSR
2 TouchDevelop
3 Time Travel
4 ApplicationsЗапись видеоУдаленная отладкаДифференциальное тестирование
5 Резюме
6 Questions & Answers
Марат Ахин (СПбГПУ) TouchDevelop 2012 23 / 37
Applications Запись видео
Запись видео
Легковесная запись видеоПозволяет пользователям создавать демо своих приложенийДемо можно свободно обмениваться
It’s just awesome! c©
Марат Ахин (СПбГПУ) TouchDevelop 2012 24 / 37
Applications Удаленная отладка
Удаленная отладка
Если у какого-либо пользователя TouchDevelop упал ваш скрипт,как воспроизвести ошибку наиболее простым способом?Записать трассу на одном устройстве и воспроизвести на другом
Один из немногих способов отладки в облаке ,
Марат Ахин (СПбГПУ) TouchDevelop 2012 25 / 37
Applications Дифференциальное тестирование
Дифференциальное тестирование
Если вспомнить самое начало презентации...
Две версии TouchDevelop – для Windows Phone и для HTML5/JSОбе версии должны соответствовать одной и той жеспецификации
Можно взять трассу с одной версии и проиграть ее на другой ,
Все должно работать одинаково...
Марат Ахин (СПбГПУ) TouchDevelop 2012 26 / 37
Applications Дифференциальное тестирование
Дифференциальное тестирование
На одной трассе было найдено 5 ошибок в реализацииспецификации для HTML5/JS версииДля анализа использовались текстовый редактор и дебаггер
Отличный способ регрессионного и дифференциального тестирования
Марат Ахин (СПбГПУ) TouchDevelop 2012 27 / 37
Резюме
Содержание
1 Стажировка в MSR
2 TouchDevelop
3 Time Travel
4 Applications
5 Резюме
6 Questions & Answers
Марат Ахин (СПбГПУ) TouchDevelop 2012 28 / 37
Резюме
Резюме
Реализация Trace-and-replay для двух версий TouchDevelopМного потенциальных направлений дальнейшего развития
Марат Ахин (СПбГПУ) TouchDevelop 2012 29 / 37
Questions & Answers
Содержание
1 Стажировка в MSR
2 TouchDevelop
3 Time Travel
4 Applications
5 Резюме
6 Questions & Answers
Марат Ахин (СПбГПУ) TouchDevelop 2012 30 / 37
Questions & Answers
Questions & Answers
Марат Ахин (СПбГПУ) TouchDevelop 2012 31 / 37
Самые яркие впечатления
Самые яркие впечатления
Марат Ахин (СПбГПУ) TouchDevelop 2012 32 / 37
Самые яркие впечатления
От MSR
Марат Ахин (СПбГПУ) TouchDevelop 2012 33 / 37
Самые яркие впечатления
От США
Марат Ахин (СПбГПУ) TouchDevelop 2012 34 / 37
Самые яркие впечатления
От ивентов
Марат Ахин (СПбГПУ) TouchDevelop 2012 35 / 37
Самые яркие впечатления
От ивентов
Марат Ахин (СПбГПУ) TouchDevelop 2012 36 / 37
Самые яркие впечатления
От удивления
Марат Ахин (СПбГПУ) TouchDevelop 2012 37 / 37