Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

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

485  1 2 все
russki1 прохожий03.03.18 10:46
03.03.18 10:46 

работадатель дал мне следующее тестовое задание, может кто знае как его решить


Написать серверный просмотрщик файловой системы на PHP
* Использовать Bootstrap 4, Laravel фреймворк и JS фреймворк на выбор.
* Функционал:
* * Перемещение по файловой системе. Перемещение должно происходить без полной перезагрузки страницы.
* * Просмотр файлов.
* * Удаление файлов с подтверждением.
* Страница просмотра файловой системы должна содержать:
* * Имя файла, размер, расширение, время изменения, действия (просмотреть, удалить).
* Как пример можно посмотреть на Dropbox, Google Drive.

#1 
Murr_0002 знакомое лицо03.03.18 12:09
Murr_0002
NEW 03.03.18 12:09 
в ответ russki1 03.03.18 10:46

серверный просмотрщик

-----

Я так понимаю, что это серверный просмотрщик клиентской системы? :)


Функционал: просмотр файлов.

-----

Замечательная задачка. Уточняю - меня где-то лежит старый телефон Сименс 35А - с ограниченной поддержкой бровсинга. На нем надо будет просматривать бинарный файл, который породит дамп некоторой программы. Если осилишь - тебе путь в Силиконовую Долину...


Google Drive

------

Стоит посмотреть какими силами и в какие сроки это реализовывалось. А так же - сколько это стоило. А потом - серьезно подумать над имеющейся ситуацией...



Сама задача - показать файлы на стороне сервера - не сложная, но формулировка задачи дает пищу для размышлений...

#2 
russki1 прохожий03.03.18 12:12
NEW 03.03.18 12:12 
в ответ Murr_0002 03.03.18 12:09

Да у меня тоже подобные мысли вертелись)

#3 
AlexNek патриот03.03.18 13:15
AlexNek
NEW 03.03.18 13:15 
в ответ russki1 03.03.18 10:46
Перемещение должно происходить без полной перезагрузки страницы.

так как содержимое папок нужно перегружать, то остается дерево каталогов, вот его то и нужно "стащить"


Просмотр файлов

Это тоже нужно где то "стибрить"


Остальное вроде особых затруднений не должно вызвать


Надеюсь не за бесплатно усё?

#4 
MrSanders старожил03.03.18 15:19
NEW 03.03.18 15:19 
в ответ AlexNek 03.03.18 13:15, Последний раз изменено 03.03.18 15:24 (MrSanders)
Остальное вроде особых затруднений не должно вызвать

Точно? Если задача понята правильно и действительно надо просматривать в браузере файлы на клиентской машине... Удачи. Получать разрешения от пользователя и убеждать браузер что вашему скрипту все же можно разрешить доступ к файловой системе.

На всякий случай - яваскрипту не то что к файловой системе доступа нет, он даже системные переменные просто так считать не может.


ТС:

* Как пример можно посмотреть на Dropbox, Google Drive.

А где на дропбоксе и гугл драйве просмотр локальной файловой системы?

* Просмотр файлов.

Word, Excel, PowerPoint, PDF, PS, фотошоп, что ещё?Не забудьте для офисных файлов вьюеры с интерпретатором визуал васика прикручивать. "Работодатель" молодец, да.

#5 
AlexNek патриот03.03.18 15:31
AlexNek
NEW 03.03.18 15:31 
в ответ MrSanders 03.03.18 15:19

А причем здесь Ява скрипт, когда речь о PHP. Хотя там тоже можно поиметь проблемы с каталогами, но это уже другая песня

Для просмотра тоже пользуем PHP причем разбивка идет на три группы:текст, картинки и всё остальное (как Hex View)

#6 
MrSanders старожил03.03.18 19:32
NEW 03.03.18 19:32 
в ответ AlexNek 03.03.18 15:31, Последний раз изменено 03.03.18 19:33 (MrSanders)

Для меня задача звучала настолько знакомо, что я по умолчанию "дополнил" - надо сделать веб-приложение на пыхыпы и яскрипте. Т.е. клиент открывает страничку в браузере, пыхыпы исполняется на сервере, подготавливает страничку отдает ее клиенту и клиент радуется копии эксплорера, но в своем браузере.

Если надо лазить по файловой системе сервера, то задача становится проще, жаль ТС пока что прямо не ответил на вопрос, какую же файловую систему смотреть надо.

#7 
  moose старожил03.03.18 19:56
NEW 03.03.18 19:56 
в ответ MrSanders 03.03.18 19:32, Последний раз изменено 03.03.18 19:57 (moose)
какую же файловую систему смотреть надо.

если клиентскую, то не требуется ни пыхыпы, ни жаваскрипта. в файерфоксе, например, в меню File->Open file, и смотрите файловую систему сколько влезет. и как это пыхыпы сумеет дотянуться до файловой системы клиента? жаваскрипт можно выполнить на сервере, но чтобы пыхыпы на клиенте - не слыхал.


#8 
MrSanders старожил03.03.18 21:21
NEW 03.03.18 21:21 
в ответ moose 03.03.18 19:56

Кстати, решение, удовлетворяющее всем требованиям, да.

Сделать страничку на которой (даже с помощью пыхыпы!) написать - "Нажмите File->Open". Ну или чтобы сразить наповал - автоматически при загрузке страницы открыть скриптом диалог для загрузки файла.
Через контекстное меню хочешь - удаляешь, хочешь - открываешь. Еще и просмотрщик выбрать можно!

#9 
Программист коренной житель05.03.18 09:41
NEW 05.03.18 09:41 
в ответ russki1 03.03.18 10:46

Я так понимаю, что просто веб сервис с фукциями:

- скопировать/переместить файл

- удалить файл

- да, точно удалить :) (ну или подтверждение на JS сделать)

- загрузить (download) файл

- показать список файлов в каталоге (список файлов передавать в виде JSON)


Ну и к этому запилить простенький фронт-энд на JS.

#10 
Программист коренной житель05.03.18 09:43
NEW 05.03.18 09:43 
в ответ MrSanders 03.03.18 15:19
просматривать в браузере файлы на клиентской машине...

Почему на клинской? "серверный просмотрщик файловой системы" - я так понимаю, что имеется в виду файловая система сервера.

#11 
Murr_0002 знакомое лицо05.03.18 09:49
Murr_0002
NEW 05.03.18 09:49 
в ответ Программист 05.03.18 09:43

я так понимаю

-----

Не надо понимать - надо читать задание и если там нет четкого указания что именно требуется,

то предполагать самый проблемный в реализации вариант.

Бо, это тестовое задание - проверка на понимание ситуации в него входит на 100%...

Ну а у "рабобрателя" всегда есть вариант - неее, йа не то хотел...

#12 
Программист коренной житель05.03.18 09:52
NEW 05.03.18 09:52 
в ответ Murr_0002 03.03.18 12:09
Я так понимаю, что это серверный просмотрщик клиентской системы? :)

Ну про "не надо понимать" - чья бы корова мычала :)

#13 
Murr_0002 знакомое лицо05.03.18 10:50
Murr_0002
NEW 05.03.18 10:50 
в ответ Программист 05.03.18 09:52

"предполагать самый проблемный в реализации вариант."

Да, было использовано неправильное слово. бывает...

#14 
Программист коренной житель05.03.18 11:02
NEW 05.03.18 11:02 
в ответ Murr_0002 05.03.18 10:50

А задание почитать не канает?


Там же написано черным по желтому "Написать серверный просмотрщик файловой системы на PHP". На PHP, Карл! Какое нахрен PHP на клиенте?


самый проблемный в реализации вариант

Ну так ты бы туда еще аутентификацию, шифрование и нейронную сеть предположил бы присобачить :) А что? Это еще проблемнее.


Я уж не говорю, что последним пунктом (для непонятливых) указано "Как пример можно посмотреть на Dropbox, Google Drive".

#15 
Murr_0002 знакомое лицо05.03.18 11:22
Murr_0002
NEW 05.03.18 11:22 
в ответ Программист 05.03.18 11:02

Там же написано черным по желтому "Написать серверный просмотрщик файловой системы на PHP".

-----

Именно это и читается - написать на ПХП, работающим на сервере, просмотрщик файловой системы.

Какая именно система - сервера, клиента или виртуальная - не специфицировано.

Потому берется прямой, но самый заморочный вариант - читать клиентскую ФС, обрабатывать на сервере результат с отображением/навигацией "дерева" на клиенте...


По варианту просмотра серверной ФС тоже есть проблемы - виндовый ИИС, по дефаулту, работает только с определенной частью ФС.

Остальное - надо специально конфигурить. Так что даже если считать что упомянута серверная ФС, то надо уточнять ограничения.


"Как пример можно посмотреть на Dropbox, Google Drive".

-----

Хммм...

Ты можешь себе представить ситуацию, когда у чела нет аккаунтов на этих сервисах?

Ну у меня, например, нет - не могу позволить себе 1-2 гига синхронизирующего трафика.

Но даже это не отменяет того момента, что что именно надо просматривать в задании не специфицировано - т.е. по выполнении задачи всегда есть возможность сказать что запрашивалось другое.


#16 
Программист коренной житель05.03.18 11:59
NEW 05.03.18 11:59 
в ответ Murr_0002 05.03.18 11:22

Это тестовое задание, никто не ожидает какого-то готового продукта.


Какая именно система - сервера, клиента или виртуальная - не специфицировано.
Потому берется прямой, но самый заморочный вариант - читать клиентскую ФС

На зло бабушке отморожу себе уши :)

Если задание не специфицировано, то просто либо спрашиваем, у того, что придумал это задание, либо выступаем в роли заказчика самостоятельно и додумываем спецификацию, при этом не забываем описывать ограничения. Однако в данном случае, все предельно ясно. ИМХО :) Ну и не забываем, что это тестовое задание.

Так что даже если считать что упомянута серверная ФС, то надо уточнять ограничения.

Вот только с ума сходить не надо :) Опять же, если ТС увидит, что в данном случае ИИС (кстати, почему именно ИИС, нигде в задании не сказано, что это все для винды :D да и под винду не только ИИС использовать можно) накладывает ограничения, то это просто описывается одной строчкой текста.

Так что тут явно не хватает еще полноценного инсталлятора, который бы включал установку и настройку веб сервера и php при этом для каждой известной миру операционной системы :D (ну если уж идти по "самому замороченному варианту")


Ты можешь себе представить ситуацию, когда у чела нет аккаунтов на этих сервисах?

Могу представить, что нет аккаунтов. Но не могу себе представить, чтобы человек из мира ИТ не имел представление о том, что такое Dropbox или Google Drive.


т.е. по выполнении задачи всегда есть возможность сказать что запрашивалось другое.

Ты полагаешь, что у фирмы, которая нанимает на работу стоит задача отказать как можно большему количеству претендентов?

#17 
Murr_0002 знакомое лицо05.03.18 12:45
Murr_0002
NEW 05.03.18 12:45 
в ответ Программист 05.03.18 11:59

просто либо спрашиваем

-----

Для осознания необходимости вопроса, собственно, и написан самый глупый вариант прочтения. смущ


самостоятельно и додумываем

------

Ты можешь додумать все что хочешь - "рабобратель" будет интерпретировать как ему нужно.



не забываем, что это тестовое задание.

-----

Именно.

Оцени временные затраты - описанная задача несколько великовата для тестового задания.

При этом, даже имея работающее решение, остается пространство для маневра/отказа.



не имел представление

-----

Имею, но не знаю как там выглядит интерфейс.

Создавать лишний аккаунт чтобы посмотреть как сделано мне лениво.



стоит задача

-----

Я не предполагаю какая задача стоит в данном случае.

Но Я оцениваю время выполнения задачи как >15 минут, т.е. не тест, а кусок работы.

Как показывает практика, есть куча шараг, которые под видом тестовых заданий дают кандидатам куски реальной работы на несколько дней и... на их выполнении все заканчивается.

100 кандидатов, 30-40 решений, 3-5 более-менее приличных - можно выбрать более-менее подходящее, обработать напильником по месту и втиснуть заказчику.

В данном случае для меня задание выглядит именно так - поэтому Я показал возможные проблемы и рекомендовал обдумать.

#18 
Программист коренной житель05.03.18 13:31
NEW 05.03.18 13:31 
в ответ Murr_0002 05.03.18 12:45
Оцени временные затраты - описанная задача несколько великовата для тестового задания.

Если не придумывать всякие сложности, то показать список файлов в браузере и скопировать файлы на сервере - вполне себе нормальное тестовое задание. Можно конечно, чтобы этот сервис при помощи нейронной сети и биг дата сам угадывал, какой файл и куда скопировать, но это никому не надо.


С другой стороны, если при виде задания, человек начинает додумывать и реализовывать самый сложный вариант, то это отличный повод не брать такого умника на работу :)


Имею, но не знаю как там выглядит интерфейс.

Зачем там смотреть интерфейс? Имеется в виду пример функционала, а не интерфейса. Функционал этих сервисов понятен и без регистрации. Особенно, в свете описанного выше задания.

#19 
Murr_0002 знакомое лицо05.03.18 15:45
Murr_0002
NEW 05.03.18 15:45 
в ответ Программист 05.03.18 13:31

начинает додумывать и реализовывать

------

У меня где-то есть предложение что-то как-то реализовать?

Повторюсь - "подсвечены" потенциальные проблемы. Как с ними поступать - это уже к ТС.


в свете описанного выше задания.

-----

Опять за рыбу деньги.



вполне себе нормальное тестовое задание.

-----

Время реализации?


У меня есть на 90% аналогичная задача. Даже более определенная и простая.


На сервер закидывается файл, Сервер на его основе генерит, распределенно по времени, кучу файлов.

Готовые файлы надо в несколько потоков загрузить на клиента.

Из ограничений - нельзя делать поолинг - слишком много придется таскать, нельзя делать отдельный процесс для

отслеживания окончания, перекачка должна начинаться максимально быстро после окончания генерации файла.

Из проблем - нет способа узнать закончил сервер генерацию или нет, количество паралельных клиентов - 5-10 тыс.


Модификация - специфицируется закидываемый файл - хмл-дифф.

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

Изменения - в любой момент времени надо иметь возможность быстро оценить изменеия в произвольной версии

и вернуться к ней, создать бранч и т.п... гита/свн нет, полные файлы исходных данных хранить нельзя,

ФС пользовать нельзя...


СШарп, .НЕТ, ИИС 7+, презентационный уровень не требуется - хватит настраиваемого клиента.


Желающие могут приступить к реализации "тестовой" задачи - объем несколько меньше, чем у ТС,

но моя оценка первой части где-то 30-40 часов, по второй - неопределенно.

#20 
1 2 все