AGB  ·  Datenschutz  ·  Impressum  







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

Guter Code

Offene Frage von "jaenicke"
Ein Thema von PascalDeveloper · begonnen am 14. Feb 2018 · letzter Beitrag vom 2. Mär 2018
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Guter Code

  Alt 1. Mär 2018, 06:38
Hallo,
also ich bin eigentlich ein Verfechter des with in Zusammenhang mit Queries,
weil es einfach so schön einfach ist.


Delphi-Quellcode:
var
  Q: TQuery;

..

with Q do
begin
  SQL.Clear;
  SQL.Add()
  Open;
end;
Close;
Aber gerade für Anfänger ist das sehr schwer (Stichwort Debugging, wie oben schon geschrieben wurde).

Such-Rätsel:
Wer findet den obigen Fehler ?

PS: Der war wirklich so in einem (Anfänger-) Code ...
Heiko
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.582 Beiträge
 
Delphi 7 Professional
 
#2

AW: Guter Code

  Alt 1. Mär 2018, 08:29
Hallo,
also ich bin eigentlich ein Verfechter des with in Zusammenhang mit Queries,
weil es einfach so schön einfach ist.


Delphi-Quellcode:
var
  Q: TQuery;

..

with Q do
begin
  SQL.Clear;
  SQL.Add()
  Open;
end;
Close;
Aber gerade für Anfänger ist das sehr schwer (Stichwort Debugging, wie oben schon geschrieben wurde).

Such-Rätsel:
Wer findet den obigen Fehler ?

PS: Der war wirklich so in einem (Anfänger-) Code ...
Frage ernst gemeint?

Abfrage öffnen und Programm beenden

Man wird das Ergebnis halt nie zu Gesicht bekommen, aber das das SQL leer ist, ist das weiter nicht schlimm

@All
Und ja: Mit With arbeiten spart Schreibarbeit.
Und ja: Für die Fehlersuche braucht man entsprechend länger (oft viel länger, als die eingesparte Schreibarbeit).

Bei with muss man sehr genau wissen, welche "Querschläger" es geben kann und diese alle ausschließen.

Das ist fast unmöglich, also ist die zusätzliche, angeblich vermeidbare "Schreibmehrarbeit", nur in sehr seltenen Fällen eine wirkliche Ersparnis.

Oft ist es sinnvoller, auf with zu verzichten (wer konsequent immer drauf verzichtet, macht nix falsch). Das, was man zusätzlich schreiben muss, ist immer identisch und kann per Copy&Paste jeweils mit sehr wenig Schreibarbeit (eimal Strg+C und dann Strg+V) wiederholt eingefügt werden.

Meine Erfahrung mit with ist eigentlich: Insbesondere in fremden Code kann es sehr verwirrend sein, wenn der verbleibende Quelltext zwar kompilierbar und sogar korrekt ausführbar ist, aber Zusammenhänge nicht mehr zwingend erkennbar sind.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.047 Beiträge
 
Delphi 12 Athens
 
#3

AW: Guter Code

  Alt 2. Mär 2018, 17:56
Man sieht bei Upgrades der Delphiversion immer wieder in welcher Delphi-Bibliothek wieder jemand with benutzt hat. Denn das fällt ständig auf die Füße. Ohne with hätte ich viele Quelltexte von Delphi 7 einfach so unter 10.2 kompilieren können. Nur with muss ich bei jeder Version irgendwo korrigieren... Und dann auch noch erst einmal herausfinden wie genau ich das korrigieren muss...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: Guter Code

  Alt 2. Mär 2018, 18:30
Man sieht bei Upgrades der Delphiversion immer wieder in welcher Delphi-Bibliothek wieder jemand with benutzt hat. Denn das fällt ständig auf die Füße. Ohne with hätte ich viele Quelltexte von Delphi 7 einfach so unter 10.2 kompilieren können. Nur with muss ich bei jeder Version irgendwo korrigieren... Und dann auch noch erst einmal herausfinden wie genau ich das korrigieren muss...
"with" benutzte ich nur früher ausnahmsweise, wohl eher, um es auszuprobieren, seit vielen Jahren jedoch nicht mehr. Ganz einfach, weil es auch für mich selbst die Programmlesbarkeit erschwert. Die Tipperei ist für mich jedenfalls kein Argument, außerdem kann man ja "Guttenberg spielen".

Wenn ich die nicht enden wollende Kritik an diesem "Komfortbefehl" lese, ist "with" also irgendwo zwischen bäh-bäh und ziemlich bis ganz böse einzuordnen.

Vielleicht sollte man es auf den Index setzen, so, wie es den armen Labels und dazugehörigen Gotos geschah. Wobei ich letztere dosiert doch verwende.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.730 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Guter Code

  Alt 2. Mär 2018, 18:41
Nur mal so am Rande:

With gibt es auch verschärft:
Delphi-Quellcode:
with A, B, C, D do
  PropertyVonA := MethodVonB(FieldVonC, MethodVonD);
end;
Wer solchen Code noch nicht gesehen hat, sollte sich für die Gnade seiner späten Geburt bedanken. Das war zu Turbo/Borland Pascal-Zeiten leider durchaus üblich. Und noch schlimmer: Auch ich habe damals solchen Code geschrieben.

Wenn sich dabei auch nur einer der 4 Typen minimal ändert, knallt es gewaltig.
Thomas Mueller
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#6

AW: Guter Code

  Alt 2. Mär 2018, 18:59
was bin ich froh, das es solches "with" in C++ nicht gibt

Löse das früher wie heute als simple zusätzliche typisierte Pointervariablen. Das funktioniert in Delphi wie in C/C++
Positiver Nebeneffekt: man kann solche Pointervariablen vorab auch selbst auf NIL/NULL prüfen, denn das gibt per "with" stets häßliche Exeptions

Ganz ehrlich: ganz ohne Wissen nur mit aktuell eh stets verfügbarer Quelltextvervollständigung über "Q." oder "Q->" tippt man doch sogar weniger wie "SQL".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.516 Beiträge
 
Delphi 12 Athens
 
#7

AW: Guter Code

  Alt 2. Mär 2018, 19:17
Gibt es in C nicht die Variante vom With, wo man auch einen lokalen Alias (Variable) mit angeben kann?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 01:53 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