Arkanis A blog about random stuff, but mostly programming.

Rails ist groß…

rails

… naja, eigentlich nicht. Zumindest nicht, wenn man eine normale Railsanwendung erstellt. Denn da wird dann die Systembibliothek bzw. das Gem von Rails benutzt. Der Quelltext von Rails ist dann also nicht in jeder Railsanwendung enthalten, sondern liegt irgend wo im System und alle Railsanwendungen verwenden diese Bibliothek.

Manchmal ist es jedoch praktisch, den gesamten Quelltext von Rails in die Anwendung zu "entpacken", z.B. bevor man die Anwendung auf einen Server hochläd, auf dem die Systembibliothek bzw. das Gem nicht installiert ist.

Genau das hab ich mit einem kleinen Projekt (Abstimmungstool für LANs) auch mal gemacht. Heute bin ich dann durch Zufall auf die Idee gekommen, die Festplattenbelegung dieser Railsanwendung mal mit Ubuntus speziellem Tool anzuschauen:

Diagramm der Festplattenbelegung einer kleinen Railsanwendung
Das Verzeichnis mit Ruby on Rails ist 22 MB groß, während die eigentliche Anwendung nur ein ca. ⅛ des Speichers belegt.

Musste das Bild leider etwas verkleinern, wodurch es leicht unscharf geworden ist. Alles, was im vendor-Verzeichnis (dem hellrot markierten Teil) ist, gehört hier zu Rails. Die paar kleinen Kuchenstücke zwischen 0 und 45° sind meine kleine Anwendung. Jede weitere Sphäre nach außen ist übrigens eine Ordnerebene tiefer.

Fand die Dimensionen und die Visualisierung von dem Ganzen recht gut. Wenn man sich die größten Bereiche mal etwas durch schaut, sieht man auch, dass Tests über die Hälfte des Speicherplatzes aus machen. Das merkt man auch, hatte bis jetzt noch keinen einzigen ernsthaften Rails-Bug. Kein Vergleich zu so was wie ColdFusion…

Man könnte das ganze aber auch so auslegen, dass man selbst nur noch sehr wenig Quelltext schreiben muss. Die kleine Railsanwendung besteht aus gerade mal 127 Zeilen Code (gelobt sei rake stats), der Rest sind automatisch erstellte Test, HTML-Templates, Bilder und Stylesheets. 127 Zeilen… selbst mir fällt es schwer, das zu glauben. Ich möchte gar nicht dran denken, wie viel das z.B. in PHP geworden währe.

react

nice meh bad surprised confused agree disagree

Comments

Newsfeed

No comments so far, feel free to write one. :)