Wenn möglich ... lassen Sie in Ruby Klammern rein oder raus?
Wenn möglich ... lassen Sie in Ruby Klammern rein oder raus?
Antworten:
Aus den Elementen des Ruby-Stils
Mit Ruby können Sie Klammern weglassen und dieser Versuchung im Allgemeinen widerstehen.
Klammern erleichtern das Verfolgen des Codes. Im allgemeinen Ruby-Stil werden sie verwendet, außer in den folgenden Fällen:
- Lassen Sie immer leere Klammern weg
- Die Klammern können in einem einzelnen Befehl weggelassen werden, der von ERb-Trennzeichen umgeben ist. Die ERb-Markierungen stellen sicher, dass der Code noch lesbar ist
- Eine Zeile, die aus einem einzelnen Befehl und einem einzelnen einfachen Argument besteht, kann ohne Klammern geschrieben werden. Persönlich finde ich, dass ich das immer weniger mache, aber es ist immer noch perfekt lesbar. Ich mag keine einzelnen Zeilen in normalem Ruby-Code, die mehrere Argumente und keine Klammern haben.
- Viele Ruby-basierte domänenspezifische Sprachen (wie Rake) verwenden keine Klammern, um ein natürlicheres Sprachgefühl für ihre Aussagen zu erhalten.
Ich benutze Parens als Kommentare, um der Zukunft zu helfen ... wer hat wahrscheinlich weniger Gehirnzellen als das aktuelle Ich :-)
Nichts schlimmeres, als sich einen Code anzusehen, den Sie vor 2 Jahren geschrieben haben, und ihn falsch zu verstehen, damit Sie beim Ändern etwas kaputt machen.
Wenn Parens mir in Zukunft ein paar Minuten (oder Stunden) die Zukunft ersparen, werde ich so viele wie nötig einsetzen, um die Aussage kristallklar zu machen.
Ich lasse sie weg, wenn ich DSL-artige Sachen mache, wie t.column oder has_many in Rails. Der Rest der Zeit kommt es im Allgemeinen auf Klarheit an, und es ist wahrscheinlich eine gleichmäßige Spaltung.
Wenn Sie in Funktionsaufrufen meinen, setze ich immer Klammern, weil es immer einfacher zu lesen ist. Wenn Sie unter Bedingungen (wenn, während) meinen, setze ich Klammern nur, wenn sie notwendig sind.
Ich neige dazu, sie wegzulassen, wenn ich Behauptungen wie assert_equal mache. Vielleicht liegt es daran, es domänenspezifisch sprachlich zu machen.
Wenn Sie schon lange programmiert haben, werden Sie wahrscheinlich einen "Juckreiz" haben, Klammern hinzuzufügen, und in vielen Fällen gibt es gute Gründe dafür.
Der Code ist meiner Meinung nach jedoch augenschonender und ich bin noch nicht auf ein Problem gestoßen. Wenn Sie Klammern benötigen, wissen Sie dies im Voraus, bevor Sie das Debugging-Skript ausführen müssen.
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
habe, bin ich neulich auf dieses Problem gestoßen. Ich lerne erst seit ein paar Wochen Ruby und wo ich arbeite, werden so viele Zeichen wie möglich verwendet. Wenn Sie aus einer anderen Sprache kommen, gibt es ein Lernen Kurve, um zu wissen, wann Sie einen impliziten Hash, eine Reihe von Symbolen, übergeben, um Symbole an eine Funktion zu übergeben ... Ich bin kein Fan.
if owner.is_a? thing and x > 1
and
hat nicht die gleiche Rangfolge der Operatoren , die &&
hat