AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Modellbahnsteuerung in Delphi

Ein Thema von Codehunter · begonnen am 30. Jul 2013 · letzter Beitrag vom 30. Dez 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#1

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 13:32
"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.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#2

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 13:52
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 SPoF. Ganz ehrlich, würde ich dort arbeiten in dem Wissen es hinge alles an einem einzigen Kollegen, ich hätte gewaltig Bauchschmerzen.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 13:53
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
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#4

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 13:58
  • Variablennamen gehören bei mir in englischer Sprache deklariert. Aber das ist offenbar Geschmackssache. Grundsätzlich sollte man sich aber festlegen VerschiebX, VerschiebY: integer; / help: string;
  • Gibt man den Variablen jetzt sprechende Namen oder nicht? Breite, hoehe: integer; / b2: tbitmap;
  • Ständig wird auf ein Array über einen (für mich) zu langen Variablennamen zugegriffen... Übersichtlicher fände ich das einmalige zwischenspeichern in eine zusätzliche Variable. SchiffeTMP[EinOderAuszublendeneNummer]
  • Woher kommt denn EinOderAuszublendeneNummer? Ist das ein Feld, oder ein Property der Klasse? Oder eine globale Variable? Hätte man es vielleicht besser als Parameter der Methode deklarieren können? Es ist für mich nicht sofort ersichtlich.
  • Kein Try-Finally-Schutzblock... Was, wenn es irgendwo zwischen b2:=tbitmap.create; und b2.free; knallt?
Nur so überflogen... Das ist allerdings meine subjektive Meinung. Da der Programmierer wohl allein an seiner Software arbeitet, kann der Code für ihn selbst möglicherweise übersichtlich genug sein.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 14:00
"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.
  • Der Code ist nicht gegen Abstürze gesichert, es wid ein Objekt erzeugt (b2=TBitmap) und auch wieder freigegeben, aber es fehlt ein try Konstrukt.
  • Das Array SchiffeTMP ist wohl global. Die gezeigte Prozedur weits vom Namen her daruf hin, dass sie in einem Thread aufgerufen wird. Es wird aber ohne entspechendes Locking auf das Array zugegriffen.
  • Das Gleiche gilt für den Zugriff auf die "Zeichenfläche" QuellbildmitSchiffen
  • Die Abfrage auf die Lage (Drehung in Grad) sollte besser mit case erfolgen. Zudem fehlt der else Zweig bei dem zweiten Abfrageblock - was geschieht bei ungültigen Daten, z.b. negative Gradzahlen oder > 360?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 14:51
Mir sind die Bezeichner zu lang. Bisschen abkürzen macht da nichts kaputt. EinOderAuszublendeneNummer Alleine das macht den Quelltext einfach zu breit. Noch schlimmer als zu lange Bezeichner sind allerdings zu stark abgekürzte !

Fakt aber ist, egal wie : die grösste Modellbahnanlage der Welt wird mit Delphi gesteuert. Und es funktioniert ! Stilistische Meckereien (auch meinerseits) ändern an dieser Tatsache nichts. Könnte als Referenz durchaus im Fall der Fälle zu gebrauchen sein.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 15:01
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.
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 16:16
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.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 20:55
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?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 21:25
überraschenderweise mit Delphi[/B] erstellt wurde[/I]."
Überrascht Dich das ? Mich nicht. Ich sehe da eher eine Reaktion auf das schlechte Delphi-Marketing. Mich wundert es jedenfalls nicht, dass so eine grosse Modellbahn über Delphi läuft. Über was sonst ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 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