Monday, 7 September 2015

sergeyr: (Default)
Вот казалось бы - элементарное соображение: при копировании файлов нужно сначала проверить возможность копирования, как можно быстрее спросить пользователя как поступать в ситуациях неочевидного выбора (начинать ли копировать при расчетной нехватке места, переписывать ли уже существующие файлы, пробовать ли повторно копировать заблокированные и т.п.), параллельно вести копирование всего, что можно, и по ходу дела вывешивать вопросы, возникающие из-за изменений в директориях, произошедших во время копирования, снова же не прекращая при этом копирования беспроблемных файлов.

Очевидно, что нельзя откладывать все вопросы на последний момент, т.к. многие процессы копирования имеют смысл только в том случае, если скопировано будет всё и без ошибок. Если пользователь запустит копирование на 3 часа, будет эти 3 часа скрипеть зубами из-за торможения компа (обычного при копировании больших массивов данных), и только в конце обнаружит что всё было зря - это фэйл. Т.е. возможные проблемы нужно проверить сразу.

Очевидно, что также нельзя задавать вопросы сразу, и при этом прекращать копирование беспроблемных файлов только потому, что пользователь не ответил на вопросы о проблемных. Пользователь мог запустить копирование и уйти на обед, а то и домой, не дожидаясь пока комп начнет задавать вопросы - и если через секунду после его ухода длительный процесс копирования намертво застопорился из-за пустякового вопроса, касающегося только одного маловажного файла из тысячи, то это фэйл. Если места хватает - копировать нужно всё что можно. Если окажется, что без проблемных файлов весь процесс потерял смысл, то удалить потом - меньшая проблема, удаление происходит несравнимо быстрее копирования.

Очевидно, что пользователю совершенно не нужно знать имена копируемых файлов, мелькающие с такой скоростью, что он и не способен их читать. Точно также ему совершенно не нужно знать точные проценты скопированного, точные цифры средней скорости и точные цифры прогнозов времени копирования. Всё это лишь имитация точности, особенно в прогнозе времени копирования, а процедура их пересчета и вывода при том может существенно затормаживать копирование пачек мелких файлов. Все эти цифры должны расчитываться и выводиться в грубом приближении, а имена файлов - показываться только для крупных файлов, копирование коих занимает значительное время. Чтобы убедиться, что процесс копирования не завис - достаточно точного счетчика скопированных файлов и грубой оценки скорости копирования за последний 1% от времени копирования.

И что же мы видим?
Практически все инструменты копирования - от стоящих по умолчанию на операционках и до специальных (вроде Total Commander, который позиционируется вообще как инструмент для сисадминов) ни одному из этих очевидных требований не удовлетворяют. И ведь это не техническая проблема - это проблема элементарного бездумия при постановке задачи и контроле качества продукта. Продукт делается как бы в расчете на никуда не спешащих роботов.

Profile

sergeyr: (Default)
sergeyr

Style Credit

Powered by Dreamwidth Studios

Expand Cut Tags

No cut tags