Einbeziehung von Dateien in Ruby -Fragen
Frage
- Ich bin sehr neu in Ruby, also können Sie bitte die beste Praxis für die Trennung von Dateien und die Einbeziehung vorschlagen.
- Was ist die bevorzugte Entwurfsstruktur des Dateilayouts? Wann beschließen Sie, den Algorithmus in eine neue Datei zu trennen?
- Wann benutzt du Belastung Um andere Dateien einzuschließen und wann verwenden Sie benötigen?
- Und gibt es einen Leistungstreffer, wenn Sie Dateien einfügen?
Vielen Dank.
Lösung
Ich erstelle eine Datei pro Klasse, mit Ausnahme von Klassen, die kleine Helferklassen sind, die nicht von anderen Dateien benötigt werden. Ich trenne auch meine verschiedenen Module in Unterverzeichnissen.
Der Unterschied zwischen
load
undrequire
istrequire
lädt die Datei nur einmal, auch wenn sie mehrmals aufgerufen wirdload
lädt es erneut, unabhängig davon, ob es zuvor geladen wurde. Sie werden fast immer verwenden wollenrequire
, außer vielleicht inirb
Wenn Sie eine Datei manuell neu laden möchten.Ich bin mir nicht sicher, ob der Performance -Hit getroffen wurde. Wenn du
load
oderrequire
Eine Datei, die Interpreter muss die Datei interpretieren. Die meisten Ruby's kompilieren ihn nach Bedarf zum virtuellen Maschinencode. Offensichtlich,require
ist leistungsfähiger, wenn die Datei möglicherweise bereits einmal eingeschlossen wurde, da sie möglicherweise nicht erneut laden muss.