Opened 4 years ago

Closed 4 years ago

#928 closed ожидаются исправления (задача сдана)

HW #3 potryasaeva.anna

Reported by: potryasaeva.anna Owned by: Дмитрий Лапшин (lapshin)
Component: HW #3 (Huffman) Version: 3.0
Keywords: Cc:

Description


Change History (5)

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

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

Корректность: работает шустро, но лажает.

  1. Валгринд: неинициализированные переменные, утечки памяти.
  2. Где-то на трети тестов разжимает обратно не то.
  3. А где-то ещё на четверти падает на разжатии.

3/9.

Тесты: 0.

Стиль:

  1. Кажется, у нас в требованиях было про namespace.
  2. Конструкция throw() не означает nothrow, является deprecated с С++11 и удалена из языка в C++17.
  3. Зачем руками закрывать файлы, есть RAII?

6/8.

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

  1. Сырые указатели правят балом. Может достанем ссылки и умные указатели?
  2. Куча неиспользуемых функций и конструкторов.
  3. Чтение чисел магическими константами в платформозависимые типы... Вообще работа с битами просится в отдельные функции/классы.
  4. Статик переменные — то есть вообще на всю программу только один архиватор может работать?
  5. Мне кажется вспоминать какой ребёнок сейчас обходится для построения кодов можно проще, чем лезть в родителя и перебирать какой же мы.
  6. Названия методов волшебны. Statistics, code, bit, addit. bool flag да видно что флаг. Вообще и стиля единого нет, и имён хороших.
  7. Класс CLI меня смущает. Наверное он должен был бы разобрать аргументы и дать их представление, а не «Из той рыбы, что ты прислал, голова была на третьем месте».

0/5.

comment:2 Changed 4 years ago by potryasaeva.anna

Owner: changed from potryasaeva.anna to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка
Version: 1.02.0

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

Owner: changed from Дмитрий Лапшин (lapshin) to potryasaeva.anna
Type: ожидается проверкаожидаются исправления

Корректность: идеально, 9/9.

Тесты: случайные интеграционные тесты это неплохо, но хочется крайних случаев и юнит-тестов (то есть отдельных кусков). Тем более они у тебя не детерминированы (упал, перезапустил и не воспроизвести). Формально получается два случайных теста, ну такое. 3/8.

Стиль:

  1. Ну пространства имён же.
  2. #define. Ну серьёзно.
  3. std::cout.flush():
    • std::cout << std::flush;
    • Читать документацию std::endl.
  4. addit это не слово английского языка. Что за HBit и TBit тоже не понятно.
  5. CLI: std::string_view/std::string и operator ==.
  6. В деструкторе дерева происходит что-то ужасное, на тему забыт факт существования деструктора узла и умных указателей.

4/8.

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

  1. Сырые указатели! Серьёзно, std::unique_ptr.
  2. Хорошо что архиватор выставляет поля узнать статистику, но лучше бы он не печатал её сам.
  3. CLI: что static можно пережить, но вот то, что режим сообщается как кусок строчки плохо.
  4. А зачем кладёшь в сет указатели на ноды вместо самих нод? Пусть сет ими владеет. Тогда и компаратор можно стандартный (пары сравниваются лексиграфически), а то и вообще без пар!
  5. Кстати, nextId вообще нужен? Генерируется он точно непотокобезопасно.

2/5.

Last edited 4 years ago by Дмитрий Лапшин (lapshin) (previous) (diff)

comment:4 Changed 4 years ago by potryasaeva.anna

Owner: changed from potryasaeva.anna to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка
Version: 2.03.0

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

Resolution: задача сдана
Status: assignedclosed
Type: ожидается проверкаожидаются исправления

Корректность: 9/9.

Тесты: чот они валгринд сломали. И тестят они до сих пор лишь интеграционно. 5/8.

Стиль:

  1. addit это не слово английского языка.
  2. Пространства имён объяли не всё.
  3. CLI: std::string_view/std::string и operator ==.

6/8.

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

  1. Сырые указатели :/
  2. Кстати, nextId вообще нужен? Генерируется он точно непотокобезопасно.
  3. А зачем кладёшь в сет указатели на ноды вместо самих нод? Пусть сет ими владеет. Тогда и компаратор можно стандартный (пары сравниваются лексиграфически), а то и вообще без пар!

3/5.

Note: See TracTickets for help on using tickets.