Comment poser une bonne question ?
Source : https://stackoverflow.com/help/how-to-ask
Article intéressant : https://catb.org/~esr/faqs/smart-questions.html
Nous sommes heureux de vous aider, mais pour augmenter vos chances d'obtenir une réponse, voici quelques directives à suivre :
Assurez-vous que votre question est pertinente et appropriée pour ce site
Stack Overflow n'accepte que certains types de questions sur la programmation et le développement logiciel, et votre question doit être rédigée en anglais. Si votre question n'est pas pertinente ou inappropriée pour ce site, elle risque d'être fermée.
La fermeture n'est pas une fin en soi ; c'est un état temporaire jusqu'à ce que la question soit révisée pour répondre à nos exigences. Cependant, si vous ne parvenez pas à la réviser ou si cela s'avère impossible, la question restera fermée et ne recevra pas de réponse.
Puisque vous lisez cette page, nous espérons que vous posterez dès le début une question pertinente et bien formulée, éliminant ainsi le processus de fermeture et de réouverture !
Recherchez et faites des recherches
Avant de poser une question, nous vous recommandons fortement de passer un temps raisonnable à rechercher le problème et à consulter les questions existantes sur ce site qui pourraient fournir une réponse. (Stack Overflow existe depuis longtemps, donc de nombreuses questions courantes ont déjà été résolues.)
Assurez-vous de garder une trace de ce que vous trouvez lors de vos recherches, même si cela ne vous aide pas ! Si vous ne parvenez pas à trouver la réponse à votre question ailleurs sur ce site, inclure des liens vers des questions connexes (ainsi qu'une explication de pourquoi elles n'ont pas aidé dans votre cas spécifique) aidera à éviter que votre question ne soit marquée comme un doublon.
Rédigez un titre qui résume le problème spécifique
Le titre est la première chose que les répondants potentiels verront. Si votre titre n'est pas accrocheur, ils ne liront pas le reste. De plus, sans un bon titre, les gens peuvent même ne pas trouver votre question. Faites donc en sorte que le titre compte :
Faites comme si vous parliez à un collègue pressé et que vous deviez résumer toute votre question en une seule phrase : quels détails pouvez-vous inclure qui aideront quelqu'un à identifier et résoudre votre problème ? Incluez tout message d'erreur, API clé, ou circonstances particulières qui rendent votre question différente des questions similaires déjà sur le site.
N'incluez pas de balises dans le titre. Le système ajoutera automatiquement la balise la plus importante à votre titre pour des raisons d'optimisation des moteurs de recherche. Vous n'avez pas besoin de (et ne devriez pas) le faire manuellement. Si vous souhaitez inclure le nom du langage/bibliothèque/cadre/outil, faites-le en anglais courant, pas sous forme de balise entre crochets.
Si vous avez du mal à résumer le problème, écrivez le titre en dernier — parfois, rédiger le reste de la question d'abord peut faciliter la description du problème.
Exemples :
Mauvais : **C# Problème mathématique**
Bon : **Pourquoi l'utilisation de float au lieu de int me donne des résultats différents alors que toutes mes entrées sont des entiers ?**
Mauvais : **[php] problème de session**
Bon : **Comment rediriger les utilisateurs vers différentes pages en fonction des données de session en PHP ?**
Mauvais : **problèmes android if else**
Bon : **Pourquoi str == "valeur" renvoie false alors que str est défini sur "valeur" ?**
Introduisez le problème avant de poster du code
Dans le corps de votre question, commencez par développer le résumé que vous avez mis dans le titre. Ne sautez pas directement au code ! Il est souvent utile de fournir des informations contextuelles de base, et décrire votre problème avec des mots est presque aussi important que de le décrire avec du code.
Expliquez comment vous avez rencontré le problème que vous essayez de résoudre et les difficultés qui vous ont empêché de le résoudre vous-même. Le premier paragraphe de votre question est la deuxième chose que la plupart des lecteurs verront, alors faites en sorte qu'il soit engageant et informatif. Vous voulez faire une bonne première impression.
Aidez les autres à reproduire le problème
Toutes les questions ne nécessitent pas de code, mais si votre problème concerne un code que vous avez écrit, vous devez en inclure un peu. Mais ne copiez pas tout votre programme ! Non seulement cela pourrait poser problème si vous publiez le code de votre employeur, mais cela inclut probablement beaucoup de détails non pertinents que les lecteurs devront ignorer pour essayer de reproduire le problème. Voici quelques directives :
- Incluez juste assez de code pour permettre aux autres de reproduire le problème. Pour vous aider, lisez [Comment créer un exemple minimal, reproductible](https://stackoverflow.com/help/minimal-reproducible-example).
- S'il est possible de créer un exemple en direct du problème que vous pouvez lier (par exemple, sur http://sqlfiddle.com/ ou http://jsbin.com/), faites-le — mais copiez également le code dans la question elle-même. Tout le monde ne peut pas accéder à des sites externes, et les liens peuvent casser avec le temps.
- N'UTILISEZ PAS d'images pour le code, les données, les messages d'erreur, etc. — copiez ou tapez le texte dans la question. Réservez l'utilisation d'images pour des diagrammes ou la démonstration de bugs d'affichage, des choses qu'il est impossible de décrire précisément par du texte. Pour plus d'informations, veuillez consulter l'entrée FAQ Meta [Pourquoi ne pas télécharger des images de code ou d'erreurs lors de la pose d'une question ?](https://meta.stackoverflow.com/questions/285551/why-not-upload-images-of-code-errors-when-asking-a-question)
Incluez toutes les balises pertinentes
Essayez d'inclure une balise pour le langage, la bibliothèque, et l'API spécifique(s) dont traite votre question. Si vous commencez à taper dans le champ des balises, le système vous suggérera des balises correspondant à ce que vous avez tapé — assurez-vous de lire les descriptions données pour vous assurer qu'elles sont pertinentes pour la question que vous posez !
Si votre question porte sur un problème dans une version spécifique d'un langage, bibliothèque, et/ou API, vous pouvez ajouter une balise spécifique à cette version, comme "[python-3.8]". Si vous utilisez une balise spécifique à une version, assurez-vous également d'inclure la balise générale, non spécifique à une version (par exemple, "[python]").
Relisez avant de poster !
Maintenant que vous avez fini d'écrire votre question, prenez une grande respiration et relisez-la du début à la fin. Faites comme si vous la voyiez pour la première fois : est-ce qu'elle a du sens ? Quelqu'un sans tout votre contexte et vos connaissances de base peut-il la comprendre ? Essayez de reproduire le problème vous-même, dans un environnement neuf, et assurez-vous de pouvoir le faire en utilisant uniquement les informations incluses dans votre question. Ajoutez les détails manquants et relisez-la encore une fois. Relisez également votre titre, et assurez-vous qu'il décrit succinctement et avec précision le problème.
L'orthographe, la grammaire et la ponctuation sont également importantes ! Si vous n'êtes pas à l'aise en anglais, demandez à quelqu'un de relire votre question.
Répondez aux retours après avoir posté
Après avoir posté, ne partez pas trop vite — laissez la question ouverte dans votre navigateur pendant un moment pour voir si quelqu'un commente. Si vous avez manqué une information évidente, soyez prêt à répondre en éditant votre question pour l'inclure. Si quelqu'un poste une réponse, soyez prêt à l'essayer et à donner un retour !
Parfois, vous pouvez vous sentir frustré par les commentaires. Peut-être qu'ils font des suggestions que vous avez déjà essayées. Peut-être qu'ils ne comprennent pas du tout votre problème. Essayez de ne pas vous frustrer — les gens qui lisent et commentent votre question veulent généralement vous aider ! Prenez ces types de commentaires comme des suggestions pour améliorer votre question. N'oubliez pas que vous pouvez modifier votre question à tout moment ! (Si quelqu'un laisse un commentaire grossier ou hors sujet, signalez-le pour attirer l'attention d'un modérateur afin qu'il soit supprimé.)
Cherchez de l'aide pour demander de l'aide
Malgré tous vos efforts, vous pouvez constater que vos questions sont mal reçues. Ne désespérez pas ! Apprendre à poser une bonne question est un processus d'apprentissage, et ce n'est pas quelque chose que vous maîtriserez du jour au lendemain. Voici quelques ressources supplémentaires qui pourraient vous être utiles :
- Rédiger la question parfaite
- Comment poser et répondre aux questions de devoirs ?
- Comment déboguer de petits programmes
- Discussions Meta sur la façon de poser des questions
No Comments