![]() |
Modellbahnsteuerung in Delphi
Moin! Ich habe eben zufällig diesen
![]() |
AW: Modellbahnsteuerung in Delphi
Sehr schön!
Das Codebeispiel allerdings...smells :D Und das kenne ich nur zu gut.:lol: Sherlock |
AW: Modellbahnsteuerung in Delphi
Mit dem Codebeispiel lockt man sicher eine Menge Leute, sich Delphi näher anzuschauen. :oops:
Ich glaube ich habe ein neues Negativbeispiel für "Bringen sie ein paar beliebige Quellcodefragmente zum Bewerbungsgespräch mit" |
AW: Modellbahnsteuerung in Delphi
Sehr interessanter Artikel. Vor einiger Zeit habe ich auch mal irgendwo eine Doku darüber gesehen. Das Sourcebeispiel ist ... interessant. Besonders da dort schon ARC eingesetzt wird, dadurch spart man sich das Exceptionhandling :roll: Laut Wiki muß der Source ca. 10-12 Jahre alt sein, sieht aber aus wie 40.
|
AW: Modellbahnsteuerung in Delphi
Das Codebeispiel ist ja der reinste Horror. Das erinnert an Basic in Chip 1988. Aber der Erfolg gibt ihm Recht. Solange nur der Entwickler Hand anlegt ist alles gut!
|
AW: Modellbahnsteuerung in Delphi
"Dann mal Butter bei die Fische". Was ist schlecht. Ich sehe auch ein paar Punkte, aber Ihr habt kritisiert.
Vorab: Codeformatierung bitte aussen vor lassen, da in dem Artikel der Code einfach so reingepresst wurde. Der Code wird im Original wahrscheinlich besser formatiert sein. |
AW: Modellbahnsteuerung in Delphi
Was ich eigentlich viel interessanter finde als das Codesample ist die Tatsache, dass da anscheinend 100 Rechner arbeiten. Jeder hat mit Sicherheit irgendwelche Spezialaufgaben und das Ganze wird dann von einem Delphi-Projekt koordiniert. Früher nannte man sowas mal Multi-Tier-Anwendung. Da bei dem Anwendungsfall im wahrsten Sinne viele kleine Rädchen nahezu in Echtzeit koordiniert werden müssen, finde ich das Ganze schon beachtlich.
Solange da nur ein Entwickler am Werk ist mag das Projektmanagement auch so OK sein. Aber was ist wenn der eine Entwickler mal ausfällt? Ist doch ein Paradebeispiel für ![]() |
AW: Modellbahnsteuerung in Delphi
Hi,
fühl mich nicht angesprochen, weil ich die Sourcen nicht "horror" finde. Sind vielleicht anstregende... was mich stört: * Variablennamen (j, x, y,....) * zu lange Prozedur Allerdings ließe sich zumindest der zweite Punkt recht gut lösen, da aufgrund der KOmmentare schon Blöcke "vordefiniert" sind, d.h. das ließe sich einfach neu strukturieren (refaktoring), was auch die Problematik der Variablennamen recht schnell lösen würde. Weiter deutet der Prozedurname darauf hin, dass es das auch für Autos, Busse,.. in ähnlicher Form geben wird, d.h. dass hier evtl. Potential zum Code-Einsparen da ist, wenn man das Projekt etwas anders strukturiert. Allerdings muss ich schon sagen, dass ich schon deutlich schlechteren Code gesehen habe: Prozedurkopf: Zeile 961 Prozedurbeginn: Zeile 2108 (dazwischen auf 1.200 Zeilen Inline-Prozeduren und -Funktionen) ProzedurEnde: Zeile 2920 Der Var-Block der Prozedur liegt natürlich VOR den Inline-Prozeduren, so dass man das auch nicht so einfach auflösen kann |
AW: Modellbahnsteuerung in Delphi
|
AW: Modellbahnsteuerung in Delphi
Zitat:
|
AW: Modellbahnsteuerung in Delphi
Mir sind die Bezeichner zu lang. Bisschen abkürzen macht da nichts kaputt.
Delphi-Quellcode:
Alleine das macht den Quelltext einfach zu breit. Noch schlimmer als zu lange Bezeichner sind allerdings zu stark abgekürzte !
EinOderAuszublendeneNummer
Fakt aber ist, egal wie : die grösste Modellbahnanlage der Welt wird mit Delphi gesteuert. Und es funktioniert ! Stilistische Meckereien (auch meinerseits) 8-) ändern an dieser Tatsache nichts. Könnte als Referenz durchaus im Fall der Fälle zu gebrauchen sein. |
AW: Modellbahnsteuerung in Delphi
Diese Rechnerei mit Sin() und Cos() gehört verboten.
Da muss es doch Funktionen geben, die einen Punkt um seinen Ursprung drehen oder um einem Vektor verschieben. Wenn man mit Koordinaten zu tun hat, dann muss man diese in einer Struktur (TPoint) oder einem Objekt zusammenfassen. Falls der Programmierer hier mitliest wäre es nett wenn er sich melden würde. Ich denke jeder hier hat Respekt vor seiner tollen Leistung aber der Programmierstil ist noch verbesserungsfähig. :wink: |
AW: Modellbahnsteuerung in Delphi
Ich finde die Namen sind zu lang, aber wenn der Programmierer damit zurecht kommt ist ja gut.
Hier wurde doch im Mai/Juni schon mal ein Link von einem Video gepostet, auch aus dem Miniaturwunderland Hamburg. Da war die Delphi-IDE ebenfalls zu sehen. Wäre interessant, wenn sich der Programmierer mal melden würde, da er bestimmte Probleme ja mit Hilfe einiger Foren gelöst hat, ist er hier sehr wahrscheinlich sogar registriert. |
AW: Modellbahnsteuerung in Delphi
Jetzt habe ich es auch einmal gründlich gelesen, eine Sache möchte ich noch einmal unterstreichen und bei einer nachfragen:
- Da steckt schon FireMonkey drin. - Die Einleitung sagt: "[...] über die zum Einsatz kommende Software berichten, die überraschenderweise mit Delphi erstellt wurde." Was ist daran jetzt so sonderlich überraschend? Hat die Vergangenheit gezeigt, dass Delphi sich nicht für Eisenbahnen eignet? |
AW: Modellbahnsteuerung in Delphi
Zitat:
|
AW: Modellbahnsteuerung in Delphi
Vielleicht... über Javascript.
Auf Seiten wie Sourceforge hatte ich in den letzten Wochen meine Werbung zum Großteil über XE4, da wird ordentlich am Rad gedreht. Mich überrascht nur, dass der Artikel überhaupt etwas daran überraschend findet. Was konkret wäre denn weniger überraschend gewesen? |
AW: Modellbahnsteuerung in Delphi
Zitat:
Ich habe mir abgewöhnt, Programme zu kritisieren, die funktionieren. Denn sie funktionieren, und das ist es, worauf es hier, speziell bei der one-man-show, ankommt. Das ein Refactoring notwendig wäre, speziell, um die Nachhaltigkeit der Software und der Anlage zu gewährleisten, steht auf einem anderen Blatt. Der Code ist typisch für sehr schnell gewachsene Strukturen, d.h. eigentlich business as usual. Aber man muss sich hier nicht hinstellen, und die Länge der Bezeichner oder das Fehlen von Clean-Code Ansätzen in Abwesenheit des Autors kritisieren. Das macht man -finde ich- wenn man gefragt wird. Leute! Es! funktioniert! |
AW: Modellbahnsteuerung in Delphi
Ich habe mich nicht beschwert. Die zu langen Indentifier sind als Anmerkung zu sehen, nicht als Kritik ! Z.B. könnnte man ja statt Nummer zumindest mal Nr schreiben, ohne den Sinn des Ganzen unlesbar zu machen.
|
AW: Modellbahnsteuerung in Delphi
Gefallen tut's mir nicht, aber das ist Geschmackssache und aus "HoehederErstenUeberLastmeldung" kann man ja ganz fix C23_786 machen.
Aber wie schon mal angedeutet, das ist eine "One Man Show" und sie funktioniert. Dafür Hut ab. Was die DAU-Features angeht, solange diese Software nicht das MiWuLa verläßt und keiner auf die Idee kommt sie als Beispiel für Hochsprachenmaschinensteuerung zu nutzen, ist alles ok . Gruß K-H |
AW: Modellbahnsteuerung in Delphi
Zitat:
Es wäre ebenso überraschend, wenn sie in Lisp geschrieben wäre. Rein von der Wahrscheinlichkeit her. |
AW: Modellbahnsteuerung in Delphi
Für mich ist das überraschend einfach nur ein Stilmittel, um den Artikel interessanter zu machen und den Leser bis zum Schluss zu fesseln (hat ja wohl auch funktioniert).
Bei der ausführlichen Beschreibung mit Quelltextauszug (unerheblich ob Spaghetti-Code oder nicht, obwohl eigentlich besser, weil der zu Diskussionen anregt) kommt es einem in den Sinn, dass es sich hier auch um Werbung handelt - mehr für Delphi/Emba als für das Miniatur Wunderland. Noch bekannter ist ja eigentlich Skype, aber bei der größten Modelleisenbahn der Welt ist die Komplexität deutlich fühlbarer, und der Wow, das geht mit Delphi? Respekt!-Effekt ist erheblich größer. Bei Skype wäre es lediglich ein Toll, Delphi kann also Nachrichten von einem Computer zum Anderen schicken Fazit: Nicht so viel in das überraschend hinein interpretieren ;) |
AW: Modellbahnsteuerung in Delphi
Zitat:
Microsoft hat Skype doch vor über 2 Jahren für 8,5 Milliarden Dollar aufgekauft... Würde mich wundern, wenn Microsoft die Weiterentwicklung in Delphi realisiert... Man schaue sich nur die unterstützten Plattformen an: WinRT, Win32, OSX, Linux, Windows Phone, Android, iOS, BlackBerry usw. |
AW: Modellbahnsteuerung in Delphi
Zitat:
![]() Zitat:
Edit: *) nicht falsch verstehen: klar kann das Delphi, aber halt nicht bei Skype |
AW: Modellbahnsteuerung in Delphi
-gelöscht-
|
AW: Modellbahnsteuerung in Delphi
"Die Bezeichner sind zu lang", "Die Kommentare sind Mist".
Ehrlich gestanden habe ich mich geschämt, als ich die Kommentare im Heise-Forum gelesen habe. Da wird ein Software-Projekt vorgestellt, welches eine der größten Modellbahnen betreibt und das soll dann alles an Kritik sein? Unabhängig davon, ob die Anlage mit Delphi, C# oder javaScript gesteuert wird, hat Gerrit hier mit diesem Projekt ein Statement gesetzt und der durchschlagende Erfolg gibt ihm Recht. Das heißt nicht, dass man Dinge nicht anders machen könnte, aber von gestandenen Entwicklern hätte ich fundierteres Feedback erwartet. |
AW: Modellbahnsteuerung in Delphi
Zitat:
Zitat:
Nichtsdestotrotz können wir aus Programmierersicht nur den gezeigten Codeausschnitt bewerten, und der ist für meinen Geschmack verbesserungswürdig. Ich kann daran nichts verwerfliches erkennen, aufzuzeigen, was wir an dem Code anders machen würden. Ich denke niemand hat das bösartig gemeint. Ich finde es übrigens ganz interessant, mal reale Delphi-Projekte zu sehen, bzw. zu sehen wie andere Programmierer so arbeiten. |
AW: Modellbahnsteuerung in Delphi
Egal was alle dazu sagen, IMHO wird das nicht mehr geändert werden.
Die Bahn wird ständig weitergebaut bzw. mit neuen Features bestückt, die dann auch Änderungen im Programm nach sich ziehen und das mit einer Geschwindigkeit, die es einer One-Man-Show zeitlich nicht ermöglicht hier noch parallel ein Refactoring zu betreiben. Nein, der Code wird dadurch auch nicht besser, aber wer schon die Hälfte des Atlantiks schwimmend überquert hat, der dreht auch nicht um, um ein Schiff zu bauen, weil es damit ja schneller und komfortabler geht. Das Refactoring oder die aktuelle Entwicklung müssten also ausgelagert werden, allerdings sind da (Einzelkämpfer-) Programmierer wie Mütter mit ihren Kindern: "Nicht anfassen, nur gucken!" ;) |
AW: Modellbahnsteuerung in Delphi
Ich hab mich überhaupt gefragt, wieso gerade dieses Codestück gezeigt wird. Es ist nicht wirklich schön, zeigt keine Delphi-spezifischen Features, und hat im Endeffekt nicht viel mit der Modellbahn zu tun. Ich kann den Entwickler sogar verstehn, dass fürs UI nicht wirklich viel Zeit investiert wird, und auch mal smelly Code länger stinkt.
Mich würde vielmehr interessieren, wie die Steuerungslogik dahinter aussieht. Dessen Codestruktur, und die (hoffentlich) eingesetzten Test- und Sicherungssysteme wären 1. interessanter und 2. wahrscheinlich deutlich sauberer entwickelt als die rotierte Anzeige von irgendwelchen Bildchen im UI... |
AW: Modellbahnsteuerung in Delphi
Ich denke, die Zeitungsredaktion hat den Autor nach einem Codesample gefragt und er hat sich überlegt, mit welchem Stück Code er möglichst wenig an die Konkurrenz verraten würde.
|
AW: Modellbahnsteuerung in Delphi
Zitat:
Da wäre der Umweg am Anfang vielleicht doch eine gute Idee gewesen. Merke: Murphy sieht und trifft dich. Immer. Aber wem sag ich das ;-) |
AW: Modellbahnsteuerung in Delphi
Da hab ich dann meine Mittagspause auf der Heise Seite verbracht und ich muß Euch alle mal loben.
Selten habe ich so viel Genialität/Kreativität... und was auch immer auf einem Haufen gesehen. Da ist hier das Klima doch wahrhaftig angenehmer. Ich hab ein Beispiel aus den Kommentaren heraus gesucht, was meiner Meinung nach die Diskussion gut beschreibt: Zitat:
K-H |
AW: Modellbahnsteuerung in Delphi
Durch Zufall las ich heute einen Artikel in der c't über diese Modellbahn. Fazit war:
|
AW: Modellbahnsteuerung in Delphi
Dass er da XE2 einsetzt ist mir nun wieder neu. Das sagt aber auch einiges über den Projektcode aus. So schlecht kann er dann auch wieder nicht sein, wenn sich so ein gewachsenes Projekt von D4 oder D7 auf XE2 portieren ließ. Meistens ist es ja so gewesen, dass man bei solchen Anlagensteuerungen auf proprietäre Komponenten gesetzt hat, die es für neue Delphis nicht mehr gibt.
|
AW: Modellbahnsteuerung in Delphi
Gerit Steckenpferd(e) sind die Licht-, Auto-, Flugzeug- und Schiffsteuerung (wobei die letzte nicht abgeschlossen ist) programmiert. Die Zugsteuerung ist nicht von ihm. Da wird die Software
![]() |
AW: Modellbahnsteuerung in Delphi
Eisenbahnen scheinen ja zu einem Spezialgebiet für Delphi zu werden. Ich würde gerne mal wissen, was die Deutsche Bahn für Software nutzt um ihre Züge zu kontrollieren 8-)
|
AW: Modellbahnsteuerung in Delphi
Hmmm. Delphi ist einfach nur eine Programmiersprache. Vermutlich wird sie nur von Randgruppen, Modelleisenbahnliebhabern und anderen Sonderlingen, Waldschraten und eremitierten Pascalprogrammierern verwendet. An sich eher ein exotisches Alleinstellungsmerkmal, aber hier insbesondere auch ein Qualitätsmerkmal, würde ich annehmen, denn nachdem was sich hier in diesem Forum tummelt, sind die Randgruppen und Waldschrate doch ziemlich kompetent und dann passt das schon (Außerdem war ich der Erste, der "Hier" geschrien hat, als Waldschratrandgruppenpfilzhüte zu vergeben waren).
Ich habe einige Dinge mit Delphi und Hardwarezeugs machen müssen und -hey- solange es kein Ring-0-Treiber sein muss, geht das echt gut, jedenfalls hübscher und übersichtlicher als mit dieser komischen Sonderzeichenprogrammiersprache namens ("Mein ungewaschener kleiner") C. |
AW: Modellbahnsteuerung in Delphi
Zitat:
die Fahrkartenautomaten sind nebenbei bemerkt mit Windows XP ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz