AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Modellbahnsteuerung in Delphi

Ein Thema von Codehunter · begonnen am 30. Jul 2013 · letzter Beitrag vom 30. Dez 2013
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 10:34
Moin! Ich habe eben zufällig diesen netten Artikel bei Heise entdeckt. Lohnt sich zu lesen.
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
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 11:18
Sehr schön!
Das Codebeispiel allerdings...smells
Und das kenne ich nur zu gut.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 11:28
Mit dem Codebeispiel lockt man sicher eine Menge Leute, sich Delphi näher anzuschauen.

Ich glaube ich habe ein neues Negativbeispiel für "Bringen sie ein paar beliebige Quellcodefragmente zum Bewerbungsgespräch mit"
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

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

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 11:36
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 Laut Wiki muß der Source ca. 10-12 Jahre alt sein, sieht aber aus wie 40.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#5

AW: Modellbahnsteuerung in Delphi

  Alt 30. Jul 2013, 12:25
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!
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#6

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.272 Beiträge
 
Delphi 10.4 Sydney
 
#7

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.366 Beiträge
 
Delphi 10.3 Rio
 
#8

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
 
#9

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.487 Beiträge
 
Delphi 7 Enterprise
 
#10

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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz