0
Trace-and-replay: Bringing Time Travel to TouchDevelop                      MSR Internsip Experience                      ...
Стажировка в MSRСодержание1   Стажировка в MSR2   TouchDevelop3   Time Travel4   Applications5   Резюме6   Questions & Ans...
Стажировка в MSRСтажировка в MSR        Марат Ахин (СПбГПУ)           TouchDevelop   2012   3 / 37
Стажировка в MSRСтажировка в MSRВ двух словах...    Длительность: 12 недель        Достаточно для того, чтобы разработать ...
Стажировка в MSRСтажировка в MSRResearch or Development?            Марат Ахин (СПбГПУ)           TouchDevelop   2012   5 ...
TouchDevelopСодержание1   Стажировка в MSR2   TouchDevelop      Что?      Зачем?      Как?3   Time Travel4   Applications5...
TouchDevelop   Что?Что?       Марат Ахин (СПбГПУ)                   TouchDevelop   2012   7 / 37
TouchDevelop   Что?Что?IDE для вашего Windows Phone    Язык программирования со строгой статической типизацией    Контекст...
TouchDevelop   Что?Что?IDE для вашего Windows Phone    Язык программирования со строгой статической типизацией    Контекст...
TouchDevelop   Зачем?Зачем?Обучение программированию    Простота    Более тесное вовлечение студента/ученика в процесс    ...
TouchDevelop   Как?Как?       Марат Ахин (СПбГПУ)                   TouchDevelop   2012   10 / 37
Time TravelСодержание1   Стажировка в MSR2   TouchDevelop3   Time Travel      Что?      Зачем?      Как?4   Applications5 ...
Time Travel   Что?Что?В повседневной жизни           Марат Ахин (СПбГПУ)                   TouchDevelop   2012   12 / 37
Time Travel   Что?Что?В программной инженерии          Марат Ахин (СПбГПУ)                   TouchDevelop   2012   13 / 37
Time Travel   Что?Time-traveling debugging   Возможность свободно перемещаться во времени при отладке                  ПО ...
Time Travel   Что?Trace-and-replay  Возможность записать трассу выполнения и проиграть ее позднее                 В TouchD...
Time Travel   Зачем?Зачем?   Легковесная запись видео   Удаленная отладка   Выполнение кода «on-the-fly» во время редактиро...
Time Travel   Как?Трассировка   Необходимо трассировать недетерминированные события       Пользовательский ввод       Данн...
Time Travel   Как?Трассировка   Все – это вызовы определенного API   Некоторые API являются недетерминированными – их нужн...
Time Travel   Как?Трассировка   Часть API являются асинхронными      Приостанавливают выполнение скрипта и запускают его п...
Time Travel   Как?Проблемы   Интерпретатор TouchDevelop является многопоточным   Строгой синхронизации нет   Недостаточно ...
Time Travel   Как?Проблемы   У скриптов в TouchDevelop есть global mutable state (GMS)   Что много хуже – GMS может влиять...
Time Travel   Как?Воспроизведение         Марат Ахин (СПбГПУ)                   TouchDevelop   2012   22 / 37
ApplicationsСодержание1   Стажировка в MSR2   TouchDevelop3   Time Travel4   Applications      Запись видео      Удаленная...
Applications   Запись видеоЗапись видео   Легковесная запись видео   Позволяет пользователям создавать демо своих приложен...
Applications   Удаленная отладкаУдаленная отладка   Если у какого-либо пользователя TouchDevelop упал ваш скрипт,   как во...
Applications   Дифференциальное тестированиеДифференциальное тестированиеЕсли вспомнить самое начало презентации...    Две...
Applications   Дифференциальное тестированиеДифференциальное тестирование   На одной трассе было найдено 5 ошибок в реализ...
РезюмеСодержание1   Стажировка в MSR2   TouchDevelop3   Time Travel4   Applications5   Резюме6   Questions & Answers      ...
РезюмеРезюме   Реализация Trace-and-replay для двух версий TouchDevelop   Много потенциальных направлений дальнейшего разв...
Questions & AnswersСодержание1   Стажировка в MSR2   TouchDevelop3   Time Travel4   Applications5   Резюме6   Questions & ...
Questions & AnswersQuestions & 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
Upcoming SlideShare
Loading in...5
×

20121028 seminar msr_marat-akhin

548

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
548
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×