Namenskonventionen für boolesche Attribute

8

Ich möchte Code schreiben, den andere leicht verstehen können.

Haben boolesche Attribute wie hide_email oder email_hidden einen Konventionsstil?

    
Fellow Stranger 05.05.2016, 20:20
quelle

4 Antworten

14

Ich denke darüber nach:

  • Ein boolesches Attribut sollte eine einfache Ja / Nein-Frage beantworten.
  • Bitte "ist?" ist eine einfache Möglichkeit, eine Ja / Nein-Frage zu stellen.
  • Also sollte ein boolescher Attributname den Satz is <attribute_name> vervollständigen
  • Dann entferne einfach den is , weil Ruby das ? Suffix für "is" -Style-Methodennamen bevorzugt (siehe unten für mehr), so dass nur email_hidden übrig bleibt.

Benennen Sie Ihr Attribut für Ihren speziellen Fall folgendermaßen:

  • Beginnen Sie mit der Frage "E-Mail ist versteckt" ?. Was kann im Code dargestellt werden als: email_is_hidden .
  • Entfernen Sie die is und Sie bleiben mit email_hidden
  • Ruby on Rails definiert eine "Prädikat" -Version (eine, die in einem ? endet) Ihres booleschen Attributs und gibt true / false wie erwartet zurück. Während Ihr Attribut in der Datenbank den Namen email_hidden hat, sollten Sie es aus Gründen der Übersichtlichkeit als email_hidden? in Ihrem Code verwenden, ebenso wie die Ruby on Rails-Konvention.
pdobb 05.05.2016, 21:31
quelle
2

Der Ruby-Code-Smile sagt, dass alle booleschen Methoden mit?

enden sollten

Bei aktivem Datensatz können Sie

sehen %Vor%

Oder in Ruby finden Sie

%Vor%

Wenn Sie über Konventionen von Ruby wissen wollen, lesen Sie dies

Ссылка

    
Horacio Branciforte 05.05.2016 20:45
quelle
2

Nehmen Sie diese zwei Beispiele von Namen, die Sie gegeben haben:

  • hide_email wäre ein guter Name für eine Methode, die eine solche Aufgabe ausführt, eine Methode, die alle Prozeduren ausführt, um eine E-Mail im Bereich Ihres Systems auszublenden. Aber es wäre nie ein guter Name für eine boolesche Methode, die den Status einer E-Mail zurückgibt.
  • email_hidden? , mit einem Fragezeichen (?) am Ende, wäre der korrekte Name für eine boolesche Methode, die angibt, ob die E-Mail versteckt ist oder nicht.

Denken Sie immer an Ruby-Konventionen, wenn Sie wirklich guten Code schreiben wollen. Sie werden Ihnen helfen, auch wenn Sie über die Prozesse in Ihrem System nachdenken.

    
Ed de Almeida 05.05.2016 20:28
quelle
1

Das wäre email_hidden? . Es ist, woran sich die Ruby-Community gewöhnt hat.

Bitte notieren Sie die ? am Ende.

    
Uzbekjon 05.05.2016 20:23
quelle