Hallo Axel,
Schlechter Rat, ganz schlechter Rat. Sicher sollte man nicht
alles in eine Datei packen, aber du vergisst, dass es hier um
eine Script-Sprache geht. Jede Datei verlangsamt den Vorgang
um ein Weiteres. Also: so wenige Datein wie moeglich, aber so
viele wie noetig.
Hi,
Ansichtssache. Abgesehen davon: Wieviele Klassen hat so ein durchschnittliches Script? Im Normfall vielleicht eine Datenbank-Abstraktion, eine Template-Engine und meistens (wenn überhaupt) war's das.
Komplexere Seiten werden u.U. noch ein paar weitere Klassen haben - hier ist dann folgendes zu klären:
- Sind es individuelle Klassen ohne Wiederverwendungsmöglichkeit in anderen Projekten?
- Werden diese Klassen in ihrer Gesamtheit immer benötigt?
- Muss im Team daran gearbeitet werden?
U.u. kann sich in Einzelfällen eine Ausnahme lohnen - dennoch: Ich habe bisher darauf verzichtet, mehrere Klassen in ein einziges File zu packen.
Ich vertrete den Grundsatz "pro Klasse eine Datei" übrigens aus verschiedenen Gründen:
- Ich muss nur das laden, was ich benötige
- Ich belege nur den Speicher den ich wirklich benötige
- Ich kann im Team an einem Projekt arbeiten
- Kommt dem OOD am nächsten
- Das Prinzip der Modularität wird auch auf Dateiebene realisiert
- Das Projekt wird übersichtlicher
- Das Ergebis entspricht eher dem, was ich in Rational entwerfe
Ich teile Deine Einschätzung, das Dateizugriffe im Normalfall teuer sind - aber:
Eine unfragmentierte Platte ermöglicht das Ablegen der Dateien dicht bei dicht. Der Lesekopf muss minimal repositioniert werden. Die Platte dreht ohnehin immer und moderne Platten bieten gutes Caching und gute Durchsatzraten. Hinzu kommen Chaching-Algorithmen moderner Webserver - also meiner Auffassung nach nicht kritisch.
Ich bin bis jetzt immer ganz gut damit gefahren - Mergen im SourceSafe blieb mir bis jetzt erspart.
Natürlich kann man das auch ganz anders sehen (hängt auch stark von der eigenen Arbeitsweise und den Rahmenbedingugen ab) - aber bisher habe ich nur gute Erfahrungen im Gegensatz zum "One Project - One Script" - Vorgehen.
Gruß
Axel
BTW: Script-Sprache hin- oder her: Arbeitest Du im Team mit einem Versionskontrollsystem, wirst Du den Vorteil des "eine Klasse eine Datei"-Prinzips schnell lieben - solange Du nur selbst an einem Projekt arbeitest sind die Vorteile natürlich je nach Arbeitsweise nicht gravierend.