Большой Воронежский Форум
» Веб-дизайн>проверимся!
Breathe 09:40 10.10.2007
Тест для программистов PHP
1. «Хороший» программный код – это
(a) код, который не содержит ошибок;
(b) код, который гибко реагирует на возникающие ошибки, и выдает информацию об ошибке пользователю;
(c) код, который не содержит обработчики ошибок, т.к. ошибочные ситуации являются редкими, и нет необходимости забивать код обработчиками ошибок;
(d) другое: ________________________________________
2. Почему, по Вашему мнению, в программах, написанных на PHP, обнаруживается достаточно большое количество уязвимостей (SQL injection, XSS и т.п.)?
(a) Сам язык программирования провоцирует ошибки такого рода.
(b) Низкая квалификация программистов.
(c) Попытка «изобрести велосипед»: использованные собственных программных модулей вместо стандартных, проверенных.
(d) Неизбежное свойство человека совершать ошибки.
(e) Другое: _________________________________________
3. Пусть есть набор из 100 тысяч слов (словарь). Программа на PHP получает на вход некоторый текст и проверяет, содержится ли очередное слово текста в словаре или нет. Сравните две версии программы и выберите наиболее быструю, ответ объясните.
(a) /* чтение словаря в память, затраты на этот этап не оцениваются, $a – очередное слово из словаря */
...
$dictionary[] = $a;
...
/* основной цикл работы программы, $word – очередное слово текста */
while (...)
{
if (array_search($word, $dictionary) === false)
echo «Not found»;
else
echo «Found»;
}
(b) /* чтение словаря в память, затраты на этот этап не оцениваются, $a – очередное слово из словаря */
...
$dictionary[$a] = 1;
...
/* основной цикл работы программы, $word – очередное слово текста */
while (...)
{
if (!array_key_exists($word, $dictionary))
echo «Not found»;
else
echo «Found»;
}
4. Какие программные продукты и технологии Вы используете при разработке программ на PHP (кроме собственно интерпретатора PHP, сервера БД и WWW-сервера)?
(a) Редакторы: _________________________________________
(b) IDE: _________________________________________
(c) Системы контроля версий: _________________________________________
(d) Технологии и инструменты проектирования: __________________________
(e) Инструменты управления проектом: _________________________________
(f) Библиотеки PHP: _________________________________________
(g) Другое: _________________________________________
5. Почему в синтаксисе SQL можно написать «SELECT * FROM table1, table2» (INNER JOIN), но нельзя написать «SELECT * FROM table1 LEFT JOIN table2»? (При этом допустим запрос: «SELECT * FROM table1 LEFT JOIN table2 ON table1.a = table2.b»).
(a) Синтаксический недостаток языка SQL;
(b) Вместе с «LEFT JOIN» без условия «ON» нельзя использовать «SELECT *»;
(c) Данные запросы запрашивают одни и те же данные, но форма запроса разная, так сложилось исторически;
(d) Другое: ____________________________________________
6. В языке JavaScript нельзя (несколько ответов могут быть правильными, при необходимости ответ поясните):
(a) изменить метод существующего класса;
(b) создать два объекта одного класса, имеющие различные методы;
(c) динамически создать функцию;
(d) сложить при помощи оператора «+» целое и строку;
(e) изменить стиль HTML-элемента (атрибут style);
(f) обратиться из iframe'а к JavaScript-переменным родительского окна;
(g) всё вышеперечисленное можно сделать. [Ответ]
Vital_N 11:26 10.10.2007
это ты к чему здесь запостил? ) [Ответ]
1000w 15:38 10.10.2007
проверился. все нормально. [Ответ]
svga 10:09 11.10.2007
тоже проверился, аномалий в развитии не замечено =) [Ответ]
DRON-ANARCHY 16:37 11.10.2007
а где результаты?) [Ответ]
Вверх