iDeals Solutions - небольшая галера с ЧСВ процессингом
Здравствуйте, ебаная Редакция! Я как и большинство разработчиков постоянно получаю входящие вакансии и предложения в линкеде, как правило сразу содержащие полное описание вакансии и попытку затянуть меня в процессинг на какое-нить собеседование (просто HR или техническое или еще какое-то).
Но тут одни ребята отличились и после пары-тройки стандартных сообщений прислали:
«компания заинтересовалась Вами и попросила сразу передать Вам тестовое задание)
на выполнение 3-4 дня».
И я уже было подумал что они сбросили какую-то дичь, которую я по их мнению должен пилить на празднико-выходных и выслать в течении тех самых 4 дней (что в принципе уже зашквар), но потом открыл его:
Необходимо разработать просмотрщик JSON, который бы выводил контент в виде дерева аналогично тому, как показываются структуры данных в Devtools
Дерево должно выглядеть следующим образом
Узлы-коллекции (array|object) могут отображаться в двух состояниях — свернутом и развернутом (корневой узел развернут всегда). Состояния переключаются по клику на треугольной стрелке слева от узла. При разворачивании раскрывается только сам узел. При сворачивании узла также сворачиваются все его развернутые подузлы.
В свернутом состоянии выводится ограниченный дайджест коллекции (не более трех элементов, далее — … ), также перед элементами массива не указываются индексы, поскольку в этом случае они очевидны. При уровне вложенности больше трех вместо дайджеста элемента выводится …
В развернутом состоянии индексы массивов показываются всегда, аналогично ключам объектов. Для развернутых узлов их дайджесты не выводятся, вместо них обозначения { … } и [ … ].
Счетчик выводится перед каждой коллекцией размером больше 1 элемента.
Атомарные узлы подсвечиваются разными цветами в зависимости от типа. Строки также обрамляются кавычками. Ключи объектов выводятся без кавычек, курсивом.
Поскольку строки могут быть очень длинными, то при их отображении есть несколько ограничений:
● в дайджесте выводится максимум 10 символов, если строка длиннее, то к ним добавляется … , чтобы намекнуть пользователю на большее
● размер блока для вывода строки не может превышать 400px * 200px, если контент не помещается, используется скроллинг
Просмотрщик должен быть написан таким образом, чтобы работать в качестве независимого компонента в разных сценариях с разными источниками данных. Однако для целей задания json-контент будет загружаться через перетаскивание соответствующего файла на вкладку приложения
Приложение без данных показывает Ready for JSON… или аналогичную жизнеутверждающую надпись на белом фоне, надпись Drop file… с затемнением должна появляться, если приложение обнаружит, что пользователь тащит ему свежий файл.
При перетаскивании нового файла на приложение с уже загруженным контентом его состояние сбрасывается, чтобы продемонстрировать новое дерево.
В случае ошибки при парсинге внизу должно выводиться сообщение. Желающие продемонстрировать особый шик могут показать в нем проблемный участок файла.
Дополнительные условия и примечания:
1. Задание должно быть выполнено на чистом React, без использования библиотек управления состоянием (Redux, MobX, RxJS и т.п.) и готовых компонентов. К счастью, они тут не особо нужны.
2. Можно и нужно использовать create-react-app, react-custom-scrollbars, react-dropzone или их аналоги
3. Можно использовать любой метод задания стилей
4. Кое-какие константы для стилей:
Это построение JSON дерева со всей визуальщиной, вложенностями, свистелко-перделками и даже генерацией юзер-френдли ошибок в консоли О_О, и его реально по-хорошему нужно пилить чуть ли не неделю (если конечно не скачивать готовые решения коих чуть больше чем дохуя).
По итогу мы имеем умников, насмотревшихся на процессинг эпла и гугла,
«забывших» при этом самим стать эплом или гуглом.




Коментарі (95)
В моей срани есть шарага, которая берет на платные(!) курсы, если напишешь мини-аналог инстаграмма, будь он трижды неладен.
Даже я не ебу как это делать та и вообще идите вы нахуй с таким говном.
я вот только не понял нафига здесь эта замечательная картинка.
там после нее идет прелестный диалог
— I see you’re no stranger to pain.
— I’ve been married… Twice.
https://www.youtube.com/watch?v=zxKJ-REbUlI
это намек на что, что любим и с удовольствием выполняем такие тестовые?
— I see you’re no stranger to pain.
— I am C++ developer.
— Nu ti i pidor!
у вас молодых чо-то с чувством меры. остановись после второй строчки и я бы сказал охуенный камент. третья это уже лишнее.
Ты прав. Прочитал без третьей строчки и это действительно охуенный каммент. Я даже заржал в голос))00)). Вышел во двор рассказал соседям и они тоже ржать начали.))) Всем двором хохотали.)0)) А дворовая собака вообще чуть сознание от смеха не потеряла.)0))) Вот это умора.))))00 Ну ты представляешь типа ты на плюсах пишешь, типа к боли привык ))))))))))))))))))00)))))))0)))))))
Вот как ты к дворовым собакам подкатываешь!
Хитрый то какой!
Ничего удивительного не вижу. На реакте пишут говноеды, так что какой-нибудь неудачник тестовое да и сделает. Щас проекты пилить проще простого — разбиваешь проект на несколько этапов, открываешь вакансию каждые два месяца и тысячу джунов-свитчеров, как-никак проект тебе запилят, а если мидлов будешь зарплатой заманивать, то вообще получится годно, т.к. эти чмошники тестовое стараются хорошо делать, они же рабы прирожденные.
Вот и я говорю что лучше в сраки ебстись чем в это ваше вайти войти! Гей хлопцы це Эвропа!
неделю на постройку дерева? ты там совсем долбоёб дремучий уже?.. ну что я за человек. ну конечно же да. это же веб-макака
Не хочешь делать ТЗ, тогда лови мой ХУЙ рикошетом за щеку.
Былоб что ловить! Так, прыщик! Такой только полизать и можно, в сраку не вставить! Гей хлопцы це Эвропа!
А ты сделал себе ХУЙ-БАЗУКУ?
> попытку затянуть меня в процессинг на какое-нить собеседование
Я один не понял что это?
Це американизмы в суржике. Нужно в сраку ебстись чтоб тебе наша украинская эвропейскость входила! Так переможем! Гей хлопцы це Эвропа!
Бля, зря я торопил Шизожука. Бедняга взял рандомную галеру, тестовое из интернетов и слепил статью. Прямо как мемес про жареный суп.Но даже если не так — вместо 4 дня надо 7 дней на тестовое, вот ведь ужас, пиздец, срочно на йобаное постить какие они там все нехорошие.
>По итогу мы имеем умников, насмотревшихся на процессинг эпла и гугла, «забывших» при этом самим стать эплом или гуглом.
Ты у них в офисе был? Овчарку за жопу мацал? На проэкты смотрел? На зряплаты смотрел? Судить о галере по тестовому это как оценивать качество кода по оформлению отступов.
P.S. Данный коммент проплачен тремя пачками Мивины от СЕО iDeals Solutions, но это не точно.
Ты действительно тупорылый. ПроЭктант хуев. Любитель уебать неделю своей никчёмной жизни на тестовое. Ноулайфер- раб топит за барина. А теперь присядь на бутылку и запили пару тестовых.
Люто плюсую. С конторой работал, правда не кодил. Вполне адекватны, толкают свой продукт.
Вроде как искали недавно СТО — где то на 8 тыс.у.е. Не знаю, насколько это адекватная цифра. Но в любом случае для нашей страны — з/п мечта.
Поработал 4 месяца, запилил своё СТО с автомойкой и таджиками, и нахуй то ИТ?
Я не веб макака, но нагуглил на телефоне решение за 30 сек.
Тоже в вебе не шарю, но это разве не JSON Viewer for React ? Которое гуглится за пару минут.
Да их на гитхабе тысячи! бери любой, посмотри как работает и закопипасть и все.
> если конечно не скачивать готовые решения коих чуть больше чем дохуя
Ну да, лучше тратить время и ебаться с этой хуитой, вместо того чтобы использовать готовое. Так делают велосипедисты.
На что эти дятлы рассчитывают? Джуниору это тестовое сильно сложно, а миддлам-синьерам и нахуй не всралось тратить даже 3 дня на тестовое от мутной конторы. Какой-то отрицательный отбор просто.