Skip to content

Latest commit

 

History

History

hw04

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Делим и тестируем прототип "Умного Дома"

Цель

  • Научиться разделять код на модули.
  • Использовать сущности из других модулей.
  • Писать модульные и функциональные тесты.

Результатом является:

  • Многофайловый прототип библиотеки "Умный Дом" с тестами.

Описание/Пошаговая инструкция выполнения домашнего задания

  • Разделить логически целостные элементы библиотеки "Умный Дом" на отдельные файлы.
  • Покрыть тестами требования к библиотеке.
  • Создать example использования библиотеки. Библиотека предоставляет структуру дома в комнатах которого расположены устройства.
  • Дом имеет название и содержит несколько помещений.
  • Библиотека позволяет запросить список помещений в доме.
  • Помещение имеет уникальное название и содержит названия нескольких устройств.
  • Устройство имеет уникальное в рамках помещения имя.
  • Библиотека позволяет получать список устройств в помещении.
  • Библиотека имеет функцию, возвращающую текстовый отчёт о состоянии дома. Эта функция принимает в качестве аргумента обобщённый тип, позволяющий получить текстовую информацию о состоянии устройства, для включения в отчёт. Эта информация должна предоставляться для каждого устройства на основе данных о положении устройства в доме: имени комнаты и имени устройства. Если устройство не найдено в источнике информации, то вместо текста о состоянии вернуть сообщение об ошибке. Шаблон для описания сущностей библиотеки: https://gist.github.com/76dff7177f19ff7e802b1e121865afe4

Критерии оценки

Статус Принято ставится, если:

  • Код логически верно разбит на модули.
  • Утилита cargo clippy не выдаёт предупреждений.
  • Команда cargo fmt --check --all не выдаёт предупреждений.
  • Написаны тесты для функционала библиотеки.
  • В примере инициализируется "Умный дом" и источник информации об устройствах. На экран выводится список комнат и устройств в них. На экран выводится отчёт о состоянии дома.

Компетенции

  • Знание языка Rust.
    • Организация кода.