Opened 4 years ago

Closed 4 years ago

#963 closed ожидается проверка (задача сдана)

HW #3 (Huffman) anisimova.karina

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

Description

Оно вроде работает, но я не уверена в скорости. Пока не понимаю, как сделать быстрее и в чем вообще проблема.

Change History (4)

comment:1 Changed 4 years ago by anisimova.karina

И исключения пока не обрабатываются, но я добавлю

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

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

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

  1. Иногда (по крайней мере в напечатанных цифрах) сжатое больше расжатого.
  2. Если дать файл из одного вида байт разжимает не его. В остальных случаях часто тоже.
  3. Разжимает медленно, сжать тоже один раз не успело.
  4. Плохой порядок аргументов окончательно ломает.

3/9.

Тесты: неверное имя файла. И как я понимаю не тестируют построение дерева или что-то такое. 6/8.

Стиль:

  1. Магические константы!
  2. Пространства имён.
  3. Имена переменных. hucut? hucut!
  4. Мерить время исполнения system_clock-ом плохой план.

5/8.

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

  1. Константа равная 8 кажется или через что-то стандартное выражается, или изобретение.
  2. Сырые указатели! Ссылки? Умные указатели? Значения?
  3. Код как std::string: std::vector<bool>?
  4. Почему архвиматор что-то знает про то, как печатать статистику?

2/5.

comment:3 Changed 4 years ago by anisimova.karina

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

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

Resolution: задача сдана
Status: assignedclosed

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

  1. Неправильный порядок аргументов роняет.
  2. Разжатие очень медленно, иногда и падает.
  3. Иногда разжимаешь в не до конца, почему-то.

4/9.

Тесты: в целом неплохо, но вместо случайных тестов можно было бы контртестов больше, и на построение дерева детальнее. 6/8.

Стиль:

  1. По пространствам имён: суть их в том, чтобы между разными модулями разносить имена. В этом плане Interface плохой неймспейс (а если у кого-то ещё будет?). В этом плане, если хочется, спрятать CLI в Huffman::Interface было бы круто, но можно и просто в Huffman.
  2. u_char это из Linux/POSIX откуда-то приехало. Вообще, никто не обещал, что код будет 8 бит...
  3. Неконсистентный стиль имён. Ещё английский страдает.
  4. Повторяющиеся нетривиальные выражения (std::string(argv[i])).
  5. Пробелы.

4/8.

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

  1. Сырые указатели, в том числе в контейнерах.
  2. Кажется, вместо многих игр туда-сюда, хранить коды только в vector<bool> было бы успешнее.
  3. Так много публично?

3/5.

Note: See TracTickets for help on using tickets.