Выполнение тестового задания?

Добрый день!


Проходя собеседование я выполнил тестовое задание, мне отказали без объяснения. Уважаемые пользователи прошу вещей помощи, посмотреть и конструктивно прокомментировать, что я сделал не так. А то душа болит неужели я и так плох…


Задание

ВЕБ-Разработчик на PHP

«Оформление покупок в internet-магазине»

Задача:


Необходимо разработать Internet-магазин. Сайт должен позволять:
  1. Просматривать товары по категориям
  2. Формировать корзину покупок
  3. Редактировать корзину: менять количество убирать или добавлять товары
  4. Оформлять заказ
  5. Авторизоваться с правами администратора
  6. Администратор может:
    1. Создавать\удалять\редактировать группы товаров
    2. Создавать\удалять\редактировать товары
    3. Просматривать заказы



Требования:
  1. Сайт должен использовать реляционную базу данных;
  2. Все файлы с логикой сайта необходимо поместить в папку inc
  3. В корне сайта находится 1 файл index.php, который в зависимости от параметров запроса отображает то или иное содержимое. Index.php генерирует оформление сайта, отвечает за авторизацию и инициализирует работу с базой данных;
  4. Не должно быть повторений кода;


Пожелания:
  1. Объектно-ориентированный подход;
  2. Валидная XHTML-верстка;
  3. CSS-стили;
  4. Проверка вводимых пользователем значений на клиенте и сервере;
  5. Разделение логики и верстки;
  6. Использование JavaScript и AJAX-технологии.



По результатам выполненных работ Вы должны предоставить:
  1. Исходные коды сайта;
  2. Данные для авторизации с правами администратора;
  3. Ссылку на выложенный в интернете сайт либо архив Denwer или AppServer, настроенный на 81 порт (ссылка вида localhost:81/shop)


Критерии оценки задания:

В первую очередь оценивается результат: функциональность и удобство сайта. Далее следует изучение базы данных, запросов и исходных кодов программы. Каждое выполненное пожелание добавляет баллы к итоговой оценке. Аккуратность в оформлении и документации кода, использование шаблонов программирования и любые другие «фишки» приносят вам дополнительные баллы.

исходники тут


и выложил work.enchikiben.ru


Спасибо.
  • Вопрос задан
  • 22144 просмотра
Пригласить эксперта
Ответы на вопрос 15
sankir
@sankir
Я конечно могу ошибаться или не знать что-то об обычных способах проверки кандидатов, но ИМХО вы просто на халяву кому-то написали Internet-магазин.
Ответ написан
Комментировать
TheHorse
@TheHorse
Поверхностно прочитал. Куча мелких баг форматирования, иногда немножко странное название функций и переменных.

Но с заданием вы очевидно справились. Порадовал inner join, хоть и не люблю нормализованные реляционные… Сделана защита от SQL-inject. В общем, нормально все.

Вывод: мудаки те кто вас собеседовал, инфа 99%. Но вроде еще наезд мог быть за использование чужих исходников.
Ответ написан
Vas3K
@Vas3K
Помню несколько лет назад ко мне тоже обратился, назовем его Геннадий, который «набирал крутых фрилансеров в новую крутую студию» и, видимо чтобы я доказал свою «крутость», выслал задание (больше похожее на реальное ТЗ), по которому надо было реализовать полноценный справочник по недвижимости со всем функционалом, в письме приложив ссылку на полугигабайнтый дамп не то CSV, не то SQL базы. Притом я должен был написать его сразу и за 12 часов, каждые 3 часа отчитываясь ему лично о проделанной работе.

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

Просто забейте и больше никогда не ведитесь на «тестовые задания» больше, чем в 100 строк, а тем более включающие в себя разработку готового продукта. Через пару лет будете вот так же рассказывать потомкам :)

Хотите проверить мой скилл как программиста? 100-200 строк хорошего задания вполне хватит для этого.
Хотите просто посмотреть на качество моего кода и умения как проектировщика больших систем? Добро пожаловать на мой github, где есть пара моих проектов, либо попросите «набросать на бумажке» что-то еще.

Почему-то на любом собеседовании в любую крупную компанию спрашивают либо накидать простейшую реализацию, либо дают на дом написать небольшой кусочек, а всем этим проходимцам-Геннадиям так сразу подавай «Интернет-магазин» или «Справочник недвижимости» с полным функционалом.
Ответ написан
Комментировать
@skvot
Вполне похоже на стандартное кидалово.
Мельком глянул код — комменты в стиле «капитана очевидности» использовать не нужно.
// клас ядра
class Core {

// получаем категории
$this->categories = Categories::get_categories();

«Применение комментариев должно компенсировать вашу неудачу в коде» (с) Роберт Мартин, чистый код.
Ответ написан
Комментировать
Поясняю. Это тестовое задание прекрасно показало Вашу компетентность.

Знание ООП на уровне PHP4; отсутствуют знание о подготовленных запросах, мало того использование какой-то устаревшей библиотеки даже для PHP4, которая для экранирования использует mysql_escape_string; отсутствует знания о паттернах (шаблонах проектирования); отсутствует знание о том, что такое «Валидная XHTML-верстка»; отсутствуют знания о современных фрейворках (это следует из предыдущих пунктов); не смогли разделить представление и логику работы (прямо в шаблонах запросы); незнание phpDoc или чего-нибудь подобного. Скорее всего не знаете как пишутся тесты, не умеете работать в системе контроля версий и т.п. Если в чём-то я не прав, то прошу указать на это.

Если контора крупная, то думать, что это не тестовое задание, а конкретная задача, которая где-то будет использовать, несколько странно.
Ответ написан
igolovin
@igolovin
мне тоже кажется, что вас развели, а вы на халяву сделали магазин. Выход у вас простой — продайте его кому-то:)
Ответ написан
Если честно, то написан там какой-то бред.
Ответ написан
Комментировать
int03e
@int03e
Не шарю в php, но:
1. Комменты на русском — втф? В gvim нечитаемые кракозябры
2. Как я понял, для работы с бд используется сторонняя разработка? Может стоило все самому писать, иначе легче уж вообще было взять Yii или что-то такое ))
Ответ написан
markoffko
@markoffko
Да там же нету MVC(!). Шутка. Для тестового задания довольно неплохо. Скорее всего фирме нужен был более скиловый программист. Много странных конструкций типо !isset($_POST['name_categori']) || empty($_POST['name_categori']).
Если не секрет сколько обещали примерно денег?
Ответ написан
WildZero
@WildZero
А вы случайно не в Перми проходили собеседование? Просто тоже натыкался где то года 2 назад на такое.
Ответ написан
rakot
@rakot
Посмотрел код.
Для тестового задания более чем хорошо, присоединяюсь ко всем, вас просто кинули.
Если нужна критика по коду:
1. $core = new Core( $db ); Плохая практика, пихать всё в конструктор. Эстетичнее Core( $db )->run();
2. sizeof, очень непривычна для вычисления размера массива, пользуйтесь count.
3. Корзина написана ужасно, сплошная смесь вёрстки, PHP и SQL. SQL в представлениях является очень дурным тоном.
4. Постоянно тащите за хвост переменную $db(передаёте в конструктор), от этого нужно избавляться.
5. var $db; мы всё ещё в PHP4?

Могу еще по придираться к коду, но не вижу смысла, недочёты мелкие. Любой, кто не допускает этих недочётов, послал бы далеко и на долго компанию с таким объёмным тестовым заданием.
Ответ написан
Tomasina
@Tomasina
Инженер-разработчик
может, стоит назвать эту контору публично, дабы другие пермяки были в курсе?
Ответ написан
KorP
@KorP
Кратко о себе
Я вот в код не полез, с утра не стоит :)
А вот магазин посмотрел:
1. почему можно добавить в корзину товар, без указания кол-ва? (ну ладно можно добавить, но тогда почему в корзину пустое значение и она не в состоянии посчитать сумму.)
2. ну и вытекающее из первого — зашёл в корзину, селект кол-ва стоит на 1, но по сути там пусто, открыл селект… простите, а что вы с ним сделали?
1
...
21321

это круто :)
Ответ написан
Комментировать
sankir
@sankir
Хмм, а магазинчик то меняется постепенно.
Могу еще придраться: а где моя история заказов? Почему я не могу посмотреть статус заказа, и вообще сохранился ли он? Может он уходит в никуда. Обязательной регистрации у вас нет, но хотя бы выдайте мне номер заказа и возможность посмотреть заказ по номеру, хотя бы список товаров и статус, без контактной информации.
Ответ написан
Комментировать
CKOPOBAPKuH
@CKOPOBAPKuH
В комментариях ругают, что не MVC, что плохое ООП, нет подготовленных запросов и дизайн сайта плохой. Всё это так, но:

В этом задании, очевидно, предполагается, что человек должен быть хорошим дизайнером, верстальщиком и программистом одновременно. При этом чтобы сделать весь этот функционал с хорошим поддерживаемым кодом, разделением на слои, с нормальным ООП, потребуется несколько дней.
Шлите, в общем, в задницу таких работодателей.
И уже после этого прислушивайтесь к советам про код. Советы, кстати, сами по себе правильные.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽