web-dev-qa-db-fra.com

Question d'entrevue: "Comment assurez-vous que vos journaux sont suffisants?"

J'étais dans un entretien d'embauche avec une R & D vp aujourd'hui.

Je voudrais poser ici ici, même si c'est, à mon avis, trop large comme une question.

Une de ses questions a fait quelque chose comme:

"Comment assurez-vous que votre code fonctionne?"

Cette question m'a frappé comme un peu étrange, alors j'ai expliqué comment je déboguise (diviser et conquérir, débogueur, impressions, test unitaire).

Il a ensuite continué:

"Et si le problème vient seulement une fois par jour?"

J'ai dit que je voudrais utiliser un journal.

Il a ensuite demandé

"Que mettriez-vous dans le journal?"

"Comment pouvez-vous vous assurer que lorsque vous obtenez le journal, vous seriez capable de trouver le problème rapidement?"

Je me suis assis là tranquillement, ne sachant pas la réponse qu'il cherchait.

La question me semble excessive et je suis sûr d'un contexte spécifique que j'aurais pu proposer quelque chose.

Peut-être que c'est en fait une question viable et j'ai juste un écart de connaissances, ou je ne reçois tout simplement pas quelque chose ...

Ma question à vous :

Existe-t-il une méthodologie standard pour la journalisation?

Quelle réponse aurait-il pu attendre d'entendre?

5
Gulzar

Comment assurez-vous que vos journaux sont suffisants?

Mon professeur d'anglais de la 11e année a la meilleure réponse pour cette question:

Connaissez votre public.

Pensez à qui va lire ceci. Ce qu'ils vont et ne saurai pas. Pensez à ce dont ils ont besoin.

Lorsque vous vous connectez, connectez-vous avec intention. Il devrait y avoir un point sur tout ce que vous capturez. Vous devriez penser aux cas d'utilisation que vos journaux seront placés. Vous devriez avoir des idées claires ici. Sinon, vous abandonnez et tout en connectez tout.

Beaucoup de journalisation est pire que pas assez. Je suis sur des équipes qui ne pouvaient pas contrôler cela et créer des bêtes qui ont rempli nos plus grands disques durs tous les deux jours. Pire que le torrent des données conserve des utilisateurs normaux de pouvoir déterminer ce qui se passait au système.

Lorsque vous vous connectez, pensez à qui vous êtes connecté. Ils sont votre public. Ne les submergez pas. Gardez ce que vous leur montrez clairement, bref et utile.

Inversement, la journalisation insuffisante est facile à réparer. Ajouter une journalisation comme vous le trouvez besoin. Cela ne fonctionne que si vous développez itérativement. C'est-à-dire que vous l'écrivez, utilisez-le, apprenez-y et réécrivez-le. Certaines personnes appellent simplement ces tests.

Pour que cela fonctionne, vous devez vous mettre dans l'esprit de qui utilisera le journal. Cela peut être des utilisateurs finaux ainsi que des programmeurs de maintenance. Votre journal pourrait inspirer les recherches de la base de code. Cela pourrait inspirer les recherches sur Google. Donnez-leur suffisamment de mots-clés qu'ils peuvent trouver des résultats appropriés.

En outre, il peut être utile de connaître l'état du système. Bien sûr, donnez-moi un point de rupture et une erreur reproductible et je peux apprendre que moi-même, mais je déteste toujours à voir "fichier non trouvé" sans mentionner du nom de fichier attendu. Donnez-moi le nom pleinement qualifié et je saurai où mettre le fichier pour résoudre ce problème.

"Comment pouvez-vous vous assurer que lorsque vous obtenez le journal, vous seriez capable de trouver le problème rapidement?"

Assurez-vous de connecter quelque chose qui peut être utilisé dans une recherche. Vous n'avez pas besoin de vider une trace de pile complète pour chaque entrée de journal. Tout ce que vous êtes connecté est consommé par un programmeur de toute façon. Mais ce que vous vous connectez devrait être quelque chose que quelqu'un pourrait rechercher quelque chose.

Lors de la journalisation d'une erreur, une trace de pile peut être appropriée mais la journalisation couvre plus que des erreurs. Les noms de classe et de méthode sont parfois suffisants, généralement juste à côté du timbre de date. Même sans que vous puissiez toujours fournir un moyen de trouver ce qui a créé cette entrée de journal en assurant l'utilisation d'un mot ou d'une phrase unique qui peut être trouvé en recherchant la base de code. J'ai utilisé celui-ci beaucoup.

PRO CONSEIGNE: Ne rompez pas la phrase interrogeable par Word l'enveloppant dans le code source. Les gens ne vont pas savoir où mettre "\n + " dans leur chaîne de recherche.

12
candied_orange