これはもともと、チャールズ・ブライアン・クインのプレゼンテーションで議論された内容だった。ビッグ ナード ランチで会議として行動する彼は、プログラミング初心者と Rails 初心者の両方を対象に Ruby on Rails ブートキャンプを指導して学んだことについて話していました。
特に目立ったスライドは次のようなものでした。誰かにプログラミングを教えるとき、foo や bar を例として使わない彼の推論は非常に単純だった。
どちらがわかりやすいでしょうか?
baz = foo + bar
または
answer = first_number + second_number
私自身、何かを説明するときに何度もこのようなことがありました。すぐに foo バーのプレースホルダーに移動したのですが、その後間違いに気づき、実際のシナリオを使用して例をもっとわかりやすくしました。
これは、プログラミングの経験がない人に教えようとするときに特に当てはまり、実際に教えようとしていることを説明する前に、foo と bar を説明する必要が生じます。
ただし、経験豊富なプログラマーにとっては foo と bar の使用は問題ないと思われますが、私も Charles と同様に、これは変更する必要があると個人的には考えています。
SO で「foo」をすばやく検索すると、20 ページを超える結果が返され、foo は私が理解できる以上の方法で使用されています。また、特定の言語に関する質問を読んでいるときに、その言語をよりよく理解するために読んでいる場合もあります。foo や bar の代わりに適切な変数名を使用すると、問題を理解して解釈するのがはるかに簡単になります。そのため、熟練した開発者にとって、この構造には少し欠陥があるようにも思えます。
この習慣はいつかやめられるものなのでしょうか? なぜあなたは、Foo Bar をするかしないかを選択するのですか?
ベストアンサー1
それは、何を教えようとしているかによって厳密に異なります。プログラミングの例を示すときに、スニペットを「完了」させるためにいくつかのことを宣言しなければならないことがありますが、それらのいくつかのことは、示している内容の核心ではありません。
たとえば、例外をスローする方法を示したい場合は、次のようなスニペットを提示しても問題ないと思います。
public void foo() {
// Do some things
if (errorCondition) {
throw new Exception("Error message");
}
}
ここでのポイントは例外を表示することなので、メソッド名を気にする意味はありません。そのため、このコンテキストでは、少なくとも私にとっては、foo は「合法」です。
私が(この同じ例で)受け入れないのは、
public void foo() {
// Do some things
if (bar) {
throw new Exception(baz);
}
}
それはあなたが教えようとしていることを不明瞭にしてしまうからです。