task: Тестовое задание:
Написать программу, которая осуществляет поиск дубликатов файлов. На вход подаётся путь, по которому должен осуществляться поиск.
На выходе - текстовый файл, в котором будут указаны все дубликаты, по 1 пути на строку.
Будет оценено затраченное время, качество кода, производительность программы, отказоустойчивость.
Пожалуйста, при выполнении замерте потраченное на выполнение время.
С уважением. Игорь
10 vby - xntybt b fyfkbp/
- Под дубликатами понимаем файлы, которые идентичны по содержанию, размеру и названию. но могут отличаться по дате.
- Т.к. время на реализацию указанно до 1 дня , делаем вывод, что не нужно решение с какими-то сверх алгоритмами - простейшее.
- для первичной выборки проверим хеши. на выходе получаем перечень файлов с параметрами: путь, размер, хеш,
- сортируем полученный индекс для получения дублей (запрос)
- для страховки от коллизий перепрогоняем файл (дубль) по каждой группе, где совпали имя файла, хеш, размер.
- если совпадения не выстрелили - выходим.
10 минут = чтение доки 15 минут = изучение справки подбор решения. 60 минут = написание и тестирование кода. ?? минут = оформление, форматирование причесывание. итого 2 ч.
- Clone project to you server;
- Run composer to upload vendors;
- for ubuntu: type in comand line "php bin/phpUnit -c Resource /path/to/test/wich/you/want/to/start"
- to run version 1 = procedure style = type "php app.php test_Data/or/other/folder/to/search/doubles"
- to run version 2 = with autoload + OOP = type "php app_v2.php test_Data/or/other/folder/to/search/doubles"