Почему-то подумал я, что уж ради столь уважаемой здесь компании можно-таки поступиться принципами. И вот чего получилось.
Прошу уважаемое сообщество выдать свою оценку. Конкретно, где имеет место быть несоответствие заданию, какие есть минусы и в чем я не прав. Времени ушло много, и очень хочется вынести хоть какую-нибудь пользу из этого.
Позиция: Senior C# Developer (Москва).
Задание:
здесь
Мое решение:
здесь
Мои комментарии, отправленные вместе с решением:
здесь
Резюме специалиста, проверявшего задание (с большим трудом удалось извлечь):
здесь
Мой ответ на резюме специалиста (выслал его вместе с доработанным вариантом решения) выложу отдельным постом. Надо ли говорить, что больше писем из уважаемой компании мне не поступало...
Еще пара слов по поводу "архитектурного решения". Само собой, для максимальной производительности в реальной жизни следовало бы реализовать разбиение на блоки, таблицу этих блоков, дефрагментацию и еще много чего. Но я сделал так, как сделал, потому что:
Скажем так: мое желание работать в уважаемой компании, в принципе, измеряется 20-ю жопочасами, потраченными на этот вариант. Но никак не 60-ю жопочасами, которые бы ушли на выработку и отладку более эффективного решения.
Мои попытки сотворить новую файловую систему для Линукса в рамках выполнения тестового задания смотрелись бы ну очень забавно.
Всем спасибо за ответы!