Question

quel genre de connaissances ou des questions vous conduira à déterminer les compétences OOAD d'une personne.

Était-ce utile?

La solution

Vous pourriez montrer une certaine conception orientée objet foireux d'un problème simple, et de discuter de ce qu'il fait, ce qui est bon et mauvais à ce sujet, que ce soit assez souple, ce qui pourrait être amélioré, et comment.

Si vous devez lancer la discussion, demandez ce que la personne pense à certains aspects du code, mais pas avec une question principale.

est important de se rappeler que la discussion est importante, pas que vous connaissiez les réponses à l'avance. Tout développeur décent devrait être en mesure de signaler quelque chose au sujet du code que vous ne pensiez même pas auparavant.

Autres conseils

Discuter d'un problème de conception ouvert a pris fin avec la personne. Voyez comment s / il se met à construire un modèle du système, quel genre de questions sont posées, comment les changements de conception en réponse à de nouvelles informations.

Un bon exemple - mentionné par Steve Yegge dans un de ses messages de blog -. Est de demander à la personne de trouver un modèle d'objet XML

Avoir une bonne connaissance de tous les modèles les plus populaires de conception peut prouver le candidat recherché effectivement des solutions à ses problèmes de conception.

Être capable de les discuter et de savoir quand les appliquer ou non est une bonne indication qu'il les comprend.

lui demander des exemples d'usages dans ses expériences passées peut également aide.

Ne pas donner un vocabulaire quiz. « Définir héritage » ou « nom 3 caractéristiques de la conception OO » sont des questions qui ne vous dira rien sur les compétences de l'individu, que depuis combien de temps il / elle lu dernière un manuel. Je l'ai rencontré plusieurs grands programmeurs qui utilisent ces compétences tous les jours, mais étoufferait si on lui demandait de donner la définition formelle.

lui demander d'écrire les objets métier, classes et interfaces / méthodes pour une chambre ou toute autre entité virtuelle

Si possible, demandez un exemple de code.

Dans le cas contraire, trouver un code de procédure à utiliser comme un exemple (ou un code OO mal conçu), puis leur demander comment ils redessiner, généraliser et améliorer. Assurez-vous que le programme a contexte supplémentaire, de sorte que la refonte peut avoir un sens.

En fin de compte ce que vous êtes testing-- design-- est subjectif. Ainsi, votre évaluation devrait être ouverte pour permettre plusieurs bonnes solutions possibles, et pas seulement un seul. Ensuite, pensez à d'éventuels changements aux exigences qui obligeraient un changement d'interface: Comment peuvent-ils le manipuler

Lire le livre Head First Design Patterns. Tous les exemples dans le livre commence par un problème orienté objet et que finissent dans le modèle de conception. Ils disent aussi pourquoi certains concepts de POO aboutira à des résultats limitted et pourquoi certains sont mieux que d'autres.

Même si un livre de Design Pattern ce livre est plein de problèmes de POO: -)

Commencez simple: ce qui est tout au sujet de la POO

?

Vous pourriez commencer par poser des questions sur les prémisses de base de la POO: abstraction, polymorphisme, héritage et encapsulation. Bonne nourriture pour la pensée pour les obtenir échauffés.

Donnez-leur un problème

Ensuite, les présenter à un problème qui est susceptible d'entraîner des motifs. Il est pas nécessaire de modèles de nom ou de l'utilisation, mais leur approche donnera probablement une s'ils ont une expérience dans le domaine.

Peut-être la validation de la saisie de texte dynamique. Vous souhaitez être en mesure de valider le caractère d'entrée par caractère pour voir si elle est une date valide, l'heure ou la date et l'heure au format ISO8601. Vous obtenez une copie de la chaîne d'entrée à chaque fois qu'une touche est enfoncée et vous pouvez retourner une booléen pour indiquer si le texte reste bien dans au moins l'un des formats. Demandez-leur de parler à travers et d'esquisser une conception en utilisant les principes de conception OO.

Au moment où vous avez fini de disserter sur

  1. Contrôleur (cette chose qui déclenche les événements de changement et évalue les réponses),
  2. L'Observateur (les validateurs répondent aux événements de changement),
  3. Stratégie (chaque validateur représente une autre façon de déterminer si l'entrée est valide),

alors vous aurez une assez bonne idée s'ils comprennent OOD.

Donnez-leur le même problème, mais cette fois demander un design différent

Maintenant, demandez-leur de redessiner le système sans utiliser un modèle d'observation (si elles l'ont) - ils peuvent choisir d'aller pour une chaîne d'approche de responsabilité ou peut-être un modèle de commande. Vous ne se soucient pas vraiment ce qui, vous savez qu'ils ont une connaissance raisonnable des principes en cause.

Même si elles ne vont pas pour une approche basée sur le modèle, juste écouter la façon dont ils tentent de briser le problème en ses fonctionnalités associées donnera les résultats que vous.

J'ai tendance à choisir un scénario monde réel, quelque chose de bien connu à tout le monde † et leur demander d'identifier les entités; les acteurs concernés; quelles interactions il y a entre eux; où les caractéristiques communes pourraient être Abstraite; ce besoin d'être considérés comme des propriétés.

Oui, vous pouvez leur demander de vous asseoir et d'en tirer UML, oui, vous pouvez leur demander des questions sur la recherche des détails de mise en œuvre de la POO pour voir si elles peuvent « frapper le sol en cours d'exécution ».

Mais ce que l'employeur a vraiment besoin au sein de leur équipe est un esprit qui comprend les concepts impliqués et peut les appliquer à tout ce qui se présente. Specifics peuvent être apprises rapidement, lorsque les concepts sont intégrés.


† profonde familiarité et l'absence d'une connexion avec l'aide de code: l'utilisation d'une famille d'une salle de bain le matin; préparer le dîner; une ligne de bus au travail; l'assemblage d'une voiture.

Quelque chose qui semble fonctionner assez bien, et en fait ne prend que quelques secondes: demandez-leur de concevoir un modèle d'objet. Peu importe de quoi. Il peut être tout à fait banal. En fait, il devrait probablement être trivial, de ne pas traîner inutilement le test.

Si la première chose qu'ils écrivent est un objet, ils sont déjà en avance de 99% de leurs pairs dans leur compréhension de OO. Si la première chose qu'ils écrivent est une classe, demandez-leur de bien vouloir sortir et envoyer le prochain candidat à, et contemplez pourquoi il est appelé POO et non COP.

Licencié sous: CC-BY-SA avec attribution
scroll top