のにっき

teratailで質問する前にやっておくべき事

teratailを質問者として利用してばかりじゃ申し訳ないと思い、
若輩者なりに回答者としていくつか回答してみました。
その中で、質問者として最低限行ってほしいと思ったことをまとめます。
※必ずしろ!というわけではなく、してもらえると回答シヤスイナーです

teratailとは?

プログラム実装で詰まったら質問できるサイトです。
私のように教わる人のいない状況で勉強している方には非常に便利なサイトになります。
teratail.com

ソースコードを貼るときはタグで囲む

これは必ず行って下さい。利用する方でできていない方が結構います。
teratailは、ソースコードをタグで囲むことで見やすくする機能があります。

f:id:apuridasuo:20191019112223p:plain
図:タグ説明
記入方法を以下にまとめるので知らない方は必ず確認して下さい!
f:id:apuridasuo:20191019112350p:plain
図:ソースコード記入方法
この書き方でソースコードを記入すれば、背景色も変わり、
コメントや変数などの色付けもされてとても見やすい表示になります。
f:id:apuridasuo:20191019112755p:plain
図:プレビュー結果

エラーの内容でググる

バグが発生して何が間違っているのかわからない場合、
ログにエラーが出ていないか確認してみて下さい。
そして、エラーの文字をコピーしてググってみましょう。
意外とネットには解決方法が載っているので質問する前に解決できます。

自分の書いたソースを理解してから質問する

ソースコードをコピペしてバグって訳がわからない!ということがあった場合、
そのまま質問しても、回答者の回答が何を言っているのか分からないと思います。
コピペしたコードを部分的にググってみて、
自分の書いたソースの内容をある程度勉強して下さい。
そうすれば、バグの原因がわからないとしても、
回答者が何をいっているのか理解することができると思います。

質問したいこと、求めている回答を明確にした質問をする

何が分からないか分からないという状況で質問しないよう気をつけましょう
・何を目的としたコードを組んでいるか
・現在の挙動はどうなっているか
・何を回答してほしいか
以上の項目は自分で考えて、明確にしてから質問しましょう。

自分でソースの状況を把握しておく

ソースの組み込みを行う上で、
プログラムの実行中に一時停止を行って変数の内容などを確認たりします。
そういったデバッグ方法をいくつかご紹介します。
※実装環境でやり方は異なるので、「VisualStudio ブレーク 方法」
 のように検索していただけると方法が出てくると思います。

  • ブレーク(ポイント)

ブレークは、設定した場所で処理を一時停止させる機能です。
ブレークポイントを設定した状態でプログラムを実行すると
設定した場所に処理が到達した時点でプログラムが一時停止します。
ブレークポイントを設定することを「ブレークを貼る」ということがあります。
【使用例】
・if文等の分岐でブレークを貼ってどの分岐が通っているか調べる
・問題のある処理でブレークを貼って、その時の変数の値などを確認する
・反応しない関数を呼ぶ処理にブレークを貼ってその処理が通っているか調べる

  • ログ(メッセージ)

ログは、処理の中で指定した文字をコンソール等の、
実際には影響のない部分に出力させる機能です。
【使用例】
・if文等の分岐で通ってはいけない場所にログを実装して「ログ出力=バグ」とする
・変数設定後に変数の内容をログで出力する事で見えない変数の内容を把握する
これらのデバッグ方法を使って質問の前に
不具合の原因を探してみてある程度の目星をつけておくと
回答者とのやり取りが非常にスムーズになります。

質問しない!

上記のデバッグ方法とネットの力を駆使したら
メジャーな問題はたいてい解決できます。
まずは自力で解決する!これが良い質問をする最大のコツだと思います。
自力で解決する努力を行うことで問題への理解が深まり、
質問する際に相手に伝えるべき項目をまとめて質問することができます。
また、回答者は専門的な用語を踏まえて回答をくれるときが多いですが
調べることに慣れていると戸惑わずに対応できると思います。

以上になります。
回答者の方々はきちんと対応すれば良い方ばかりです。
変な感じになったな~と思ったら大体自分の対応が悪かったと思って
めげずに頑張って下さい。