Після проходження співбесіди, для розробника настає випробувальний термін. Це один з найважчих етапів для людини на новій роботі – йде адаптації з новим колективом, нескінченний потік нових знань, які ледве встигаєш засвоювати, та ще й тестове завдання, і воно не з простих.

Не буду ходити навколо, а напишу яке воно є, і сподіваюся на Ваші коментарі:

Дане тестове завдання скоріше всього більше підходить для junior розробника, ніж для досвідченого вовка ѕепіога.

Анотація

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

  • завершення випробувального терміну і зарахування на роботу
  • продовження випробувального терміну ще на 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.

Гостьова книга. JavaScript та робота з файлами.

До базової функціональності, слід додати наступні можливості:

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

Гостьова книга. Регулярні вирази.

До базової функціональності, слід додати наступні можливості:

  • Користувач може використовувати наступні HTML теги в повідомленнях:
  • Повинна бути перевірка на закриття тегів, код повинен бути валідним XHTML

Гостьова книга. JavaScript і AJAX.

До базової функціональності, слід додати наступні можливості:

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

Вимоги

Система повинна коректно працювати на ОС Linux з наступною конфігурацією:

  • PHP 5.1+
  • MySQL 4.1+
  • Apache 2.2+

Допустимо використовувати наступні бібліотеки:

  • PHP Zend Framework або PEAR
  • JS jQuery або Prototype

 

P. S. На картинці зображений двигун Стірлінга, wikipedia частенько дає їжу для розуму…