Пилил тестовое задание на позицию "Experienced C# Developer".
Задача:
1. Консольное приложение на C# для поблочного сжатия и распаковки файлов с помощью "GzipStream".
2. Исходный файл делим на блоки одинакового размера по 1 метру.
3. Каждый блок сжимается и записывается в выходной файл независимо от остальных блоков.
4. Размер файлов может превышает размер оперативки.
5. Можно юзать: (Thread, Manual/AutoResetEvent, Monitor, Semaphor, Mutex)
6. Нельзя юзать: (async/await, ThreadPool, BackgroundWorker, TPL).
7. Запуск след. образом: GZipTest.exe compress/decompress [имя исходного файла] [имя результирующего файла].
8. Формат архива не важен, соответствие формату GZIP опционально.
Решение:
https://yadi.sk/d/ZULN7SW1yWq6Tw
Почему решение некачественное (по мнению проверяющего):
1. Скорость хорошая.
2. Код довольно сложно читать.
3. Почему-то от файла осталась только маленькая часть после распаковки.
Вопрос к опытным разрабам:
1. Глянув на проект, действительно ли код нечитабелен?
2. Есть ли в нем явные косяки?
3. "от файла осталась только маленькая часть после распаковки"
- сколько тестировал, проблем не было. Видит ли кто косяк в коде?
Косяк нашёл сам, всем спасибо за советы по поводу "красоты кода" :*