Как вы отвечаете на вопрос «объясните текущую архитектуру вашего проекта» в интервью? [закрыто]

10

Приложение, над которым я сейчас работаю, немного велико. Это невозможно объяснить через 15 минут или около того.

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

Каковы основные вещи, которые должны быть выделены при ответе на этот вопрос?

Например, как управляется сеанс, как достигается постоянство, это несколько вещей.

Какие еще вещи, которые нельзя пропустить?

Винот Кумар СМ
источник
2
Извините, но это в настоящее время покрывается NDA. Будут ли мои предыдущие проекты удовлетворительными?
SF.
Если вы не можете объяснить архитектуру высокого уровня за 5 минут, значит, у вас нет архитектуры. У тебя большой клубок грязи.
Эйфорический

Ответы:

16

Лично я думаю, что вы углубитесь (для интервью), если начнете рисовать диаграммы классов, если они не попросят об этом.

В прошлый раз, когда у меня возник этот вопрос, я закончил рисовать разные слои (3-уровневое приложение), объяснил, как были сопоставлены сборки (на мой взгляд, это было что-то «странное» для проекта), в каком направлении слои имели зависимости и направление потока данных.

Вы можете углубиться в конкретные компоненты, если вы чувствуете, что должны. Но я никогда не заходил намного глубже, чем «мы использовали Workflow Foundation для этой части бизнес-логики по этой причине». Это дало мне возможность указать, что мы использовали определенную используемую технологию , не теряя времени на тривиальные вещи, такие как простые объекты POCO.

Более важно показать, что вы понимаете архитектуру и почему это так. Еще лучше указать на улучшения (если это возможно) и объяснить, почему это так. Если, с другой стороны, вы думаете, что дизайн «идеален», вы можете указать на конкретную часть дизайна, которая не кажется логичной для экстендера, и объяснить, почему он подходит для этого проекта.

Барт
источник
Согласовано. Я практиковал свою пятиминутную речь о случайной семье и друзьях. Я полагаю, что ни один из них не более или менее разбирается в информатике, чем средний рекрутер или менеджер по подбору персонала.
Кристофер Биббс
14

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

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

wolfgangsz
источник
3

Все эти ответы превосходны, но я заметил, что компонентная диаграмма очень высокого уровня, список стеков технологий (например, Java, JSF, Primefaces и т. Д.), А также уверенная улыбка и открытость являются лучшими ответ на этот вопрос.

Если вы не улыбаетесь или даже немного волнуетесь, когда объясняете архитектуру вашего текущего проекта, тогда интервьюер может увидеть вас отстраненным и не заинтересованным в вашей тяжелой работе. Я действую взволнованно и говорю об этом так, как будто я думаю, что это самая «крутая» вещь в мире, и это заставляет интервьюера улыбаться и чувствовать себя комфортно, и он начинает задавать более подробные вопросы.

maple_shaft
источник
2

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

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

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

Tyanna
источник
1

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

Каким бы ни был проект, вы сможете нарисовать схему основной операции в несколько (<10) блоков. Затем вы можете расширить хорошо известные вам блоки и добавить больше деталей. Например, вы упоминаете постоянство - это может быть один блок на первой диаграмме, но он может охватывать всю доску, если вам нужно углубиться в детали.

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

Люк Грэм
источник