Rube Goldberg Softwaredesign [geschlossen]

8

Hat jemand ein Software-Design von Rube Goldberg gesehen? Im Grunde ein komplizierter Entwurf für einfache Sachen.

Bitte teilen Sie Ihre Geschichten.

    
johnson 10.10.2008, 21:03
quelle

13 Antworten

10

Das habe ich von einem Kollegen gehört. Anscheinend fand er eine Webanwendung, die so etwas für die JavaScript-Textfeldvalidierung auf der Client-Seite tut:

  1. Javascript erstellt eine Zeichenfolge, um das clientseitige Textfeld darzustellen.
  2. sendet die Zeichenfolge an den Webserver.
  3. Webserver verwendet Reflektion, um das Textfeld auf dem Server anhand der übergebenen Zeichenfolge zu rekonstruieren.
  4. Webserver prüft, ob das Textfeld einen Wert hat.
  5. gibt das Ergebnis an den Client zurück.
  6. Client zeigt die Nachricht an.
  7. Während der Webserver die Validierung durchführt, zeigt der Client einen Fortschrittsbalken an.

Die Fortschrittsbalkenimplementierung ist gut für einen anderen Beitrag. :)

    
Gulzar Nazim 10.10.2008, 21:13
quelle
4

The Daily WTF Sie Quelle für mehr Rube Goldberg Software, die Sie möglicherweise lesen möchten: P.

    
Aaron Maenpaa 10.10.2008 21:08
quelle
4

Einer unserer Junior-Programmierer hat einmal geschrieben, was ein einfaches AJAX-automatisch vorgeschlagenes Textfeld sein sollte, um Benutzerkonten in einer unserer Anwendungen zu suchen.

Das war sein Prozess:

  1. Führen Sie SELECT * FROM Users für die Datenbank
  2. aus
  3. Geben Sie die vollständigen Ergebnisse in einer GetAllUsers() Web-Service-Methode
  4. zurück
  5. Durchlaufen Sie die XML-Ergebnisse in Javascript, um Namen zu finden, die mit den bisher eingegebenen Zeichen übereinstimmen, und fügen Sie sie einem Array hinzu
  6. Durchlaufen Sie das Array, um die Dropdown-Liste mit automatischem Vorschlag zu erstellen
  7. Wiederholen Sie den gesamten Vorgang für den nächsten eingegebenen Buchstaben ...

Das funktionierte wirklich ziemlich gut, als er es mit 10 Beispielbenutzern prüfte, aber brachte das System zu einem quietschenden Halt, wenn es gegen einen vollen Testsatz von 3000 Benutzern läuft.

    
Raelshark 10.10.2008 21:29
quelle
3

Da Duffs Gerät heute hier populär ist, halte ich es für angebracht, als komplizierten Code etwas Einfaches zu tun:

%Vor%

Beachten Sie, dass es im Vergleich zu:

wirklich super effizient ist %Vor%

Aber die schiere Eleganz, die von der Absenkung des C-Schalters abhängt, macht es zu einem würdigen Rube.

    
FlySwat 10.10.2008 21:16
quelle
2

Ich habe noch keine in der Produktion gesehen, aber ich habe es geschafft, Hello World mit Designmustern auf der folgenden Seite zu sehen:

Ссылка

    
Rontologist 10.10.2008 21:08
quelle
1

Als ich bei einer bekannten Firma für Antiviren- und Fernzugriffs-Software war, wurde ein Mitarbeiter, der aus irgendeinem Grund von Managern auf niedrigem Niveau als wirklich exzellent angesehen wurde, dazu benutzt, alle möglichen komplizierten Dinge zu schreiben. Ich habe mich gefürchtet, an seinem Code zu arbeiten. Vieles davon war alles unnötig. Ich musste mich schließlich mit ihm unterhalten, als ich herausfand, dass er MFC in eine zuvor mfc-freie Bibliothek eingeführt hatte (wir versuchten, diesen Code aus einigen unserer Codes herauszuhalten). Er brauchte es offenbar für Streicher und Sammlungen. Ich zeigte ihm stl. Er war sehr begeistert und schien meine Vorschläge wirklich zu beherzigen. Später, als ich den Code erneut betrachtete, sah ich, dass er die MFC-Sammlungen implementiert und STL mit seinen eigenen Schnittstellen versehen hatte, so dass sie wie mfc-Sammlungen aussahen. Beeindruckend. einfach wow.

Ein anderer völlig nutzloser Entwickler bei der gleichen Firma wollte anscheinend nicht die Vererbung in C ++ verwenden - obwohl er Seiten von "Effective C ++" kopiert hat, um potenziellen Mitarbeitern Tests zu geben. Wie auch immer, während einer Code-Überprüfung fragte einer der Leute, die mir berichteten, warum Pete #ifdefs in seinem Code überall verwendete. Sein Projekt würde 4 mal kompilieren und jedes Mal ein anderes Schlüsselwort definieren. Der bedingte Code war für ein bestimmtes Verhalten und der gesamte andere Code für eine ähnliche Funktionalität. Ich wurde weggeblasen. Und dieser Typ wurde auch für einen goldenen Jungen gehalten. Er verursachte im Alleingang eine Neuveröffentlichung eines Produkts, da er in einem Win32-Dienstprozess eine Debugging-Message-Box hinterließ - was den Dienst hemmte, weil er nicht lernen wollte, den Debugger auf Quellcodeebene zu verwenden -, aber das ist eine andere Geschichte.

    
Tim 10.10.2008 21:14
quelle
1

99 Flaschen Bier hat auch viele Beispiele. Zum Beispiel das erweiterte, erweiterbare Bier / Wall-Framework . Was lustigerweise in Python und nicht in Java geschrieben ist.

    
Aaron Maenpaa 10.10.2008 21:15
quelle
0

Es könnte besser sein, nach Antworten auf diese Frage auf The Daily WTF zu suchen:)

    
AR. 10.10.2008 21:10
quelle
0

Es sieht so aus, als ob jede Datenkonvertierung, die ich aus einer Filemaker Pro Datenbank gemacht habe, mich glauben macht, dass die Datenbank von Rube selbst entworfen wurde.

Mal sehen ... Alle Felder sind 256 Zeichen lang. Firmennamen, die als Primärschlüssel verwendet werden (warten Sie! Ändern Sie den Namen nicht ...) De-normalisierte Datenbankstruktur (payment1date, payment2date ... payment25date).

(Nicht, dass ich Filemaker Pro dissipiere. Es ist nur, dass es Nicht-Programmierern ermöglicht, Datenbanken zu entwerfen, die eventuell in eine andere Anwendung konvertiert werden müssen.)

    
Kluge 10.10.2008 21:11
quelle
0

Stellen Sie sich eine Konfigurationsdatei vor, die wie folgt aussieht:

%Vor%

und ein Parser, der so aussieht

%Vor%

Falls Sie sich fragen, wird das "i" später verwendet, um herauszufinden, wie viele Params Sie haben. Und dies ist eine extrem gereinigte Ansicht des Codes.

    
Steve B. 10.10.2008 21:07
quelle
0

Nicht super lang, aber immer noch lächerlich. Um ein StringBuilder zu löschen:

%Vor%     
swilliams 10.10.2008 21:22
quelle
0

Ich habe einmal eine Anwendung geerbt, die Konfigurationsdateien in Rubegoldberg-Manier behandelte. Bei der Konfiguration handelte es sich um eine einfache Nur-Text-XML-Datei mit vollständig lesbaren Schlüsseln und Werten. Beim Start öffnet die Anwendung die XML-Datei, durchläuft alle Schlüssel / Wert-Paare, verschlüsselt sowohl den Schlüssel als auch den Wert, erstellt einen Hash des verschlüsselten Schlüssels und fügt das verschlüsselte Schlüssel / Wert-Paar einer statischen Hashtabelle hinzu.

Die Funktion zum Lesen einer Einstellung benötigte einen gewöhnlichen String-Schlüssel und gab einen gewöhnlichen String-Wert zurück, also musste sie den Schlüssel verschlüsseln, ihn hashen und den Hash verwenden, um das Schlüssel / Wert-Paar in der Hash-Tabelle zu finden und dann zu entschlüsseln und den Wert zurückgeben.

Wir haben diese In-Memory-Verschlüsselung aufgerufen. Ich habe immer noch keine Ahnung, welche Denkprozesse zu seiner Entstehung geführt haben, aber ich habe an Mousetrap gedacht, als ich es gesehen habe.

    
MusiGenesis 10.10.2008 22:24
quelle
0

Dies wurde in stackoverflow, Enterprise FizzBuzz , gefunden. Das beste Beispiel, das ich gesehen habe, ein einfaches Problem zu nehmen und viel zu viel "Unternehmens" -Code darum herum zu legen.

    
James McMahon 21.03.2009 14:57
quelle

Tags und Links