This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:mse:lections [2017/09/04 09:04] mark [Отладка веб-приложений] |
courses:mse:lections [2022/12/10 09:08] (current) |
||
---|---|---|---|
Line 2: | Line 2: | ||
- | ===== Разработка задач для онлайн курсов ===== | + | ===== Разработка задач для онлайн курсов - вторая половина сентября (22 или 29) ===== |
* Архитектура: | * Архитектура: | ||
Line 28: | Line 28: | ||
* Как писать генератор задания | * Как писать генератор задания | ||
* Заготовка Pytest | * Заготовка Pytest | ||
- | ===== Отладка веб-приложений ===== | + | * Жульничество и точное выполение буквы задания |
+ | * Цель задания - отработать определенный навык | ||
+ | * Часто есть обходные пути | ||
+ | * Как можно отсечь возможности для этого: | ||
+ | * Как удалить sudo доступ дефолтного пользователя | ||
+ | * Как проверить запуск определенных команд (история команд) | ||
+ | * Посложнее: | ||
+ | * кастомная libc и переопределение библиотечных вызовов | ||
+ | * очень хитрая настройка прав | ||
+ | * Известные проблемы https://support.stepik.org/en/support/solutions/articles/19000015512-linux-challenge-issues | ||
+ | |||
+ | |||
+ | ===== Отладка веб-приложений (29.09 или 06.09) ===== | ||
+ | |||
+ | https://stepik.org/course/154 | ||
* Общая схема работы архитектуры клиент-сервер | * Общая схема работы архитектуры клиент-сервер | ||
Line 48: | Line 62: | ||
* фрагментированный JS (внутри HTML) | * фрагментированный JS (внутри HTML) | ||
* js, не обернутый в функции или $(document).ready | * js, не обернутый в функции или $(document).ready | ||
+ | * jquery вместо dom | ||
+ | * console.log | ||
+ | * поле id и class у тегов | ||
* Бакенд: | * Бакенд: | ||
- | * | + | * Используйте максимум возможностей БД (пример с list(...)) |
- | ===== MongoDb ===== | + | * локальное имя в hosts для удобства |
+ | * apache вместо run.py | ||
+ | |||
+ | |||
+ | ===== MongoDb (29.09 или 06.09) ===== | ||
+ | |||
+ | https://bitbucket.org/mark_zaslavskiy/nosql_inroduction/src/353f681b18fbdd4b17d58fa062f51f8a0f6dc413/slides/3_document-oriented_databases.pdf?at=master&fileviewer=file-view-default | ||
В перспективе будет заменено на презентацию и модуль в MOOC. | В перспективе будет заменено на презентацию и модуль в MOOC. | ||
Line 78: | Line 101: | ||
* sort, limit, offset | * sort, limit, offset | ||
* как проделать запросы в python. | * как проделать запросы в python. | ||
- | ===== Написание тестов ===== | ||
- | ===== Докер и развертывание ===== | + | |
+ | ===== Написание тестов (???) ===== | ||
+ | |||
+ | К лекции нужно сделать репо с примерами. | ||
+ | |||
+ | * Какие бывают тесты и зачем | ||
+ | * Общая идея: | ||
+ | * тестируем хорошее и плохое поведение | ||
+ | * чистая тестовая среда | ||
+ | * не подгоняем тестовую среду под тесты | ||
+ | * Пример юнит-теста на Python | ||
+ | * Как запускать много тестов одним скриптом | ||
+ | * Пример Selenium теста Python | ||
+ | * Настройка selenium | ||
+ | * Параметризованный тест | ||
+ | * Скрипт для запуска всех тестов | ||
+ | |||
+ | ===== Докер и развертывание (??) ===== | ||
+ | https://www.katacoda.com/courses/docker | ||
+ | |||
+ | * Очень примерно про архитектуру | ||
+ | * Устанавливаем докер (используем правильный репо) | ||
+ | * Запускаем простой образ | ||
+ | * Смотрим как он выглядит в docker ps | ||
+ | * Убиваем docker kill | ||
+ | * Cмотрим на образы в docker image | ||
+ | * Добавляем Vagrant | ||
+ | * Установка | ||
+ | * Настройка плагинов | ||
+ | * пишем vagrant-file | ||
+ | * Указываем образ ubuntu14:04 (или аналогичный) | ||
+ | * Указываем проброс портов | ||
+ | * Запускаем и убеждаемся, что проброс работает | ||
+ | * Подключаемся по ссш | ||
+ | * Смотрим статус vagrnt status | ||
+ | * Убиваем конфигурацию vagrant destroy -f | ||
+ | * Создаем свой Docker-образ | ||
+ | * Через Dockerfile | ||
+ | * Идея | ||
+ | * Заготовка Dockerfile - какие правила написания | ||
+ | * Собираем образ | ||
+ | * Отправляем образ в репозиторий | ||
+ | * Через docker commit |