2009-11-29 1 views
1

Calendrier devrait avoir des fonctions telles que,Comment voulez-vous concevoir une application de calendrier similaire à Outlook (Interview Question)

L'utilisateur doit être en mesure de fixer un rendez-vous en fonction du temps et la date.

Le calendrier avertira l'utilisateur si un rendez-vous en conflit se produit.

Veuillez décrire les Classes, la structure de données et le modèle de conception que vous utiliserez.

+1

Ce n'est pas une excellente question d'interview. –

+0

@Jed, pourquoi? Il est assez simple de le faire en quelques minutes et donne à l'intervieweur un aperçu de la façon dont un programmeur voudra stocker des informations et comment il rédigera les exigences. – Matt

+0

Je suis d'accord avec Jed. Cela semble un peu arbitraire. En note, "calendrier" est épelé avec un "a". –

Répondre

4

Il n'y a pas de bonne réponse. Si je posais cette question, je chercherais l'interviewé pour faire des choses comme:

Dessinez quelques images (ou écrivez du code, ou décrivez verbalement - mais je préférerais des images) quelques classes et comment elles sont en relation. Probablement une classe "rendez-vous" qui contient une heure de début, une durée, peut-être un emplacement, et un utilisateur. D'autres cours? Discutez de la manière dont vous stockez ces rendez-vous pour les récupérer comme vous le souhaitez. Il serait bon de savoir comment obtenir l'ensemble des rendez-vous pour une période donnée pour un utilisateur particulier - quelle structure de données (ou conception de base de données) utiliseriez-vous pour rendre cela possible? Pourriez-vous utiliser, par exemple, une sorte de structure arborescente qui décompose les intervalles de temps de manière récursive et qui pourrait contenir ces rendez-vous?

Ensuite, comme je l'ai dit dans mon commentaire, commencez à parler de scénarios plus compliqués - rendez-vous récurrents, comme mentionné par JB King, sont un bon exemple. Plusieurs utilisateurs, ou plusieurs calendriers par utilisateur, etc.

Je pense que l'astuce pour répondre à cette question est de commencer à parler de ce que vous feriez si vous deviez réellement résoudre ce problème en code: comment commencer? Brisez le problème et changez-le d'une question vague à une question concrète afin que vous puissiez l'attaquer.

2

À première vue, il y aurait une classe de rendez-vous qui comprendrait une date, une heure, un titre et une description. Serait-il nécessaire d'avoir des rendez-vous récurrents? Y aurait-il des rappels? Il y a beaucoup de questions en ce qui concerne la définition des exigences qui mèneraient à quelques points de discussion.

Un autre point ici est que ce serait semblable à Chandler, donc je considérerais regarder leur code pour plus d'idées de ce qui serait nécessaire.

Questions connexes