Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13

Оцените пожалуйста тестовое задание джуна php

13.06.2019, 15:05. Показов 6158. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Пробовался на должность джуна php, было тестовое задание которое я выполнил но мне отказали. Я прекрасно понимаю что могут отказать без внятной на то причины но как-бы хочется развиваться а каких то действительно стоящих замечаний я не услышал. Может вы че подскажите?

https://github.com/Vvedensky/test4Artjoker
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2019, 15:05
Ответы с готовыми решениями:

Тестовое задание
Дали тестовое задание, так как я его провалил, интересно сообразит ли кто то что вообще должен делать этот код и в чем тут ошибки? Потому...

Корректно ли тестовое задание
Честно говоря не знаю, куда лучше сунуть данную тему, но так как она относится к PHP и ООП, запилил сюда. В общем я получил тестовое...

Тестовое задание в использованием словаря
Здравствуйте! Не могу разобраться, пожалуйста, помогите. Выполняю тест для C++. Мне необходимо выполнить его на PHP. В...

24
Эксперт PHP
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
Эксперт PHP
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
Эксперт PHP
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
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
13.06.2019, 16:30
https://www.php.net/manual/ru/... ection.php
https://www.php.net/manual/ru/... ements.php
1
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
13.06.2019, 16:37  [ТС]
Понял. Спасибо. Буду учиться.
0
 Аватар для tarasalk
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
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
13.06.2019, 21:35
Дополню:
1. Скачал ваш проект, закинул на тестовый домен. Запускаю - пустая страница. Как так? Надо копаться в деталях Router, чтобы понять, что надо перейти по адресу ?route=register. Не критично, но можно же было отобразить эту форму сразу на главной. Выглядит как небрежное отношение к задаче.

2. В htaccess единая точка входа, а роутинг через get-параметр. Странная смесь.

3. Включил отображение ошибок, получил:

Deprecated: Non-static method modelRegister::getRegion() should not be called statically in D:\Programs\OpenServer\domains\test.loc\ controller\register.php on line 16

Deprecated: Non-static method Db::connect() should not be called statically in D:\Programs\OpenServer\domains\test.loc\ model\register.php on line 12
1
0 / 0 / 0
Регистрация: 13.06.2019
Сообщений: 13
13.06.2019, 21:43  [ТС]
1. Согласен. Даже не думал об этом. В 12ч начал в 2ч ночи закончил этот тест писать в 2 часа уже не думалось (знаю что делается это быстрей просто давно ничего не писал да и практики мало)
2. В опенкарте такая система. Сделал по аналогии.
3. Согласен! косяк.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
13.06.2019, 21:58
Цитата Сообщение от Vvedensky Посмотреть сообщение
В опенкарте такая система.
Насколько помню, там можно включить модуль ЧПУ, чтобы вместо 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.06.2019, 10:10
Помогаю со студенческими работами здесь

Оцените пожалуйста тестовое задание
Доброго времени суток, уважаемые форумчане :) Работодатель прислал следующее задание: "Необходимо разработать одностраничное...

Тестовое задание по PHP
Было бы интересно узнать, как это реализовать на практике

Тестовое задание
Возникла необходимость сделать вот такое задание. Create a configurable two-level cache (for caching Objects). Level 1 is memory,...

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

тестовое задание
Здравствуйте! тестовое задание : Задача создать GUI приложение для конвертации файлов данных разных форматов. Данными в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
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(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru