2016-04-27 11 views
1

Ich erstelle eine Go-Datei (um Konstanten wie Build-Version usw. aufzunehmen), so dass die Konstanten in anderen Paketen verwendet werden können. Ich habe ein ein kleines Tool entwickelt, um die Datei mit go generate zu schaffen, aber ich versuche, von einem geeigneten Namen zu denken, so dassName für eine generierte Go-Datei

  • Es ist offensichtlich, dass es erzeugt wird, so dass, wenn es fehlt (auf Build) die Benutzer dann weiß go generate

  • laufen Und ich kann dann die Datei auf dem

Meine erste Vermutung ist, wie version_GENERATED.go

etwas .gitignore hinzufügen 0

Irgendwelche Konventionen sollte ich beachten oder bessere Vorschläge?

Antwort

3

Ein Suffix wie _GENERATED hinzugefügt, um den Dateinamen enthält keine Informationen, bis die Datei generiert wird, da der Compiler Ihnen nur "nicht zusammenhängende" Fehler wie "undefined: xxx" (der Compiler wird nicht raten, wenn der Bezeichner würde existiert, wäre es in version_GENERATED.go). Der stringer Generator erzeugt Dateien mit dem Namen type_string.go, wobei der Typ durch den Namen des Typs ersetzt wird, für den er generiert wird.

Also ich denke, einfach die general guidelines für Dateinamen zu folgen ist genug, außer vielleicht _gen oder _generated Suffix verwenden. Oder wenn Ihr Werkzeug öffentlich ist und von anderen verwendet wird, dann verwenden Sie den Namen des Werkzeugs als Suffix (wie zB stringer).

Wenn Sie den Benutzer tun wollen eine gesprächig Fehlermeldung zu erhalten, falls Ihr Generator noch ausgeführt werden soll, kann Ihr Generator eine exportierte Konstante, deren erzeugen Name gesprächig ist, wenn in einer Fehlermeldung enthalten, wie:

const MustRunStringerGenerator = 0 

Und in Ihrem Programm finden Sie es mögen:

var _ = MustRunStringerGenerator // Test if stringer has been run 

Wenn stringer noch nicht ausgeführt wurde, wird eine Fehlermeldung angezeigt:

undefined: MustRunStringerGenerator 
Verwandte Themen