Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>1) Просят рассказать о предыдущем опыте проектирования систем. КЛ>2) Просят спроектировать текстовый редактор с хайлайтингом, проверкой правописания и расстановкой переносов.
Ну я конечно не совсем архитектор, но как-то круто это за 5 мин, область то специфичная (пару таких известных редакторов я видел изнутри и дорабатывал, там ужас был еще тот). КЛ>3) Рисуют на листочке то, как устроена их система, просят кандидата назвать недостатки дизайна и предложить варианты решений. КЛ>По п.п. 1 и 2 формально время не ограничивают. Но если за 5 минут кандидат не нарисует на бумаге дизайн системы, быстро теряют интерес и перебивают.
А судьи кто? Кто оценивает дизайн? Их квалификация достаточна?
КЛ>Мой вывод: Не понимают, что прежде чем решать задачу, её для начало надо грамотно поставить (слова "грамотно" и "поставить" здесь ключевые).
Если вы про редактор, то в п2 задача сформулирована в достаточном объеме для собеседования, и уточнять на собеседовании будут зануды или чисто чтобы до вас докопаться. ИМХО. Ну и это постановщика задачь дело.
В п3 вероятно конечно должны задавать доп. вопросы, но это другое.
А почему-бы в лоб не спросить на собеседовании, что вы будете делать с такой системой? И послушать что спросят и предложат.
Архитектор должен спросить, как минимум:
1) Примерный объем данных в БД?
2) Доступность этой БД?
3) Скорость загрузки данных из БД?
4) Как часто обновляются данные в БД?
5) Насколько критично для пользователей иметь самую последнюю версию?
6) Создаются растры фиксированных областей? Сколько времени генерится растр в среднем? Юзерам нужны все растры сразу или только часть?
7) Нагрузка на систему 2?
8) Что за БД в системе 1?
9) Может внедриться в систему 1 всеже можно, если сильно попросить ее владельцев?
Что должен предложить (очень сильно зависит от ответов на вопросы, я напишу все варианты что пришли в голову):
1) Генерить растры на лету, возможно кэшировать сгенеренные пока не устареют по времени
2) Сделать себе реплику БД, которую постоянно сравнивать с оригиналом и обновлять как БД, так и растры. Либо генерить на лету как в п1 но с реплики (возможно скорость повысится, если удаленая БД — тонкое место)
3) Пересмотреть GUI того места где используются растры, что даст возможность использовать п1
4) Ускорить генерацию растров (вы писали)
5) Внедриться в систему 1 для отлова изменений (вы писали)
6) Распределить нагрузку
Если будут адекватные ответы, потом уже погонять на предмет его возможностей реализовать это в жизнь.