Frage

Dies war etwas, ursprünglich während einer Präsentation von Charles Brian Quinn von dem Big Nerd-Ranch gegeben diskutiert auf acts_as_conference . Er besprach, was er von anweist, eine Ruby on Rails Bootcamp für viele Menschen sowohl neu in der Programmierung und neue Rails gelernt hatte.

Eine besondere Folie, die entlang der Linien von stand war nie foo und bar als Beispiele zu verwenden, wenn jemand zu lehren versuchen, zu programmieren. Seine Begründung war sehr einfach.

Was ist leichter zu verstehen?

baz = foo + bar

oder

answer = first_number + second_number

Es ist oft selbst passiert ist, als etwas zu erklären und ich sofort zu dem Sprung springen bar Platzhalter foo aber dann meinen Fehler erkennen und das Beispiel viel mehr Sinn machen, indem Sie einen realen Welt Szenario verwenden.

Dies gilt insbesondere, wenn sie versuchen, jemanden zu lehren, die keine Programmierung Exposition hatte und Sie benötigen erklären foo am Ende und eine Bar, bevor zu erklären, was Sie tatsächlich zu lehren versuchen.

Allerdings scheint mit foo und bar für erfahrene Programmierer OK, obwohl ich persönlich denke, zusammen mit Charles, dass es etwas, das geändert werden muss.

Eine schnelle SO für „foo“ Rendite über 20 Seiten von Ergebnissen mit foo suchen in vielerlei Hinsicht verwendet werden, die ich verstehen kann. Und in einigen Fällen, in denen ich lese eine Frage zu einer bestimmten Sprache und ich tue so zu helfen, dass die Sprache besser zu verstehen. Gegebenenfalls Variablennamen anstelle von foo und bar verwendet werden, macht es viel einfacher zu verstehen und das Problem zu interpretieren. So für erfahrene Entwickler, das Konstrukt scheint ein wenig auch fehlerhaft.

Ist das eine Gewohnheit, die zu gekickt wird jemals in der Lage sein? Warum wählen Sie foo bar oder nicht bar foo?

War es hilfreich?

Lösung

Es hängt streng auf das, was Sie versuchen, zu lehren. Manchmal, wenn ein Programmierbeispiel zeigt, müssen Sie ein paar Dinge erklären nur für das Snippet zu sein „vollständig“, und die wenigen Dinge sind nicht der Kern dessen, was Sie zeigen.

Zum Beispiel, wenn Sie zeigen möchten, wie eine Ausnahme zu werfen, ich glaube, es ist in Ordnung, ist ein Ausschnitt wie

zu präsentieren
public void foo() { 

   // Do some things

   if (errorCondition) {
      throw new Exception("Error message");
   }

}

Da der Punkt darin ist Ausnahme zeigt, gibt es keinen Punkt, um den Namen der Methode in der Pflege, so foo „legal“ in diesem Zusammenhang, oder zumindest für mich.

Was würde ich nicht (in diesem gleichen Beispiel) akzeptieren würde

public void foo() { 

   // Do some things

   if (bar) {
      throw new Exception(baz);
   }

}

, wie es verschleiert, was Sie lehren wollen.

Andere Tipps

Ich kann den Punkt sehen, wenn sie nicht Programmierer sprechen, aber wenn man an einem Whiteboard ist ein Problem mit einigen Teammitgliedern zu diskutieren .. Ich würde meine foos und meine Bars verpassen. Ich denke, dass die Prävalenz von foo / bar ist ein Beispiel für die Fähigkeit der meisten Programmierer abstrakt zu denken.

Wahrscheinlich eher ein Problem, wenn Sie in der Trainingsarena sind.

Ich benutze sie manchmal. Aber nur, wenn ein „richtiger“ Name ist nicht relevant.

ich sie verwenden, wenn die zeigen, dass alle Werte von ‚foo‘ und ‚bar‘ genügt, wie „Sie die Größe eines Objekts mit sizeof bekommen kann (foo).“ Es ist praktisch für Leute bekommen das allgemeine Konzept und nicht nur die Angaben zu verstehen. Zum Beispiel, wenn ich gesagt hätte, „können Sie die Größe eines Objekts mit so etwas wie sizeof bekommen kann (int)“, dann ist es fast garantiert, dass jemand fragen würde, ob das auch für Schwimmer funktioniert.

Für totaly neue Programmierer Ich muß sagen, dass Begriffe foo und bar vielleicht nicht bekannt sein. Ich dachte, dass sie etwas sprachspezifische (nämlich C) war, aber nach Wikipedia cheking ich jetzt weiß sie nur abstrakt Platzhalter sind. Also, wenn Ihr Publikum von Menschen besteht, die Bedeutungen von ihnen nicht wissen, ist etwas anderes viel klarer. Auch FIRST_NUMBER und so erzählt, dass diejenigen Zahlen sind wie immer sie dargestellt werden, und nicht etwas anderes.

Ich wähle nicht auf foo und bar, wenn mein Publikum mit dem Konzept bei der Hand vertraut genug ist, dass es einen Nachteil für ihr Verständnis beweisen würde.

Das einzige Mal, Foo und Bar verwendet werden sollte, ist, wenn man etwas reden über so abstrakt, dass ein Zusammenhang Hinzufügen zusätzlicher Diskussion erfordern würde. Dann Foo und Bar sind viel besser lesbar und erstellt Code, der mehr verfolgbare als die Alternativen ist, wie x, y und z.

Ich denke, es ist darauf zurückzuführen, mild, oder vielleicht auch nicht so leicht, sarkastisch Natur vieler Programmierer. Während viele Leute haben versucht, verschiedene Bedeutungen auf foo / bar am meisten zu platzieren, oder zumindest viele von uns „FUBAR“ denken, F ** K Up zur Unkenntlichkeit. Es ist ein Weg für „erfahrene“ Leute sonst einen abfälligen Kommentar über alle zu machen.

Deshalb habe ich es nie für nicht-Programmierer verwenden und es selten verwenden, auch mit erfahrenen Programmierer. Wenn ich Sie können wetten, dass ich auf das Thema bei der Hand einen versteckten Hinweis mache.

Auf der Vermeidung von unsinnigen Worten wie Foo & Bar, habe ich festgestellt, es ist viel wichtiger, Code-Beispiele für reale Szenarien zu schaffen, die die gleichen Beziehungen haben. Das hilft wirklich einen Lernender ein Thema richtig zu verstehen und verhindert Missverständnisse. Zum Beispiel, wenn ich über Dependency Injection bin Lehre und Beispiel-Code zeigen, wo eine Instanz der Klasse Car in die Treiberklasse eingespritzt wird, niemand wird zu verwirrt und denkt: „Das heißt also, das Auto dann steuert den Fahrer?“.

Ich denke, es ein weiterer wichtiger Grund ist foo und bar in den Beispielen für die Verwendung. Diese Namen machen deutlich, dass Sie keine magische Schlüsselwörter aufrufen. Jedes Mal, wenn ich einige Dokumentation oder Code-Beispiele lese, ich mag die beliebigen Teile des Beispiels aus den benötigten Teilen deutlich unterschieden werden.

Wenn Sie den Unsinn Wort ersetzt, was es darstellt allgemein im Beispielcode können Sie auch mit einigen Namen am Ende, die viel wie die Keywords suchen, Klassen oder Methoden Sie versuchen zu erklären. Der „my“ Präfix, wie in myNumber, myFunction, ist ein guter Kompromiss, die Namen stehen als willkürlich.

macht

Ich bin neu in die Programmierung, und mehr oder weniger Autodidakt. Ich online las vielen Beispielcode und am Anfang fand ich zu ersetzen foo und bar & c. mit relevanteren Namen wie die firstnumber und Second Beispiele oben.

Ich ziehe jetzt x, y, z, i ... weil foo und bar scheinen sprachliche Impulse in meinem Geist zu wecken und mich von der Routine ablenken können, und ich entwickelt habe, etwas, die Fähigkeit, ein Ganzes zu halten Bündel von verschiedenen Variablen in meinem Kopf und daran erinnern, was sie sind. Aber ich würde immer noch auf jeden Fall empfehlen relevant Namensgebung zu verwenden, wenn jemand anderes lehrt, vor allem, wenn der Code mit jemandem zu erklären, der nicht Programm tut, sondern muss verstehen, wie das Programm funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top