20121028 seminar msr_marat-akhin

715 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
715
On SlideShare
0
From Embeds
0
Number of Embeds
278
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20121028 seminar msr_marat-akhin

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

×