C # - Задача программиста для интервью - Программирование на интерфейсе и шаблонах - PullRequest
1 голос
/ 11 августа 2009

Какую простую проблему бросить разработчикам младшего и среднего уровня, чтобы выяснить, предоставляется ли им возможность программирования на интерфейс (например, простой шаблон Factory), если они это сделают?

Ответы [ 7 ]

8 голосов
/ 11 августа 2009

Заставьте его регистрировать различные пользовательские сообщения (он может жестко их кодировать) в файлы различных типов (он может выбирать интерфейс или нет).

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

3 голосов
/ 11 августа 2009

Я не понимаю, почему существует растущая потребность в использовании шаблонов проектирования. Они помогают, но они не панацея. «При наличии возможности, если они захотят» может быть истолковано как хорошая или плохая вещь в некоторых обстоятельствах. Кроме того, если они младшие, у них, вероятно, нет достаточного опыта, чтобы взглянуть на проблему и понять, что модель может быть применима там.

Если вы хотите принять вызов для своего младшего и среднего уровня, выбирайте настоящие испытания. Есть много на сайте Вальядолид, и у них есть онлайн-судья. Это было то, что было сделано со мной, когда я был в колледже.

http://acm.uva.es/problemset/

3 голосов
/ 11 августа 2009

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

Как насчет: я хочу отобразить панель некоторых каналов данных. Дата приходит в сообщениях, поступающих в очереди. Некоторые сообщения в формате XML, а некоторые в двоичном формате.

У них много шансов задать вопросы о содержимом. Посмотрите, как они подходят к этому нечеткому требованию.

2 голосов
/ 11 августа 2009

Придерживайтесь того, что вы знаете. С какими типичными проблемами сталкиваются вы / ваша команда разработчиков? Поскольку вы недавно прошли через них, вы можете сравнить его подход с подходом вашей команды.

Если он подойдет к проблеме творчески или по-другому, он, вероятно, подойдет. Если он придумает такое же решение или использует те же шаблоны мышления, что и остальная часть вашей команды, вы можете не захотеть, чтобы он был на борту. Лучшие команды разработчиков, как правило, состоят из программистов, которые имеют разные способы решения проблем.

1 голос
/ 11 августа 2009

У меня был довольно хороший вопрос во время технического теста на днях.

Сгенерируйте последовательность Фибоначчи до N, создайте XML-документ соответствующим образом для хранения отдельных чисел и сохранения XML-документа.

Это было интервью с веб-разработчиком, поэтому были дополнительные возможности по созданию пользовательского интерфейса, позволяющего пользователю указать место сохранения и количество итераций (N).

Если вы выполняете TDD, вы также можете включить модульные тесты подходящих методов для генерации последовательности Fib и т. Д.

1 голос
/ 11 августа 2009

Если кандидат создает с нуля код, который мог бы выиграть от заводского шаблона / интерфейсов и т. Д. Может быть проще иметь работающую модель и запустить ее и попросить его реорганизовать ее так, как он хотел бы. Может быть быстрее до конца.

Затем вы можете объединить некоторые другие "неидеальные" практики с образцом, чтобы посмотреть, подойдут ли они к нему: обработка исключений, удаление и т. Д.

0 голосов
/ 11 августа 2009

Для разработчиков младшего уровня: Я хотел бы рассмотреть пример абстрактного шаблона фабрики, используемого DBProviderFactory в ADO.net Затем создайте аналогичный пример и посмотрите, как кандидат подходит к проблеме.

...