• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Modern Software Engineering Practices

2024/2025
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Course type:
Compulsory course
When:
1 year, 1, 2 module

Instructor

Программа дисциплины

Аннотация

В данном курсе изучаются основные инструменты, которые используются в повседневной работе разработчика программного обеспечения. Курс предназначен для освоения операционной системы Linux, развития навыков работы в терминале и освоения синтаксиса BASH. Во второй части курса рассматриваются вопросы систем контроля версий, контейнеризации, систем непрерывной интеграции (continuous integration) и непрерывного развертывания (continuous delivery).Овладение данными навыками позволит сократить время на отладку кода, а также повысит качество разрабатываемых проектов.
Цель освоения дисциплины

Цель освоения дисциплины

  • Применять Git для совместной работы и управления версиями.
  • Разбираться в устройстве репозитория, его организации в GitHub и выполнять операции с файловой системой (поиск, вывод, перемещение и другие действия) через командную строку.
  • Осуществлять обмен данными между локальным компьютером и удаленным репозиторием через терминал, редактировать файлы непосредственно из терминала и уметь генерировать и использовать SSH ключи для работы с удаленными репозиториями.
  • Понимать скриптовый язык программирования BASH и инфраструктуру вокруг него, в том числе и командные терминалы.
Планируемые результаты обучения

Планируемые результаты обучения

  • Работать с командной строкой, включая использование различных типов оболочек (zsh, fish) и инструментов (tmux)
  • Писать скрипты на языке Shell, включая использование утилит grep, find, curl, sed
  • Использовать системы контроля версий (Git, Mercurial, SVN)
  • Умение работать с текстовым редактором (Markdown, LaTeX и LaTeX beamer) на продвинутом уровне
  • Настраивать ресурсы apt, pacman, brew
  • Студент научится работать с командной строкой и использовать основные команды для запуска Python-скриптов.
  • Студент научится работать с системой контроля версий Git, включая создание пары публичный-приватный ключ и клонирование репозиториев.
  • Студент научится управлять рабочим процессом в Git: получать изменения из удалённого репозитория (pull), создавать ветки для разработки новых функций (branch) и интегрировать изменения в основную ветку, разрешая конфликты слияния (merge conflict).
  • Студент изучит основы bash и сможет использовать изученные команды для навигации по файловой системе.
  • Студент изучит ключевые команды и утилиты, которые позволяют просматривать, редактировать и искать информацию в текстовых файлах, а также комбинировать команды для создания сложных сценариев обработки данных.
  • Студент научится использовать продвинутые команды Linux и Bash для работы с файлами, управления сессиями и изменением прав доступа. Студент научится безопасно передавать файлы, устанавливать новые пакеты и работать с переменными окружения.
  • Студент научится использовать продвинутые команды Linux и Bash для работы с файлами, управления сессиями и изменением прав доступа.
  • Студент научится безопасно передавать файлы, устанавливать новые пакеты и работать с переменными окружения.
  • Слушатели научаться работать в операционной системе Linux, подключаться к серверу и использовать Linux для решения профессиональных задач.
  • На занятии рассмотрим как взаимодействовать с процессами Linux и освоим скриптовый язык BASH.
  • Разберем несколько примеров автоматизации рутинных задач в операционной системе Linux
  • Изучаем основные функции Git, а также разбираем случаи, когда они применяются на практике.
  • На занятии запускаем несколько контейнеров и налаживаем связи между ними.
  • Берем репозиторий с готовыми контейнерами, собираем их в рабочую систему.
  • Настраиваем сеть между контейнерами
  • Будут рассмотрены основные принципы работы CI/CD и показано как автоматизировать процесс интеграции и поставки программного обеспечения.
  • Слушатели пройдут путь от создания самого простого пайплайна до настройки комплексных вариантов CI/CD.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Операционная система Linux
  • Мониторинг системы
  • Git и GitHub
  • Основы Docker
  • Docker Compose и сеть
  • CI / CD
Элементы контроля

Элементы контроля

  • неблокирующий ДЗ-1
  • неблокирующий ДЗ-2
  • неблокирующий ДЗ-3
  • неблокирующий ДЗ-4
  • неблокирующий Тест-1
  • неблокирующий Тест-2
  • неблокирующий Тест-3
  • неблокирующий Тест-4
Промежуточная аттестация

Промежуточная аттестация

  • 2024/2025 2nd module
    0.15*ДЗ-1 + 0.15*ДЗ-2 + 0.15*ДЗ-3 + 0.15*ДЗ-4 + 0.1*Тест-1 + 0.1*Тест-2 + 0.1*Тест-3 + 0.1*Тест-4 с округлением до целого по математическим правилам.
Список литературы

Список литературы

Рекомендуемая основная литература

  • Git для профессионального программиста, Чакон, С., 2016
  • Linux. Руководство программиста. - 978-5-4461-9369-1 - Фуско Дж. - 2021 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/377961 - 377961 - iBOOKS

Авторы

  • Ахмедова Гюнай Интигам кызы
  • Паточенко Евгений Анатольевич