Вопросы разработаны таким образом, чтобы разработчик мог их выполнить в любое удобное для себя время и в обстановке.
Задания разделены на 3 категории:
1. Общие вопросы (можно задавать их по телефону)
2. Опишите ситуации, когда функциональное программирование лучше объектно-ориентированного.
3. Расскажите о паттернах. В каких случаях не стоит их использовать? Какие минусы при их использовании?
4. Расскажите об используемых Вами фреймворках (программных каркасах). В чем их плюсы? Для каких задач лучше использовать существующий фреймворк, а когда лучше все написать самому?
5. В чем плюсы и минусы шаблонизации? С какими трудностями Вы сталкивались в работе с шаблонами?
6. В чем плюсы использования систем контроля версий? Какие сложности при работе с ним у Вас возникали?
7. При работе в команде, каким бы местам в разработке, Вы бы уделили большее внимание? Какие бы соглашения (Coding Conventions) Вам бы помогли в командной разработке?
8. Какими баг-трекерами Вы пользовались? В чем плюсы и минусы использования?
9. Алгоритмы: структуры и алгоритмы (сортировка пузырьком, скобочная последовательность)
1. Расскажите, в каких случаях лучше использовать Apache, nginx, haproxy и т.п.
2. Расскажите о использовании NoSQL. Какие сложности возникают при использования? Что бы Вы хотели улучшить?
3. Взаимная блокировка (deadlock) - что это такое и как решить. Пример возникновения ситуации:
| Транзакция 1 | Транзакция 2 |
| select name from events where id = 1 for update select name from events where id = 2 for update |
select name from events where id = 2 for update select name from events where id = 1 for update |
Описание процесса одновременного доступа:
Транзакция 1: блокирует строку 1 и продолжает работу
Транзакция 2: блокирует строку 2, пытается заблокировать строку 1 и виснет
Транзакция 1: пытается заблокировать строку 2
Классическое минимально-затратное решение: повторение транзакции по которой вернулось исключение дедлока, в исключении даже подсказка приходит: 1213 Deadlock found when trying to get lock; try restarting transaction
5. что такое:
1. Есть проект, суть которого в продаже автомобилей. Опишите следующие моменты:
2. Планируется проект, рассчитанный на большое количество информации (есть возможность докупить любое количество серверов). Опишите следующие моменты:
3. Проекте не справляется с нагрузкой. Считаем, что архитектура проекта правильная, код может частично модифицироваться, улучшения дописываются к существующему коду. Опишите следующие моменты:
4. Задача разработки первой версии продукта (финансовые средства неограниченны). Опишите следующие моменты:
5. Нужно разработать систему для организации работу между почтовым сервером и front-end приложением. Опишите следующие моменты:
Источник: 1
Комментарии
особенно "Оптимальная ли конфигурация? Нужно ли что-либо в ней изменять?
Приведите примеры улучшений при малом финансировании ( до 500,000 руб.) и при большом (более 50,000,000 руб.)." - а какая конфигурация изначально? мож там два селерона по 1ггц с оперативой по 64м? + логи смотреть , загрузку системы
И кстати, этот тест скорее всего пройдут люди шаблонно-мыслящие. Которые мыслят так же как и "экзаменатор".