Opened 4 years ago

Last modified 4 years ago

#923 assigned ожидаются исправления

HW #3 shein.andrey

Reported by: Андрей Шеин Owned by: Андрей Шеин
Component: HW #3 (Huffman) Version: 1.0
Keywords: Cc:

Description


Change History (2)

comment:1 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to Андрей Шеин
Summary: HW #3HW #3 shein.andrey
Type: ожидается проверкаожидаются исправления

Корректность:

  1. Разжимать иногда не получается, падает. Показательный симптом: мало видов байт в исходном файле. Или наоборот очень много...

6/9.

Тесты: а ваще ок. 8/8.

Стиль:

  1. В паре мест увидел странные пробелы.
  2. Кажется, у нас в требованиях было про namespace.
  3. В тестах встречаются конструкции
    try {
    } catch () {
       res = ...;
    }
    CHECK(res);
    
    Кажется, можно идеоматичнее. Да и фреймворк должен наверное уметь в выражение «должно шандарахнуть».
  4. enum ProgramMode: он кажется положит не самые приличные имена в окружающее пространство имён.
  5. CLI::operator(): что-то мне этот цикл emplace-ов смущает. А ничего покрасивее? И нужен ли он?
  6. Я где-то вижу явный noexcept, а где-то при этом нет почему-то. Скажем в компараторе.

4/8.

Архитектура:

  1. В случае исключения твоя программа закончит работу с кодом 0. Кстати, ты реально ловишь только CLI? А есть вылетит повеселее птичка?
  2. Мне кажется HuffmanNode::get_word зря возвращает полную копию std::string. Может std::string_view? Может по ссылке вернуть?..
  3. Ну и возвращать сырые указатели рядом тоже такое себе. Ссылка? Или ты отдаёшь владение (тогда std::unique_ptr?). Конструктор от сырых указателей туда же, вручаю std::make_unique.
  4. HuffmanTree::Comparator реально нужен в заголовочном файле?
  5. Вообще сет указателей вызывает вопросы. А зачем?.. Тем более как мне кажется std::bad_alloc ещё и утечку вызовет.

3/5.

Меня слегка смущает заложенное распределение баллов, мне казалось должно быть другое. Если оно изменится я пересчитаю, пункты в силе.

comment:2 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Нет, всё как надо.

Note: See TracTickets for help on using tickets.