|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
Оцените пожалуйста тестовое задание джуна php13.06.2019, 15:05. Показов 6158. Ответов 24
Метки нет (Все метки)
Привет. Пробовался на должность джуна php, было тестовое задание которое я выполнил но мне отказали. Я прекрасно понимаю что могут отказать без внятной на то причины но как-бы хочется развиваться а каких то действительно стоящих замечаний я не услышал. Может вы че подскажите?
https://github.com/Vvedensky/test4Artjoker
0
|
|
| 13.06.2019, 15:05 | |
|
Ответы с готовыми решениями:
24
Тестовое задание
Тестовое задание в использованием словаря |
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 13.06.2019, 15:25 | |
|
Код подвержен sql инъекциям, на этом проверку задания можно заканчивать.
0
|
|
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 13.06.2019, 15:41 [ТС] | |
|
Согласен. Ну я ж на джуна пробуюсь а не на мидла. Самое интересное что мне в ответе за иьекции даже не написали) Есть ли какие-то стандарты джун мидл синьер и кто что должен знать?
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 13.06.2019, 15:50 | |
|
Это достаточно грубая ошибка, чтобы сразу отказать на джуна.
0
|
|
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 13.06.2019, 15:58 [ТС] | |
|
Полностью согласен! Даже чет не думал об этом. Забываю все когда долго не пишу. Но отказали вообще по другой фигне. вот и интересно стало
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 13.06.2019, 16:16 | |
Сообщение было отмечено Vvedensky как решение
Решение
Vvedensky, так это не единственный косяк. В шаблоны не заглядывал, но раз были инъекции, то уверен на 99% что там xss. В модели для каждого запроса создаётся новое соединение с бд. Файл с конфигурацией отслеживается системой контроля версий.
Не используется автозагрузка, что формально не ошибка, служит индикатором того, что знания о языке на уровне конца 2000х, начала 2010х. А в php с тех времен много чего поменялось. Что касается требований к уровню знаний между джуном и мидлом вопрос сложный, у каждой конторы могут быть свои представления. В моем понимании джуна отличает то, что он должен на достаточно хорошем уровне знать язык, но при этом не способен составить адекватную архитектуру, которую можно будет адекватно поддерживать. Поэтому получившийся "mvc" не стал считать как ошибку.
1
|
|
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 13.06.2019, 16:19 [ТС] | |
|
А еще вопрос PDO никак не защищает от иньекций?
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 13.06.2019, 16:30 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 13.06.2019, 16:37 [ТС] | |
|
Понял. Спасибо. Буду учиться.
0
|
|
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
|
| 13.06.2019, 19:47 | |
Сообщение было отмечено Vvedensky как решение
Решение
Добавлю:
1) Не соответствие стандартам PSR. Да и есть ли вообще единый стиль в проекте? Вижу метод getArea, а рядом register_user. 2) PHP 7 похоже еще не знаете. 3) Зачем дергать Db::connect() в каждом методе? Можно в конструктор запихать и потом дергать через $this->db. А сам Db::connect() можно сделать хотя бы синглтоном. Вообще рекомендую про паттерны почитать. 4) Не вижу обработок ошибок в роутере. Что будет если я перейду на несуществующую страницу? По идеи юзер должен увидеть 404, а не ошибки PHP. 5) pageController это что за чудо? 6) Регистрация должна возвращать одного юзера, а не массив юзеров. 7) Желательно чтобы метод мог возвращать только один тип данных, так код становится более надежным и предсказуемым. 8) Зачем в registerController, метод register вынесен куда-то отдельно? Еще и публичный, как будто вы его где-то еще дергаете? 9) css/js почему-то во view лежат. 10) В условиях не сказано что надо все писать с нуля, неплохо было бы что-то с github подключить. Для джуна косяки не критичные имхо. На месте проверяющих я бы перечислил косяки и дал бы время на исправление. Вот если бы смог исправить в приличные сроки, то это было бы даже круче чем если бы сразу сделал хорошо.
1
|
|
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 13.06.2019, 21:26 [ТС] | |
|
Супер! Спасибо за ответы! Очень полезно было услышать мнение знающих людей! Буду учить)
0
|
|
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
||
| 13.06.2019, 21:35 | ||
|
Дополню:
1. Скачал ваш проект, закинул на тестовый домен. Запускаю - пустая страница. Как так? Надо копаться в деталях Router, чтобы понять, что надо перейти по адресу ?route=register. Не критично, но можно же было отобразить эту форму сразу на главной. Выглядит как небрежное отношение к задаче.2. В htaccess единая точка входа, а роутинг через get-параметр. Странная смесь. 3. Включил отображение ошибок, получил:
1
|
||
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 13.06.2019, 21:43 [ТС] | |
|
1. Согласен. Даже не думал об этом. В 12ч начал в 2ч ночи закончил этот тест писать в 2 часа уже не думалось (знаю что делается это быстрей просто давно ничего не писал да и практики мало)
2. В опенкарте такая система. Сделал по аналогии. 3. Согласен! косяк.
0
|
|
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
||
| 13.06.2019, 21:58 | ||
site.ru/?route=register было site.ru/register. Соотношения get-параметров и конечных URL адресов хранятся в БД, таблица oc_url_alias.Т.е. единая точка входа там нужна для ЧПУ, а у вас единственное использование, которое я вижу - можно не писать ? в URL-адресе, т.е. http://domain/route=register.Кстати, когда выбираю разные варианты в SELECT, в отладчике видно, что URL немного кривые: /route=register/area??id=0110100000 /route=register/city??id=01 Два вопросительных знака.
0
|
||
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 13.06.2019, 22:30 [ТС] | |
|
Да чпу там есть но корзина работает через гет запрос а тут как раз через json нужно было города получать. Короче особо не раздумывая написал и роутер по такому принципу.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 15.06.2019, 18:49 | |
|
а они точно настояли, чтобы никакой фреймворк не использовался?
0
|
|
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 15.06.2019, 20:37 [ТС] | |
|
Я если честно то не помню. Вроде бы. Но так как я мало на пхп пишу чисто для себя захотелось что-то подобное написать.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 16.06.2019, 07:02 | |
|
от джуна глупо ждать БД, это отдельная сложная профессия
(и в БД вообще-то опасно пускать всех подряд) фреймворк от джуна нужен, например Symfony гуглить и решать простые задачи - вот чего ждут от ждуна JS (опять же через jQuery-фреймворк)
0
|
|
|
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
|
|
| 16.06.2019, 09:48 [ТС] | |
|
Я в отдел разработки на ЦМС тестился. Вряд ли фреймворк там нужен был.
0
|
|
|
74 / 29 / 4
Регистрация: 16.10.2017
Сообщений: 95
|
|
| 16.06.2019, 10:10 | |
|
Vvedensky,
какой ответ то от них был?
0
|
|
| 16.06.2019, 10:10 | |
|
Помогаю со студенческими работами здесь
20
Оцените пожалуйста тестовое задание
Тестовое задание Тестовое задание тестовое задание Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|