AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Code-Optimierungen: allgemeine Fragen
Thema durchsuchen
Ansicht
Themen-Optionen

Code-Optimierungen: allgemeine Fragen

Ein Thema von DieDolly · begonnen am 15. Mär 2020 · letzter Beitrag vom 17. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2      
Hobbycoder

Registriert seit: 22. Feb 2017
998 Beiträge
 
#1

AW: Code-Optimierungen: allgemeine Fragen

  Alt 15. Mär 2020, 23:15
Also ich halte das so, dass nach Möglichkeit keine Prozedur ode Funktion mehr als ca. 20 Zeilen hat. Es gibt natürlich immer mal wieder den Fall wo sowas schlecht geht oder suboptimal ist. In dem Fall wird der Grund mit dokumentiert.

Units, die am Ende nur eine Prozedur enthalten werden in eine Funktionssammlung „common“ zusammengefasst. Manchmal auch in mehreren commons („graphiccommon“, „guicommon“, etc)

Ansonsten halt gut dokumentieren, damit man (oder andere) auch nach Jahren noch nachlesen kann, welchen Blödsinn man seinerzeit verzapft hatte
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Code-Optimierungen: allgemeine Fragen

  Alt 15. Mär 2020, 23:19
20 Zeilen? Das klingt nach einem Ding der Unmöglichkeit.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.609 Beiträge
 
Delphi 12 Athens
 
#3

AW: Code-Optimierungen: allgemeine Fragen

  Alt 15. Mär 2020, 23:55
Ich bevorzuge die Faustregel, dass der Code einer Methode (alles zwischen begin und end) komplett auf eine Bildschirmseite passt. Zu Turbo Pascal Zeiten waren das anfangs gerade mal 24 Zeilen, heute können das auch mal 50 oder mehr sein - kommt halt auf die Größe des Bildschirms und der Schrift an.

Bei der Zeilenlänge habe ich mich aktuell auf 130 Zeichen eingestellt. Das ist noch gut überschaubar und vermeidet so manchen störenden Umbruch.

Hintergrund ist einfach, daß man den Code mit einem Blick erfassen kann ohne scrollen zu müssen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Code-Optimierungen: allgemeine Fragen

  Alt 16. Mär 2020, 14:43
20 Zeilen? Das klingt nach einem Ding der Unmöglichkeit.
In dem Beitrag davor steht ganz unten:
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Es geht. Man kann es lernen wenn man will.

Ich finde es super, dass Du schon so viel gemacht hast.

Ich möchte dir folgende ... Seiten/Links ans Herz legen:
https://clean-code-developer.de/
metoo

Geändert von freimatz (16. Mär 2020 um 14:51 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
998 Beiträge
 
#5

AW: Code-Optimierungen: allgemeine Fragen

  Alt 16. Mär 2020, 23:30
Gelöscht
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

AW: Code-Optimierungen: allgemeine Fragen

  Alt 17. Mär 2020, 07:04
Wir machen in letzter Zeit mehr typescript, aber da gelten eigentlich letztlich die gleichen Sachen wie überall.

Wir versuchen, Funktionen klein zu halten und Logik zu kapseln, damit es übersichtlich bleibt. Es gibt dennoch harte Limits: Wir haben den linter aktiv, sodass code Änderungen pauschal abgelehnt werden, falls die cyclomatische Komplexität einer Funktion zu groß ist oder die Datei länger ist als 300 Zeilen.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Code-Optimierungen: allgemeine Fragen

  Alt 17. Mär 2020, 08:33
Ich halte mich nicht strikt an irgend eine Zeilenzahl, allerdings sind meine Methoden auch eher kurz. Vor allem die Grundsatz, "eine Aufgabe, eine Methode" ist für mich wichtig. Auch wenn ich Codeteile mehrfach brauche, extrahiere ich eine Methode/Funktion, selbst wenn diese nur aus 1-2 Zeilen bestehen sollte.
Manchmal sieht man in Quellcode, dass innerhalb einer Methode bestimmt Blöcke mit Kommentaren abgetrennt werden, was irgendwie so aussieht.

// ********* Bla bla ********
Irgend ein Code

// ********* Bla blubb ********
Noch mehr Code

// ********* Schwuppdiwupp ********
Ganz viel Code

Solche Konstrukte schreien förmlich danach, refaktoriert zu werden und in einzelne Methoden überführt zu werden.
Jens
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
302 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Code-Optimierungen: allgemeine Fragen

  Alt 17. Mär 2020, 09:52
Ich halte mich nicht strikt an irgend eine Zeilenzahl, allerdings sind meine Methoden auch eher kurz. Vor allem die Grundsatz, "eine Aufgabe, eine Methode" ist für mich wichtig. Auch wenn ich Codeteile mehrfach brauche, extrahiere ich eine Methode/Funktion, selbst wenn diese nur aus 1-2 Zeilen bestehen sollte.
Manchmal sieht man in Quellcode, dass innerhalb einer Methode bestimmt Blöcke mit Kommentaren abgetrennt werden, was irgendwie so aussieht.

// ********* Bla bla ********
Irgend ein Code

// ********* Bla blubb ********
Noch mehr Code

// ********* Schwuppdiwupp ********
Ganz viel Code

Solche Konstrukte schreien förmlich danach, refaktoriert zu werden und in einzelne Methoden überführt zu werden.
Aber bekommst Du dann nicht einen mehr oder weniger großen Overhead beim Aufruf dieser (vielen) kleinen proceduren / funktionen??

Und dann ist der Konstrukt

Delphi-Quellcode:
procedure p_Start;
begin
   p_proc1;
   p_proc2;
   if 1 =1 then
      p_proc3;
   p_pc4;
end;
gewünscht / nötig?
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: Code-Optimierungen: allgemeine Fragen

  Alt 17. Mär 2020, 10:01
Aber bekommst Du dann nicht einen mehr oder weniger großen Overhead beim Aufruf dieser (vielen) kleinen proceduren / funktionen??
Klar, theoretisch ergibt das etwas Aufwand, aber das ist bei heutiger Rechenleistung vernachlässigbar. Es ist viel wichtiger, gut lesbaren, einfach zu wartenden Code zu haben, als ein bisschen Stack zu sparen.

Zitat:
Und dann ist der Konstrukt

Delphi-Quellcode:
procedure p_Start;
begin
   p_proc1;
   p_proc2;
   if 1 =1 then
      p_proc3;
   p_pc4;
end;
gewünscht / nötig?
Klaro. Je nachdem, was es ist, würde ich sogar noch das 1=1 in eine Function auslagern, die mir einen boolschen Wert zurückgibt.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.609 Beiträge
 
Delphi 12 Athens
 
#10

AW: Code-Optimierungen: allgemeine Fragen

  Alt 17. Mär 2020, 10:05
Und dann ist der Konstrukt

Delphi-Quellcode:
procedure p_Start;
begin
   p_proc1;
   p_proc2;
   if 1 =1 then
      p_proc3;
   p_pc4;
end;
gewünscht / nötig?
Na ja, wenn da sowas steht wie:
Delphi-Quellcode:
procedure TReportCalculator.StartCalculation;
begin
  InitializeData;
  ValidateInput;
  if IsDataMissing then
    LookupMissingData;
  PrepareDataForCalculation;
end;
dann, ja.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 06:24 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 by Thomas Breitkreuz