• Like
20121028 seminar msr_marat-akhin
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

20121028 seminar msr_marat-akhin

  • 485 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
485
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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