Monsterklassen



  • Zwei Klassen mit 30.000 Zeilen Quellcode – von Robert Martin durchgescrollt mit Hintergrundmusik…

    http://vimeo.com/9981123



  • neekoh schrieb:

    To: Bob
    Subject: Bug triage override
    Hi,
    You have been assigned to investigate and fix a number of crash bugs in our online stock exchange system going live on Monday. The bugs manifest infrequently and randomly. The developers haven't been able to pinpoint the issues or the circumstances they occur in. The QA team hasn't been able to reproduce them reliably. Expert help is called for. The developers suggest you start with two.java since it's the easiest to follow. One and three may be tricky. Good luck! Let's talk about any weekend compensation after you've solved the problem.
    Thanks,
    The Management

    GENAU. DAS.



  • Na, zumindest "gut" kommentiert, der Code... 😃



  • Wenn man davon absieht, dass die Datei sehr groß ist, dann sieht der Code IMHO gar nicht so schlimm aus. ...so von der Ferne betrachtet.



  • Gregor schrieb:

    Wenn man davon absieht, dass die Datei sehr groß ist, dann sieht der Code IMHO gar nicht so schlimm aus. ...so von der Ferne betrachtet.

    und dass sie "two.java" heisst



  • Gregor schrieb:

    Wenn man davon absieht, dass die Datei sehr groß ist, dann sieht der Code IMHO gar nicht so schlimm aus. ...so von der Ferne betrachtet.

    Ja. Es hängt auch ein wenig von der verwendeten Sprache ab. Zum Beispiel würde man in Java alle in sich eigenständigen Funktionen in eine künstliche Klasse stopfen müssen. Andere Sprachen erlauben globale Funktionen und jene Programmierer würden sich ein wenig erschrecken, sowas zu sehen. Das soll nicht heißen, daß man die in sich eigenständigen Funktionen nicht gruppieren sollte. Sicherlich kann man die 30000 Zeilen in minstestens 50 inhaltlich getrennte 50 Unterdateien trennen. Das hat man wohl hier verabsäumt. Also damals in C ging das.



  • volkard schrieb:

    Gregor schrieb:

    Wenn man davon absieht, dass die Datei sehr groß ist, dann sieht der Code IMHO gar nicht so schlimm aus. ...so von der Ferne betrachtet.

    Ja. Es hängt auch ein wenig von der verwendeten Sprache ab. Zum Beispiel würde man in Java alle in sich eigenständigen Funktionen in eine künstliche Klasse stopfen müssen. Andere Sprachen erlauben globale Funktionen und jene Programmierer würden sich ein wenig erschrecken, sowas zu sehen. Das soll nicht heißen, daß man die in sich eigenständigen Funktionen nicht gruppieren sollte. Sicherlich kann man die 30000 Zeilen in minstestens 50 inhaltlich getrennte 50 Unterdateien trennen. Das hat man wohl hier verabsäumt. Also damals in C ging das.

    Hmmm. Also eigentlich würde man in Java auch 50 künstliche Klassen in 50 Dateien nehmen. 😉



  • Gregor schrieb:

    Hmmm. Also eigentlich würde man in Java auch 50 künstliche Klassen in 50 Dateien nehmen. 😉

    Jup.
    War wohl ein Umsteiger von C/C++ nach Java und der kannte den Trick noch nicht.



  • Die Musik ist prima, passt gut dazu. Selbst ohne den Kontext des Videos zu kennen, haette einem die Musik gleich am Anfang verraten: Es kommt etwas Unheilvolles auf dich zu 😃



  • volkard schrieb:

    Gregor schrieb:

    Wenn man davon absieht, dass die Datei sehr groß ist, dann sieht der Code IMHO gar nicht so schlimm aus. ...so von der Ferne betrachtet.

    Ja. Es hängt auch ein wenig von der verwendeten Sprache ab. Zum Beispiel würde man in Java alle in sich eigenständigen Funktionen in eine künstliche Klasse stopfen müssen. Andere Sprachen erlauben globale Funktionen und jene Programmierer würden sich ein wenig erschrecken, sowas zu sehen. Das soll nicht heißen, daß man die in sich eigenständigen Funktionen nicht gruppieren sollte. Sicherlich kann man die 30000 Zeilen in minstestens 50 inhaltlich getrennte 50 Unterdateien trennen. Das hat man wohl hier verabsäumt. Also damals in C ging das.

    Wo ist eigentlich das Problem mit einer künstlichen Klasse? Dann ist die Klasse nicht mehr als ein namespace und Java bietet auch static import . Die Math Klasse ist halt nur ein Namespace, aber wo ist den hier das Problem? Die Java Entwickler behaupten ja auch nicht, dass man alle Probleme OO lösen muss und dass es eben eigenständige Funktionen gibt. Deswegen gibt es auch static Methoden und static import .

    Du musst auch nicht jede Klasse in eine eigene Java Datei schieben, man kann auch mehrere Klassen in einer Datei haben.



  • DEvent schrieb:

    Die Java Entwickler behaupten ja auch nicht, dass man alle Probleme OO lösen muss

    Weiß nicht. Mit den Entwicklern habe ich seltener zu tun. Aber die Marketinggenies sagen oder sagten das schon.
    http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B "Strictly enforces an object oriented programming paradigm." und so Sachen liest man immer wieder und sie wurden von Sun ausgeschüttet.



  • volkard schrieb:

    War wohl ein Umsteiger von C/C++ nach Java und der kannte den Trick noch nicht.

    Ich bezweifle, dass derjenige, der den Code geschrieben hat, nicht wusste, dass man den Code auch auf mehrere Dateien aufteilen kann. Ich hab solche Klassen schon des Öfteren gesehen, z.B. auf java2s.com. Dort wird Beispielcode veröffentlicht, bei dem die Autoren alles in eine Datei kopieren. Warum die das machen weiß ich nicht - könnte mir vorstellen, dass sie meinen, dass das in einem HTML-Dokument so übersichtlicher ist. Auf jeden Fall ist in den Archiven, die man sich herunterladen kann, der Code oft auf eine "richtige" Klassenstruktur abgebildet.



  • Das kann ich toppen. Hier in der Firma gibts ne Klasse mit 80.000 Zeilen code ohne eine Zeile Kommentar. Jedes mal wenn ich darin etwas machen soll, bekomm ich die Krise !



  • MMMMONSTER schrieb:

    Hier in der Firma gibts ne Klasse mit 80.000 Zeilen code ohne eine Zeile Kommentar...

    Das ganze dann noch extrem mit "C-mit-Klassen" und Pointerorgien würzen... und fertig ist ein Programm mit schillernder Außenfassade die auf einer wurmstichigen Holzlaube aufbaut...

    Das Thema ist mit Sicherheit einigen hier bekannt.



  • also von vector hat hier noch niemand gehört, möchte nicht wissen wieviel Memory leaks die Software hat.



  • MMMMONSTER schrieb:

    also von vector hat hier noch niemand gehört, möchte nicht wissen wieviel Memory leaks die Software hat.

    Mhh... kommt mir immer mehr bekannt vor. Zum Glück gehört dies für mich inzwischen weitgehend der Vergangenheit an.


Log in to reply