Курс «Промышленная разработка веб-приложений»
#
Версии презентации
Тематика дисциплины
#
Разработка веб-приложений, выполняющихся на серверной стороне
- Протокол передачи данных HTTP
- Особенности разработки распределённых приложений: HTTP-сервер и HTTP-клиент
- Типичные сценарии обработки запросов от клиентов
- Архитектурные подходы к организации HTTP-серверов
Способы использования HTTP протокола
#
Классический вариант, HTTP-сервер передаёт документы для отображения
Распространённый вариант, HTTP-клиенты запрашивают данные от сервера
- JavaScript-приложения формируют HTML-элементы в веб-браузере
- HTTP-клиенты обрабатывают данные или запрашивают изменения на сервере
В рамках курса рассмотрим разработку серверного HTTP-приложения,
взаимодействующего с клиентом путём обмена JSON-документами
Инструменты и технологии
#
- Язык программирования Kotlin
- Компактный синтаксис для JVM-приложений
- Доступны явные средства обработки null-значений в переменных
- Основной язык разработки Android-приложений
- Можно создавать нативные приложения (в основном для iOS), JS-приложения
- Инструмент сборки приложения и запуска задач поддержки разработки Gradle
- Средства статического анализа исходного кода ktlint
- Библиотека обработки HTTP-запросов http4k
- Набор инструментов, взаимодействующих друг с другом, не фреймворк
- Использует техники функционального программирования
- Форматы представления данных JSON и CSV
Структура курса
#
Курс состоит из следующих блоков:
- Знакомство с основами технологий: Kotlin, Gradle, JSON
- Знакомство с технологией передачи данных HTTP с использованием http4k
- Редактирование данных на стороне сервера
- Авторизация действий пользователя
Для закрепления материала в рамках каждого блока предлагается
- Лично выполнить учебную задачу по управлению списком треугольников
- Лично выполнить и защитить лабораторную работу
Лабораторные работы
#
В рамках лабораторных работ необходимо разработать приложение
- Одна тематика приложения на весь курс: магазин, информационный портал и т.д.
- В первом блоке выполняется реализация базового приложения
- В каждом следующем блоке необходимо расширить приложение новыми функциями
- Хорошая реализация функций в лабораторной упрощает сдачу следующей лабораторной, т.к. можно использовать свои наработки
- Рекомендуется писать понятный и поддерживаемый код
- При наличии ошибок рекомендуется их исправлять
Особенности защит
#
- На выполнение лабораторной работы даётся порядка двух недель
- Защита производится в заранее определённый день
- Защита работ в другой день разрешается при наличии официального документа,
подтверждающего невозможность присутствия на защите
- Повторная защита работ не предусмотрена
- Защита показывает уровень знаний на момент проверки
- Каждая следующая лабораторная включает проверку знаний предыдущей
- Для 4-й лабораторной предусмотрено 2 защиты
Оценивание лабораторных работ
#
- Каждая лабораторная работа оценивается по бальной системе от 0 до 6
- 0 является возможной оценкой
- 0 выставляется в случае отсутствия сдачи или защиты
- Финальная оценка за курс формируется из оценок за лабораторные работы
- На защите лабораторных работ необходимо продемонстрировать
- Умение дорабатывать своё приложение
- Знание теоретических основ используемых технологий

Лабораторные работы проверяются на соответствие требованиям автоматической системой проверки
- Код лабораторной должен проходить проверку данной системой
- До момента отправки лабораторной работы в Moodle будет предоставлена возможность проверки кода в автоматической системе проверке
Получение оценки за курс
#
- По курсу выставляется зачёт
- Для получения зачёта необходимо защитить последнюю лабораторную на
положительную оценку
- Последняя лабораторная работа включает знания по всему курсу
- Её достаточно просто реализовать при наличии реализации предыдущей
- Для получения зачёта необходимо продемонстрировать умения и знания по
предмету
- Достаточно получить среднюю оценку выше 4 баллов
- Достаточно получить оценку выше 4 баллов за последнюю лабораторную работу, но рекомендуется тренироваться на сдаче предыдущих работ
- …
Особенности курса
#
- Оригинальное распределение времени
- 1 лекция в 2 недели
- 3 практических занятия в 2 недели
- Распределение времени в расписании
- Формат занятий
- Лекционный материал даётся в форме видео-записей
- Задания для практический заданий выкладываются на сайте
- На занятиях студенты
- Слушают лекционный материал
- Выполняют практические работы
- Задают вопросы по материалам курса и лабораторным работам
Ценность занятий в университете
#
- Возможность проверить работу своего приложения в окружении, которое будет
использовано для оценки и защиты работы
- Защита работ проходит только в рамках ОС Linux
- Если на защите возникают проблемы с использованием окружения, то это
проблемы студента
- На подготовку к защите работы в компьютерном классе даётся 10 минут
- Возможность в рабочей обстановке заняться изучением предмета
- Возможность задать содержательные вопросы преподавателю
- Если вы не присутствуете на занятии, то это не значит, что пары по предмету нет
Как задавать вопрос
#
Вопросы являются отличным способом взаимодействия между людьми, однако для
улучшения взаимодействия рекомендуется использовать следующие рекомендации
- Сформулируйте вопрос
- Зафиксируйте собственные попытки в решении данного вопроса и их результаты
Если вопрос будет хорошо подготовлен, тогда отвечающий сможет:
- Быстрее понять проблему
- Дать ответ в соответствии с уровнем понимания вопроса