Question:
Malgré la conception du cadre de serveur, ne peut pas craquer la question de l'entrevue: Comment concevoir XYZ?
mr.solo
2019-06-28 23:14:17 UTC
view on stackexchange narkive permalink

Je suis un professionnel du logiciel ayant une énorme expérience du développement de logiciels (c'est-à-dire en C ++) et j'ai travaillé dans de nombreuses sociétés de logiciels multinationales de premier plan et dans divers domaines.

Il y a quelques années, je suis sorti de mon travail. Puis par passion, j'ai développé un framework de serveur en C ++ (soit plus de 65 milliers de lignes de code). Je l'ai conçu, codé, testé pour des performances élevées et publié. J'ai tout fait par moi-même. C'est tout le travail d'une seule main fait par pure passion. Maintenant, je l'ai rendu entièrement open source où j'ai également créé sa documentation de conception détaillée (disponible sur GitHub). J'ai également lancé un site Web et une application Android basés sur ce cadre.

Malgré tout cela, chaque fois que je suis confronté à des entretiens (actuellement je recherche un emploi), les intervieweurs ne tiennent absolument pas compte du travail que j'ai effectué. Ils ne semblent même pas se soucier de regarder mon code source ou ma documentation, et me poser simplement des questions comme:

Pouvez-vous nous dire comment pouvez-vous concevoir XYZ en C ++?

(Ce XYZ peut être comme n'importe quoi, par exemple, "format XML", "système de stationnement de véhicule", "logiciel de traitement de fichiers", "application de stockage de cache", etc.)

Je trouve ceci est vraiment ennuyeux et douloureux. Comment quelqu'un peut-il concevoir quelque chose en quelques minutes juste en face d'eux & là-bas? Je veux dire que je peux sûrement tout concevoir, mais j'ai besoin de temps pour concevoir (et je pense que beaucoup le font). Mais ici, je ne peux pas acheter de temps ou d'espace pour moi-même. Ils veulent que je me dessine là-bas juste devant eux pendant qu'ils me regardent. Puis, impuissant, je continue à leur dire tout ce qui me vient à l'esprit à ce moment-là. Parfois, j'ai aussi une dépression nerveuse. Et par conséquent être rejeté lors de l'entretien.

Je dois noter: il est également arrivé que je propose une conception parfaite pour répondre à de telles questions, mais après la fin de l’entretien. Par exemple, lors d’une entrevue, on m'a demandé «Comment vous concevoir un système de stationnement lorsqu'il y a plusieurs emplacements de stationnement et pour différents types de véhicules? " Puis après être sorti de l'interview, j'ai réalisé que j'aurais dû dire "Parking, Véhicule, Machines à sous sont des classes. Le parking aura des objets membres de la classe Slot. Voiture, Camion, Vélo, etc. seront dérivés de la classe Véhicule. Et puis nous pourrons avoir méthodes appropriées. Certains d'entre eux sont virtuels. La classe de véhicule pourrait être abstraite avec des méthodes virtuelles pures et ainsi de suite ... "C'était aussi simple que ça. Mais juste devant eux, vraiment à ce moment-là même, sous la pression du «fais-le maintenant et laisse-moi voir», je n'aurais pas pu penser à tout cela clairement et ce que je continuais de leur dire était totalement bizarre.

Ainsi, malgré la conception de projets compliqués (avec leur codage et leurs tests) comme un framework de serveur haute performance et une application de messagerie, tous seuls, je suis toujours rejeté dans plusieurs interviews C ++ de cette manière. Dans l'une des interviews, j'ai essayé de leur dire de parcourir mon référentiel GitHub et de regarder ma conception et mon codage. Mais inutile. C'est une expérience vraiment extrêmement frustrante que je traverse ces jours-ci.

S'il vous plaît, conseillez-moi et donnez-moi des suggestions sur la façon de procéder la prochaine fois que j'assisterai à un entretien. Le temps passe vite et je ne peux pas me permettre de perdre des opportunités d'entrevue comme ça. Veuillez aider.

Voter pour fermer, car cela ressemble plus à une diatribe qu'à une question réelle.
@DarkCygnus, a jusqu'à présent subi plus de 3 entretiens de ce type.L'un était SkyPe, les autres étaient face à face.
@mr.solo Je vois, s'attendaient-ils réellement à ce que vous codiez tout ce dont vous avez besoin pour faire XYZ?Ou où ils demandent le plan et la logique que vous utiliseriez pour le développer.
@espindolaa Je suis désolé si cela ressemble à une diatribe, mais j'ai vraiment besoin d'aide pour faire face aux questions de type "concevoir maintenant", s'il vous plaît.
@DarkCygnus, ils s'attendaient à ce que je vous explique la conception globale et que j'écris des classes C ++ pour cela.Peut-être veulent-ils voir l'approche que je prends.Mais il faut encore du temps pour finaliser une conception particulière.Merci d'avoir demandé plus de détails.
@DarkCygnus c'est correct.Dans Quick & First Go, on ne peut pas adopter la meilleure approche de la conception.La conception est un processus de réflexion.Ça prend du temps.Et je me sens tendu et je ne peux pas penser paisiblement quand les gens me regardent.
@AlexanderM.Je comprends.Mais le temps et l'espace nécessaires sont ma préoccupation.Je souhaite également qu'ils aient également regardé et considéré autant de travail que j'ai déjà fait (qui est disponible en open source)
@mr.solo c'est l'une des choses qu'ils testent également: comment la pression vous affecte-t-elle.Je suppose que votre meilleur pari serait de pratiquer de telles choses avec quelqu'un.L'autre personne proposerait de telles tâches et avec des réponses raisonnablement aléatoires à vos questions, votre tâche consistera à concevoir le design.Essayez de garder moins de 30 minutes à chaque exercice.Deux fois par semaine.Et ne soyez pas perfectionniste.Faites-le (TM).
Combien de temps vous a-t-il fallu pour concevoir votre framework de serveur?
Il existe de nombreuses ressources en ligne expliquant comment répondre aux questions d'entrevue de conception de système, par ex.[Top 10 des questions d'entretien de conception de système pour les ingénieurs en logiciel] (https://hackernoon.com/top-10-system-design-interview-questions-for-software-engineers-8561290f0444), [Entretien de conception de système pour les entreprises informatiques] (https://github.com/checkcheckzz/system-design-interview), [Comment réussir une entrevue de conception de système] (https://blog.pramp.com/how-to-succeed-in-a-system-design-interview-27b35de0df26), [InterviewBit] (https://www.interviewbit.com/courses/system-design/topics/interview-questions/).
Ne pas rejeter votre framework de serveur personnel, mais je ne connais pas les contraintes auxquelles vous avez travaillé pour le créer.J'aurais besoin de savoir si vous pouvez appliquer vos connaissances à un nouveau projet et à un échéancier adapté aux livrables de mon entreprise.Pour moi, j'évalue sur la collecte des exigences et les limites de votre conception que vous avez proposées dans la plage d'entretien.
@sf02 J'ai passé de nombreux jours à analyser et à concevoir.J'ai consacré suffisamment d'efforts à l'analyse de diverses technologies avant de commencer la conception.Aujourd'hui, il faut savoir quelles sont les technologies sous-jacentes disponibles avant de commencer la conception d'un nouveau projet.Il a fallu 2 ans pour achever le développement du cadre.
C'est plus important la façon dont vous vous vendez que vos connaissances, triste mais vrai dans l'industrie, prenez par exemple Terry A Davis, il a fait ce que très peu de gens peuvent faire, c'est un travail incroyable, mais il n'est que moqueur
Six réponses:
#1
+9
DarkCygnus
2019-06-28 23:38:48 UTC
view on stackexchange narkive permalink

Malgré tout cela, chaque fois que je suis confronté à des entretiens (actuellement je recherche un emploi), les intervieweurs semblent complètement ignorer le travail que j'ai effectué. Ils ne semblent même pas se soucier de regarder mon code source ou ma documentation

Ne soyez pas surpris par cela. Les enquêteurs ne sont pas toujours des personnes ayant une expérience en logiciel, et s’ils le sont, ils n’auront peut-être pas le temps de consulter le code source de toutes les personnes postulant pour le poste.

De plus, il se peut que les frameworks de serveurs ne le soient pas. liés aux choses spécifiques qu'ils font pour cette entreprise, donc mentionner que dans votre CV est pertinent (car c'est C ++) mais peut-être pas aussi pertinent pour eux dans leur domaine.

Veuillez me conseiller et me donner des suggestions sur la façon de procéder la prochaine fois que je participerai à un entretien.

Tout d'abord, je vous suggère d'essayer de rester calme et cool . Plus vous serez calme, mieux vous serez capable de réfléchir et de jouer pendant l'entretien. Vous dites que vous avez beaucoup d’expérience en C ++, alors gardez cela à l’esprit la prochaine fois que vous serez nerveux.

Deuxièmement, faites attention aux intervieweurs qui cherchent à obtenir du travail gratuitement de votre part. Selon votre message, il semble que les interviews que vous aviez récemment vous demandaient comment concevoir XYZ en utilisant C ++, et que vous vous attendiez ensuite à le faire et à le terminer devant eux.

Selon ce qu'est XYZ et ce que cela implique, il est totalement déraisonnable de commencer et de terminer pendant une entrevue. Très probablement (je suppose), ils vous demandaient de décrire et décrire comment vous le concevriez en C ++ , et peut-être écrire du code avec des stubs TODO pour les parties complexes ... mais tout coder pendant une interview est une tâche assez longue .

Ainsi, la prochaine fois que vous participerez à une interview et qu'ils vous demanderont comment feriez-vous XYZ en C ++, commencez par indiquer les approches et conceptions que vous utiliseriez. Quels modèles seraient utiles, à quelles mises en garde peut-on s'attendre et peut-être quels outils ou plugins seraient utiles. S'ils demandent du code, fournissez-en les grandes lignes et laissez les parties trop longues pour une entrevue commentées comme TODO.

Lorsque vous faites cela, gardez à l'esprit la première chose (restez calme, vous avez ceci), et lorsque vous écrivez l'exemple de code, concentrez-vous sur les grandes lignes du projet; n'essayez pas de coder chaque et chaque aspect. Essayez de vous concentrer sur une vue d'ensemble. Définissez les méthodes que vous utiliserez, codez celles qui sont réalisables dans une interview et laissez le reste vide (mais déclaré).

Une autre chose qui pourrait grandement vous aider est de simuler un processus d'entretien , comme vous dites que vous connaissez votre truc mais que vous devenez nerveux lorsque vous êtes sous pression et que vous êtes regardé (si vous pouvez demander à un ami de vous aider à jouer le rôle de l'intervieweur, ce serait mieux). Pensez à une idée de projet aléatoire, et essayez de la décrire de manière aussi concise que possible, en écrivant quelques extraits et en laissant les parties complexes vides ... Peut-être que vous (comme moi) préférez y réfléchir avant de commencer à coder; cette simulation vous aidera à mieux «improviser» dans les interviews et à être capable d'écrire des extraits sans avoir à réfléchir et à considérer tous les scénarios possibles.

Étant donné que le plus gros problème semble être une pression exercée par les enquêteurs dans la "section simulation", je suggérerais de le pratiquer avec quelqu'un d'autre, où l'autre personne agira en tant qu'intervieweur et trouverait des tâches folles (pasceux qui vous intéressent), regardez par-dessus l'épaule, posez des questions raisonnablement stupides et fournissez des réponses aléatoires à vos questions.
@AlexanderM lol, oui cela le rendrait plus réaliste (en l'incluant dans la réponse, merci) ... peut-être que mettre une minuterie augmenterait également le stress de la simulation (et fournirait un point de référence pour que OP s'améliore)
Les développeurs se voient rarement poser des questions techniques par des personnes non techniques.Jamais dans des entreprises sérieuses."Deuxièmement, sachez que les intervieweurs cherchent à obtenir du travail gratuitement de votre part."Seule la plus petite startup sans espoir essaierait cela, et ils le donneraient comme un problème à emporter.
#2
+8
jesse
2019-06-28 23:43:56 UTC
view on stackexchange narkive permalink

Je doute qu'ils s'attendent à ce que vous conceviez un système entier à partir de rien sous leurs yeux.

Ils veulent savoir quel processus vous utiliseriez pour faire le travail.

Répondez de la même manière que:

Je commencerais d'abord par rassembler toutes les exigences, puis je commencerais à rassembler les ressources pour remplir les exigences, une fois que j'aurais tout ce dont j'avais besoin pour me rendre au travail procéder à l'établissement du cadre de base de X et commencer à construire Y puis Z puis terminer en fermant tous les "what nots". Ensuite, une fois les tests terminés et réussis, je documentais le tout et publierais le projet ...

ou quelque chose de similaire à ces lignes. S'ils vous demandent de faire un sandwich, vous ne perdez pas de temps à parler de cultiver la terre pour faire pousser de la farine et faire du pain, ou d'élever des porcs avant de les transformer en jambon. Ils veulent simplement vous entendre parler de tartiner de la mayonnaise sur du pain, de gifler du fromage et du jambon dessus et de le finir avec une serviette.

«Je commencerais d'abord par rassembler toutes les exigences, puis je commencerais à rassembler les ressources pour répondre aux exigences.» C'est trop basique pour être mentionné.Le candidat doit commencer par clarifier les exigences (cas d'utilisation) du système.
#3
+6
aaaaa says reinstate Monica
2019-06-29 00:55:29 UTC
view on stackexchange narkive permalink

Je pense que vous avez mal compris deux points concernant la conception et le processus de conception.

Premièrement, la conception et les spécifications, tout comme les logiciels, ne sont jamais finies, seulement publiées. Autrement dit, vous pouvez toujours commencer petit, couvrir la plupart des points importants étant donné les connaissances connues, commenter les inconnues connues et émettre des hypothèses ailleurs. N'oubliez pas qu'il s'agit d'un test de compétences en communication autant que de compétences techniques.

Deuxièmement, vous pouvez mélanger la conception et la mise en œuvre. Je pense qu'à cause de votre citation:

Par exemple, dans une interview, on m'a demandé "Comment concevriez-vous un système de stationnement alors qu'il y avait plusieurs emplacements de stationnement et pour différents types de véhicules?" Puis après être sorti de l'interview, j'ai réalisé que j'aurais dû dire "Parking, Véhicule, Machines à sous sont des classes. Le parking aura des objets membres de la classe Slot . Voiture, Camion, Vélo, etc. sera dérivé de la classe Vehicle . Et alors nous pouvons avoir des méthodes appropriées. Certaines d'entre elles sont virtuelles . La classe Vehicle pourrait être abstraite avec des méthodes virtuelles pures et ainsi de suite ... "

Vous êtes absorbé par les détails du processus d'implémentation avant de concevoir la chose. Par exemple, pourquoi avez-vous besoin de classes distinctes pour le type de voiture? Les langages et les pratiques de programmation modernes sont excellents dans les améliorations incrémentielles du logiciel. Commencez donc aussi simplement que possible, avec un produit livrable minimal. Comme pour les classes spot et véhicule . Lorsque vous démarrez votre programme, vous initialisez un tas de points et attendez que les voitures s'arrêtent. Même si vous programmez en C ++ (je ne le suis pas), je pense que vous n'êtes pas obligé de faire une pleine POO depuis le début.

#4
+6
Michael Jaros
2019-06-29 03:02:50 UTC
view on stackexchange narkive permalink

Pourquoi ils le font

Les internautes veulent voir votre façon de résoudre les problèmes. Il n'est pas si facile pour eux d'évaluer votre travail précédent même s'il est accessible, car ils ne savent rien des paramètres, et ils ne peuvent généralement pas passer assez de temps pour vraiment le comprendre.

De plus, être capable de hiérarchiser les problèmes et de les aborder à un niveau abstrait sont des compétences importantes pour certains emplois, les intervieweurs peuvent donc être intéressés par cela aussi.

Une raison de plus pour vous poser les mêmes questions que tout le monde est que cela rend l'évaluation des entretiens beaucoup plus facile.

Vous n'êtes pas seul

Dans l'ensemble, votre description semble que vous n'êtes pas mal à l'aise pour résoudre des problèmes de conception et d'architecture , mais que vous ne le faites peut-être pas aussi bien dans une situation d'évaluation.

Ne vous inquiétez pas trop, c'est très courant dans notre secteur.

"Échouer" quelques entretiens C ++ ne signifie pas que vous ne l'avez pas, mais que dans ces cas, quelqu'un d'autre a peut-être fait une meilleure impression.

Alors, comment vous préparez-vous pour r ceci?

Je suggère: compilez un certain nombre de questions de conception typiques sur Internet, trouvez un partenaire d'entraînement et demandez-lui de vous interviewer.

Lorsque vous répondez ces questions, n'entrez pas trop dans les détails d'abord. Essayez de brosser un tableau descendant de votre solution de manière incrémentielle, en soulignant les exigences ou les hypothèses peu claires que vous faites pendant que vous y êtes:

Interviewer: Comment concevriez-vous un parking système avec plusieurs emplacements de stationnement et pour différents types de véhicules?

Vous: OK, donc notre système devrait contrôler le ticket et les distributeurs automatiques?

Interviewer: Non, imaginons que le parking est entièrement automatisé, vous contrôlez tous les lots et tous les véhicules pendant qu'ils sont sur les lieux.

Vous: OK .. euh .. alors, quand un véhicule arrive, le système peut autoriser ou refuser l'entrée?

Interviewer: Oui.

Vous: ... selon qu'il y a de l'espace disponible pour ce type de véhicule?

Interviewer: Oui.

Vous: OK donc si notre système accepte un véhicule, il doit le garer dans un espace approprié. Ensuite, lorsque le client souhaite le récupérer, le système doit le récupérer et le transférer vers la sortie.

Interviewer: Exactement. Ne nous inquiétons pas de la manière exacte dont les véhicules sont transférés pour le moment.

Vous: OK, eh bien, nous avons différents types de véhicules et différents types d'espaces dans notre système. Je suppose que chaque type de véhicule a exactement un type d'espace qu'il peut utiliser.

Interviewer: Hmm ... OK .. Je n'y ai pas pensé, mais pas de problème, vous pouvez le supposer.

Vous: Je définirais probablement une classe abstraite "Véhicule" pour encapsuler les fonctionnalités que tous les véhicules partagent. Je modéliserais ensuite chaque type de véhicule comme une sous-classe de «véhicule». Alors je voudrais ...

Interviewer: Vous utilisez donc l'héritage pour modéliser les types de véhicules. Que diriez-vous à votre collègue s'il implémentait cela d'une manière différente: il utilise uniquement une classe "Véhicule" avec un membre "type" pour distinguer les différents types.

Vous: ...

Comme vous le voyez, cela prend beaucoup de temps avant même d'arriver au niveau de la classe dans cet exemple. L'interview que j'ai écrite ici montre à l'intervieweur que

  1. vous êtes prêt à demander si vous avez besoin d'aide ou de clarification
  2. vous essayez de bien comprendre le problème avant de vous lancer, donc éviter les erreurs coûteuses au niveau des exigences et
  3. que vous pouvez basculer entre différents niveaux d'abstraction et conserver aperçu dans le processus (celui-ci n'est vu ici que peu).

Votre partenaire d'entraînement devrait être, si possible, quelqu'un qui comprend très bien de quoi vous parlez. Demandez-leur de prêter attention non seulement à votre solution, mais aussi à l'impression que vous leur faites en répondant à leur question. Vous embaucheraient-ils? Pourquoi le feraient-ils ou pourquoi ne le feraient-ils pas?

#5
+4
kevin cline
2019-06-29 14:54:50 UTC
view on stackexchange narkive permalink

J'ai fait beaucoup d'entrevues, alors voici un point de vue de l'autre côté de la table.

"Malgré tout cela, chaque fois que je fais face à des entretiens (actuellement je recherche un emploi), des intervieweurs semble ignorer complètement le travail que j'ai fait. Ils ne semblent même pas se soucier de regarder mon code source ou ma documentation "

Nous n'avons pas le temps de lire vos 65 000 lignes de code C ++. Même si nous l'avons fait, nous ne pourrions pas être sûrs qu'il s'agissait de votre travail original. Nous ne pouvons pas non plus prendre une décision d'embauche en nous basant uniquement sur votre CV. J'ai interviewé des gens avec 15 ans d'expérience qui ne pouvaient pas résoudre de simples problèmes de codage, du moins pas pendant que quelqu'un regardait. Idem pour les diplômés avec un MSCS et un 3.9 GPA. Certains peuvent coder, beaucoup ne le peuvent pas.

Si vous voulez être embauché à un poste de cadre dans une entreprise de premier plan, vous devrez démontrer à la fois une capacité à coder et une capacité à définir une conception de système de base dans une série d'entretiens. Les personnes qui peuvent le faire sont embauchées.

La suggestion de Michael Jaros de faire des entretiens d'entraînement est bonne. Il serait préférable que vous puissiez vous entraîner avec un ami qui donne des interviews techniques.

Si vous avez également des difficultés avec le codage sur tableau blanc, pratiquez-le également. Prenez quelques-uns des problèmes de "Cracking the Coding Interview" ou autre et entraînez-vous à les résoudre avant de lire les solutions.

Bonne chance.

capacité à définir une conception de système de base pouvez-vous s'il vous plaît partager un lien vers une ressource qui m'aidera à pratiquer / apprendre cela?Merci beaucoup pour vos contributions.
Désolé je ne peux pas.Mais il semble que vous ayez des problèmes que vous avez recueillis lors d'entretiens précédents.Entraînez-vous à y répondre avec quelqu'un qui donne des entretiens techniques.
Oui, j'ai été en effet choqué de digérer le fait que la façon dont les gens ignorent tout de suite le travail que vous avez fait toutes les années ... et vous juge en fonction de ce que vous parlez en quelques minutes! ... Bref, je viens de m'en remettre.Je vous remercie tous pour vos aimables paroles ici
C'est plus que «quelques minutes».Les personnes qui ont réellement contribué à des projets logiciels peuvent en parler de manière très détaillée.Nous avons appris que l'éducation et l'expérience ne garantissent rien.Embaucheriez-vous un musicien parce qu'il a un diplôme, ou voudriez-vous les entendre jouer?
Non, ils ne m'ont jamais posé de questions sur mon projet.J'ai beaucoup à raconter autrement.Comment l'ai-je conçu et réalisé?Comment sa conception initiale a évolué au fil du temps.Combien d'efforts j'ai pris pour son évolutivité et son optimisation des performances, etc.Le musicien est un vrai bon exemple car on ne peut pas demander au musicien de composer quelque chose juste devant eux et de le juger en fonction de cela.Il faut voir toutes les compositions et le travail qu'il a fait dans le passé.
#6
+2
SemiGeek
2019-06-29 00:28:42 UTC
view on stackexchange narkive permalink

Aussi triste que cela puisse paraître, les entretiens ne remplissent pas vos fonctions professionnelles. C’est des ventes. Vous parlez des choses que vous faites, ne les faites pas (ou du moins pas dans la profondeur qui permet vraiment d'accomplir un produit fini). Malheureusement, jusqu'à ce que vous deveniez à la direction, les ventes sont pratiquement totalement IMPRESSIONNANTES en matière de développement logiciel, de sorte que les compétences qui vous servent bien lors des entretiens ont très peu d'application pour faire le travail pour lequel vous interviewez.

Mettez-vous à la place de l'intervieweur . Il a des dizaines de curriculum vitae / CV et six candidats à interviewer et il a tout son travail normal à reprendre. Il n’a pas besoin de savoir à quel point vous êtes passionné par un projet dont il n’a pas besoin. Il a besoin de voir comment vous pouvez résoudre un problème et comment cela fonctionnera avec l'équipe. Il a besoin de savoir que vous êtes passionné par le type de travail pour lequel il embauche, pas par le projet spécifique que vous avez réalisé.

C'est compréhensible sous la pression d'une entrevue, mais je me demande si vous avez mal interprété l'intention. Vos commentaires concernent des cours en cours d'écriture, par exemple. Il en demandera probablement plus sur les classes de remplacement ou à quoi elles pourraient servir.

Interviewer: "Concevoir un logiciel de contrôle d'ascenseur"

Solo: "Voyons quelques détails. Quelle est la hauteur du bâtiment? Combien d'ascenseurs y a-t-il? Est-ce que tous les ascenseurs ont la hauteur du bâtiment ou est-ce que différentes baies desservent différents niveaux? »

Interviewer:« 19 étages, deux ascenseurs desservant tout le bâtiment »

Solo:« Super. Je suis heureux d’entrer dans les détails, par exemple, avons-nous besoin d’un accès d’urgence ou d’un accès par clé pour les étages de penthouse. Mais avec seulement une heure, gardons les hypothèses sur ce que vous avez déclaré. "

À partir de là, vous parlez à travers la communication est entièrement basée sur des boutons, vous aurez donc besoin d'une classe de boutons de base. Cette classe comprendra une méthode OnPush () qui allume le bouton et envoie un message. Et il aura un OnComplete () qui éteint la lumière lorsqu'il est appelé. De là, nous avons deux types d'interface de base: appeler un ascenseur et faire fonctionner l'ascenseur. «Appeler» envoie un message à une classe de planificateur qui gère l'ascenseur à appeler. Les boutons «Operate» se trouvent à l'intérieur de l'ascenseur et servent à indiquer à l'ascenseur où aller. Celles-ci pourraient être chacune une sous-classe de "Button".

Encore une fois, rappelez-vous que vous montrez le processus avec des bits de pseudo-code, sans passer par un système fonctionnel.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...