AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Source Formatter, der folgendes kann gesucht

Source Formatter, der folgendes kann gesucht

Offene Frage von "Namenloser"
Ein Thema von RSE · begonnen am 16. Jul 2012 · letzter Beitrag vom 18. Jul 2012
Antwort Antwort
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#1

AW: Source Formatter, der folgendes kann gesucht

  Alt 17. Jul 2012, 15:38
@NamenLozer
Du sprichst mir aus der Seele.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Source Formatter, der folgendes kann gesucht

  Alt 17. Jul 2012, 16:29
Ein SourceCodeFormatter hat ja die einzige Daseinsberechtigung darin, den SourceCode leserlicher zu machen. Und ab hier fängt es an Geschmackssache zu werden, wer was wie formatiert haben möchte, damit es für einen selber leserlicher wird.

Unter der Vorgabe der Strukturierung finde ich meinen Vorschlag allerdings gar nicht so daneben, weil durch die Formatierung die Struktur sichtbar wird.

Die Leerzeichen erhöhen mE die Lesbarkeit (bei Quelltexten), denn anders als bei einem normalen Text, wo man die Klammern nur am Rande wahrnimmt und die Wörter auch beim schnellen Drüberfliegen vom Gehirn zusammengesetzt werden, gelten bei einem SourceCode andere Regeln.

Bei einem Text ist es egal, ob ich die eine oder andere Klammer nicht so direkt wahrnehme, oder ein Wort mal falsch gedeutet habe, denn durch den Kontext kann man das in vielen Fällen wieder korrigieren, ohne die Stelle erneut lesen zu müssen.

Bei einem SourceCode gelten diese Regeln nicht, denn der Kontext kann durch einen Klammer mehr oder weniger völlig verändert werden, genauso wie ein überlesener Buchstabe.

Am Ende ist und bleibt es aber immer ein individuelles Thema, denn wenn der Styleguide etwas vorschreibt wodurch die eigene Arbeitsgeschwindigkeit sinkt und der individuelle Style die Arbeitsgeschwindigkeit hebt, dann kann sich der Styleguide mal selber gerne haben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Source Formatter, der folgendes kann gesucht

  Alt 17. Jul 2012, 17:40
Man darf aber durchaus boolsche Zwischenvariablen verwenden; die sind nicht so "schwergewichtig" wie Funktionsaufrufe.
Hier ein kleines konstruiertes Beispiel.
Delphi-Quellcode:
var
  erwachsen, HasAMobile : boolean;
begin
  erwachsen := (Person.Age >= 18);
  HasAMobile := StrIsOneOf(Person.Phone.Vorwahl, ['170', '172', ...]) and (Person.Phone.CountryPrefix = 49);

  if erwachsen and HasAMobile and (Person.Gender='W') then
    ShowMessage('Frau über 18 mit Handy');
Auf diese Weise kann man komplexe If-Bedinungen entschärfen und lesbarer machen.
Mit dem Debugger kann man schön die einzelnen Teilbedingungen anschauen!!

Was nützt es denn, wenn man eine If-Bedingung mit 10 komplexen Teilbedingung
scheinbar supergut formatiert aber man findet den Logikfehler nicht weil man
die vielen Einzelbedingung nicht komplett versteht (oder vor lauter Bäumen den Wald nicht sieht) .

Und bitte sag' jetzt niemand die paar Taktzyklen für die Zwischenvariablen würde sich an der Geschwindigkeit bemerkbar machen.
Andreas
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: Source Formatter, der folgendes kann gesucht

  Alt 17. Jul 2012, 17:52
Häufig sieht man ja Code wie diesen:
Delphi-Quellcode:
if (land='DE') or (land='AT') or (land='IT') or (land='FR') or
  (land='ES') // Und so weiter
then
  ShowMessageFmt('Land %s gehört zur EU', [land]);
Und weil 27 Bedingungen so unübersichtlich sind wird angefangen jede Bedingung in eine eigene Zeile zu stellen:
Delphi-Quellcode:
if (land='DE') or
  (land='AT') or
  (land='IT') or // Und so weiter
then
Aber das macht es auch nicht besser.
Dabei kann man es ganz elegant schreiben:
Delphi-Quellcode:
var
  IsEuroZone : Boolean;
begin
  IsEuroZone := StrIsOneOf(land, ['DE','AT','IT','FR' ... ]);
  if not IsEuroZone then
    ShowMessageFmt('Land %s gehört NICHT zur EU', [land]);
Andreas

Geändert von shmia (17. Jul 2012 um 17:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Source Formatter, der folgendes kann gesucht

  Alt 17. Jul 2012, 18:13
Oder das delphieigene Delphi-Referenz durchsuchenMatchStr.

Nja, sagen wir es kurz und knapp:
Grauenhafter Code wird nicht gleich besser, nur weil man ihn schön formatiert. (mit Blümchen und rosa Shleifchen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Jul 2012 um 18:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Source Formatter, der folgendes kann gesucht

  Alt 17. Jul 2012, 19:26
um dagegenzuhalten, genialer Code kann so formatiert werden dass er komplett unleserlich wird.
Aber wir geraten OT.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort

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 22:41 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