тестовое задание

Single

пилот капсулы
интересует мнение общественности на сколько интересным представляется задание.
не знаю на сколько этично придавать публичности содержимое заданий, надеюсь автор будет не против.

Социальная сеть

Допустим, мы разрабатываем социальную сеть для студентов. У нас есть 2 таблицы в базе данных.
Students (ID, name, grade) - студенты (ID, имя, средний балл)
Likes (like_ID, liked_ID) - лайки одного студента страницы другого. like_ID - это ID того, кто поставил лак. liked_ID - ID того, кого "лайкнули".

Нужно выполнить несколько задач.
a) Получить имена и средний балл всех студентов, которые были "лайкнуты" более чем одним студентом.
б) Получить имена и средний балл студентов А, которые лайкнули студентов В, но при этом студенты В не поставили лайк ни на одной из страниц других студентов.
в) Вернуть имена и средний балл всех студентов, которые не лайкали чужие страницы и не были лайкнуты другими пользователями.

Реализуйте все три пункта с помощью PHP и SQL запросов.

Новости

Пусть на главной странице сайта у нас есть виджет новостей, где выводятся три последних по времени добавления новости. При этом в базе данных миллионы новостей и запрос с сортировкой ORDER BY id DESC для каждого вызова страницы будет работать медленно. Напишите небольшой код этого виджета на PHP, который позволил бы обойти эту ситуацию.

Почтовые сообщения

Представьте, что вам нужно реализовать рассылку почтовых уведомлений для социальной сети.
Это уведомления о новых сообщениях, уведомления о регистрации, восстановления пароля, запросы на добавления в друзья и т.д. Объемы порядка 10 млн. писем в сутки. О каждом письме
необходимо вести статистику: было ли доставлено, если не было, то почему, а так же пробовать отправить повторно, если в первый раз не вышло. Опишите примерно, как бы вы решали эту задачу? Какие технологии и программы использовали бы, а так же, как построили бы архитектуру?
 

hell0w0rd

Продвинутый новичок
тест-задание должно быть интересным, или проверять навыки кандидата?
1 задача мне кажется везде где только можно дается, просто в разных интерпритациях
И на кого расчитано задание?
 

DiMA

php.spb.ru
Команда форума
Это в какую трешовую соц.сеть баллатируешься? Передай им, что искать людей с опытом хайлода могут только мудаки. Я за годы проведения собеседований не встречал ни одного с опытом хайлода (ну, типа, с настоящим). На собеседовании нужно пытаться найти просто умных чуваков, имеющих голову и опыт программирования. Иногда приходят и просто гении, которые за год тебя самого раз в 10 по развитию и опыту обгонят.
 

Gas

может по одной?
чего-то я про новости не понял, хотят чтоб про кеш сказали или индексы? вообще если тормозит запрос без условий с сортировкой по PK (не важно сколько записей), то пора покупать что-то поновее чем PC 286

По sql обычно что-то спрашиваю, не спрашивать нельзя, на having, not exists (left join is null) валится половина "мидлов". Про почту, тоже почему нет, можно порассуждать, на общюю эрудицию или прошлый опыт посмотреть, не строки переворачивать же мидлам-синьёрам :)
 

Ragazzo

TDD interested
Радуют что все пункты "хайлоад" задания заканчиваются только строками "PHP и SQL", а не "Предложите свои варианты/etc" :D
Сразу видно суровый хайлоад на PHP+Mysql :D
 

Absinthe

жожо
Почтовые сообщения

Представьте, что вам нужно реализовать рассылку почтовых уведомлений для социальной сети.
Это уведомления о новых сообщениях, уведомления о регистрации, восстановления пароля, запросы на добавления в друзья и т.д. Объемы порядка 10 млн. писем в сутки. О каждом письме
необходимо вести статистику: было ли доставлено, если не было, то почему, а так же пробовать отправить повторно, если в первый раз не вышло. Опишите примерно, как бы вы решали эту задачу? Какие технологии и программы использовали бы, а так же, как построили бы архитектуру?
Про это ***** доклад делали на хайлоаде. http://www.slideshare.net/Nata_Churda/ss-21083384
 

shark_255

Новичок
про новости - может быть имелось ввиду, чтобы взять max(id) минус 3 записи - это с первой по последнюю айдишку будет - их и вытащить.
 

Dez

Новичок
про новости - может быть имелось ввиду, чтобы взять max(id) минус 3 записи - это с первой по последнюю айдишку будет - их и вытащить.
скорее всего имелось ввиду - проверка чтобы не получить вот такой как раз вариант :)
 
  • Like
Реакции: Gas

itprog

Cruftsman
Absinthe
а сам доклад в видео есть? А то у автора просто талант создавать бесполезные презентации.
 

Absinthe

жожо
itprog данные знания можно получить только у пиратов ;)
Слово "highload" будет меткой в твоем поиске.
 

Dez

Новичок
ну давайте свой вариант, чур без кэширования и индексов, ага)
мы что с вами - на конкурсе каком то что вы от меня чего то требуете?
Я то непонятно кем напридуманное задание выполнять не подписывался.

Ваше решение просто абсолютно неправильное или вы этого еще не поняли?
 

shark_255

Новичок
Как вы вообще себе представляете "без индексов". И с чего вы взяли, что "без кеширования".
смотрите выше - там просто вариант ответа звучал
Ваше решение просто абсолютно неправильное или вы этого еще не поняли?
если аргументируете, то соглашусь )
 

Dez

Новичок
если аргументируете, то соглашусь )
в общем случае id-шки не обязаны следовать одна за одной непрерывно. Новость создали, новость удалили и в auto_increment уже пропуск. И ваша математика в пролете, т.к. не выведет 3 последние новости.
 

MiksIr

miksir@home:~$
Ага, а самое главное, что это не сильно быстрее будет обычной сортировки.
 

hell0w0rd

Продвинутый новичок
Как id новости относится к тому какая она последняя или первая?
 

hell0w0rd

Продвинутый новичок
В задании так написано:
PHP:
ORDER BY id DESC
потому что при упрощении оно так и есть, auto_increment наращивает то для новых новостей.
дибилизм где так есть, у новостей, постов и прочих подобных вещей есть время создания и время публикации и владелец сайта должен иметь возможность создавать черновики новостей и прочие вещи, так что 150 новость может быть новее 100
И вопрос видимо вообще не на оптимизацию запроса, а на понимание того что подобное можно закешировать, а при создании новости - убить кеш
 
Сверху