Gibt es ein Standard- oder konventionelles System zum Organisieren von Ruby-Programmen mit mehreren Dateien? Ich habe mein erstes großes "Projekt" in Ruby gestartet, einem Suchprogramm, das logisch in mehrere Dateien und Verzeichnisse unterteilt ist. Ich habe unter meinem Potenzial Struktur skizziert:System zum Organisieren von Ruby-Programmen mit mehreren Dateien?
- Die Hauptdatei. Diese Datei implementiert die Suchklasse und das allgemeine Suchprotokoll.
- Die algorithmische Analysedatei. Diese Datei implementiert Funktionen, die Suchergebnisse interpretieren.
- Protokolle Verzeichnis
- Enthält eine Datei pro-Protokoll zu suchen.
- Feeds Verzeichnis
- Ein Teil der Zweck des Programms ist die archivierten Nachrichten-Feeds zu suchen. Die Dateien für dieses Feature werden in diesem Ordner gespeichert.
jedoch zur Zeit der Code eine Klasse hat (wir es Searcher nennen), dass jeder Suchklasse Protokoll erbt von (GoogleSearcher < Searcher). Um dies zu verwalten, muss ich die Hauptdatei in diese Protokolldateien aufnehmen (richtig?), Was bei meiner idealen Struktur nicht möglich scheint.
Abgesehen von meinem spezifischen Beispiel, habe ich mich gefragt, ob es Konventionen gibt, wie "mehr Dateien statt weniger", oder "logische Strukturierung von Dateien ist unnötig". Ist es üblich, eine Datei mit "Helfer" -Funktionen zu haben (wie in Rails?) Welches Abstraktionsniveau wird als angemessen angesehen?
Schließlich plane ich die Integration in Rails eines Tages als eine Bibliothek (kein Plugin; ich will, dass es auch eigenständig funktioniert). Ich weiß nicht, ob das die Organisation beeinflussen würde.
Ich weiß, dass dies eine ziemlich offene Frage ist, aber das liegt daran, dass ich jeden Ratschlag, der aus der Ferne relevant ist, zu schätzen weiß. Danke im Voraus.
gibt es ein paar ordentliche Edelstein erzeugenden Werkzeuge: Newgem, Juwelier, Knochen. Ich habe Newgem für ein Projekt verwendet (das eigentlich NICHT als Edelstein veröffentlicht werden sollte) und es hat ziemlich gut funktioniert – RyanWilcox
Das ist gut, und es bleibt nur eine unbeantwortete Frage (im Nachhinein war diese Frage definitiv zu weit.) Gibt es eine Möglichkeit, eine Klassenvererbung über mehrere Dateien hinweg durchzuführen, wobei sich die Hauptklasse in der Hauptdatei befindet und Klassen, die von ihr erben, in Peripheriedateien in einem Unterverzeichnis enthalten sind? Oder ist das eine rückwärts gerichtete Organisation? –
Ruby ist ziemlich vergebend, wenn es um Vererbung geht. Wenn ich Ihre Frage richtig verstehe, wäre es definitiv möglich, sie so einzurichten, wie Sie es beschreiben. Ohne irgendwelche Einzelheiten Ihres Projekts zu kennen, würde ich wahrscheinlich dasselbe tun, wo eine "Hauptklasse" im lib/foo/-Verzeichnis und Klassen, die von der Hauptklasse erben, in lib/foo/bar, lib/foo/baz sind und so weiter. Werfen Sie einen Blick auf Edelsteine wie Nokogiri für Live-Beispiele dieser Art von Setup. – vonconrad