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
comment:2 Changed 4 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to anisimova.karina |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Version: | 1.0 → 2.0 |
Корректность:
- Иногда (по крайней мере в напечатанных цифрах) сжатое больше расжатого.
- Если дать файл из одного вида байт разжимает не его. В остальных случаях часто тоже.
- Разжимает медленно, сжать тоже один раз не успело.
- Плохой порядок аргументов окончательно ломает.
3/9.
Тесты: неверное имя файла. И как я понимаю не тестируют построение дерева или что-то такое. 6/8.
Стиль:
- Магические константы!
- Пространства имён.
- Имена переменных.
hucut
?hucut
! - Мерить время исполнения
system_clock
-ом плохой план.
5/8.
Архитектура:
- Константа равная 8 кажется или через что-то стандартное выражается, или изобретение.
- Сырые указатели! Ссылки? Умные указатели? Значения?
- Код как
std::string
:std::vector<bool>
? - Почему архвиматор что-то знает про то, как печатать статистику?
2/5.
comment:3 Changed 4 years ago by
Owner: | changed from anisimova.karina to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
comment:4 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Корректность:
- Неправильный порядок аргументов роняет.
- Разжатие очень медленно, иногда и падает.
- Иногда разжимаешь в не до конца, почему-то.
4/9.
Тесты: в целом неплохо, но вместо случайных тестов можно было бы контртестов больше, и на построение дерева детальнее. 6/8.
Стиль:
- По пространствам имён: суть их в том, чтобы между разными модулями разносить имена. В этом плане Interface плохой неймспейс (а если у кого-то ещё будет?). В этом плане, если хочется, спрятать CLI в Huffman::Interface было бы круто, но можно и просто в Huffman.
u_char
это из Linux/POSIX откуда-то приехало. Вообще, никто не обещал, что код будет 8 бит...- Неконсистентный стиль имён. Ещё английский страдает.
- Повторяющиеся нетривиальные выражения (
std::string(argv[i])
). - Пробелы.
4/8.
Архитектура:
- Сырые указатели, в том числе в контейнерах.
- Кажется, вместо многих игр туда-сюда, хранить коды только в
vector<bool>
было бы успешнее. - Так много публично?
3/5.
Note: See
TracTickets for help on using
tickets.
И исключения пока не обрабатываются, но я добавлю