17 March 2008

Тестовое задание для PHP разработчика на испытательном сроке

PHP


После прохождения собеседования (ох и бурное обсуждение получилось), для разработчика наступает испытательный срок. Это один из самых тяжелых этапов для человека на новой работе — идет адаптации с новым коллективом, нескончаемый поток новых знаний, которые с трудом успеваешь усваивать, да еще и тестовое задания, и оно не из простых…

Не буду ходить вокруг да около, а напишу какое оно есть, и надеюсь на Ваши комментарии:
 
Данное тестовое задание скорей всего больше подходит для junior разработчика, чем для матерого волка seniorа.

  1. Аннотация


    Данный документ описывает тестовое задание, которое должен выполнить претендент на должность Junior PHP Developer.
    Задание рассчитано на 80 часов разработки. После завершения тестового задания принимается решение, оно может быть одним из следующих:
    • завершение испытательного срока и зачисление на работу
    • продолжение испытательного срока еще на 2 недели с живыми или тестовыми проектами
    • завершение испытательного срока и отказ в зачислении на работу 

    Тестовое задание разделено на четыре составляющих – первая часть обязательна, остальные не являются обязательными, и связаны только с первой частью. Тем не менее выполнение необязательных частей является безусловным плюсом.
     
  2. Гостевая книга


    Гостевая книга предоставляет возможность пользователям сайта оставлять сообщения на сайте. Все данные введенные пользователем сохраняются в БД MySQL, так же в базе данных сохраняются данные о IP пользователя и его браузере.
    Форма добавления записи в гостевую книгу должна иметь следующие поля:
    • User Name (цифры и буквы латинского алфавита) – обязательное поле
    • E-mail (формат email) — обязательное поле
    • Homepage (формат url) – необязательное поле
    • CAPTCHA (цифры и буквы латинского алфавита) – изображение и обязательное поле (http://ru.wikipedia.org/wiki/CAPTCHA)
    • Text (непосредственно сам текст сообщения, HTML тэги недопустимы) – обязательное поле
     
    Сообщения должны выводится в виде таблицы, с возможностью сортировки по следующим полям: User Name, e-mail, и дата добавления (как в порядке убывания, так и в обратном). Сообщения должны разбиваться на страницы по 25 сообщений на каждой. Сортировка по умолчанию – LIFO.
    При написании проекта следует обратить внимание на защиту от XSS атак и SQL –инъекций. (http://ru.wikipedia.org/wiki/Межсайтовый_скриптинг и http://ru.wikipedia.org/wiki/Инъекция_SQL)
    Приветствуется создания простейшего дизайна с использованием CSS.
     
     
  3. Гостевая книга. JavaScript и работа с файлами.


    К базовой функциональности, следует добавить следующие возможности:

    • К сообщению пользователь может добавить картинку или текстовый файл
    • Изображение должно быть не более 320х240 пикселей, при попытке залить изображение большего размера, картинка должна быть пропорционально уменьшена до заданных размеров, допустимые форматы файлов: JPG, GIF, PNG
    • Текстовый файл не должен быть больше чем 100кб, формат TXT
    • Просмотр файлов должен сопровождаться визуальными эффектами (для примера можно посмотреть http://www.huddletogether.com/projects/lightbox/ )


  4. Гостевая книга. Регулярные выражения.


    К базовой функциональности, следует добавить следующие возможности:
    • Пользователь может использовать следующие HTML тэги в сообщениях:

    • Должна быть проверка на закрытие тэгов, код должен быть валидным XHTML


  5. Гостевая книга. JavaScript и AJAX.


    К базовой функциональности, следует добавить следующие возможности:
    • Валидация вводимых данных на стороне сервера и клиента
    • Функция предпросмотраи добавления сообщения, без перезагрузки страницы
    • Для HTML тэгов сделать панель с кнопками ([link],[code],[italic],[strike],[strong])
    • Добавление визуальных эффектов так же приветствуется 


  6. Требования



    Система должна корректно работать на ОС Linux со следующей конфигурацией:
    • PHP 5.1+
    • MySQL 4.1+
    • Apache 2.2+

    Допустимо использовать следующие библиотеки:
    • PHP Zend Framework или PEAR
    • JS jQuery или Prototype
     



P.S. На картинке изображен двигатель Стирлинга, wikipedia частенько дает пищу для ума...

C.P. PHP: Тестовое задание для разработчика, многие его уже успели обсудить… ;)

Upd: очень правильный комментарий появился на моём блоге:

народ, вы видимо не понимаете, на кого это задание рассчитано. Человек с опытом ЕСТЕСТВЕННО не будет его делать по двум причинам: а) не захочет тратить время и б) ему его не дадут.

но реалии таковы, что это часто-густо вообще первое более-менее объёмное задание соискателя на должность junior php developer.

поэтому 80 часов даётся не для того, чтобы он это задание просто сделал, а чтобы привёл реальность (свои знание) в соответствие с галочками в своём резюме напротив php, html, css, js, ajax, mysql.

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

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

а кандидаты, которым есть что показать, естественно идут сразу в проекты.

Tags:phptest
Hubs: PHP
+18
38.7k 81
Comments 105