Skip to content

JudeForOROINC/TestTaskYouControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

TestTaskYouControl

=========================== This is a test task for You control;

task: Тестовое задание:

Написать программу, которая осуществляет поиск дубликатов файлов. На вход подаётся путь, по которому должен осуществляться поиск.

На выходе - текстовый файл, в котором будут указаны все дубликаты, по 1 пути на строку.

Будет оценено затраченное время, качество кода, производительность программы, отказоустойчивость.

Пожалуйста, при выполнении замерте потраченное на выполнение время.

С уважением. Игорь

10 vby - xntybt b fyfkbp/

  1. Под дубликатами понимаем файлы, которые идентичны по содержанию, размеру и названию. но могут отличаться по дате.
  2. Т.к. время на реализацию указанно до 1 дня , делаем вывод, что не нужно решение с какими-то сверх алгоритмами - простейшее.
  3. для первичной выборки проверим хеши. на выходе получаем перечень файлов с параметрами: путь, размер, хеш,
  4. сортируем полученный индекс для получения дублей (запрос)
  5. для страховки от коллизий перепрогоняем файл (дубль) по каждой группе, где совпали имя файла, хеш, размер.
  6. если совпадения не выстрелили - выходим.

10 минут = чтение доки 15 минут = изучение справки подбор решения. 60 минут = написание и тестирование кода. ?? минут = оформление, форматирование причесывание. итого 2 ч.

How to

Run Tests

  • 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"

Versions of application

  • 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"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages